{"id":44512042,"url":"https://github.com/rootsdev/gensearch","last_synced_at":"2026-02-13T15:21:42.550Z","repository":{"id":16405975,"uuid":"19156965","full_name":"rootsdev/gensearch","owner":"rootsdev","description":"Generate search links for a many genealogy websites.","archived":false,"fork":false,"pushed_at":"2021-12-14T20:45:43.000Z","size":119,"stargazers_count":23,"open_issues_count":22,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-13T09:13:02.293Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rootsdev.github.io/gensearch/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rootsdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-25T18:53:42.000Z","updated_at":"2025-09-18T04:38:01.000Z","dependencies_parsed_at":"2022-09-05T17:30:55.867Z","dependency_job_id":null,"html_url":"https://github.com/rootsdev/gensearch","commit_stats":null,"previous_names":["genealogysystems/gen-search"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/rootsdev/gensearch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootsdev%2Fgensearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootsdev%2Fgensearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootsdev%2Fgensearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootsdev%2Fgensearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rootsdev","download_url":"https://codeload.github.com/rootsdev/gensearch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootsdev%2Fgensearch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29411143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-13T15:21:40.518Z","updated_at":"2026-02-13T15:21:42.520Z","avatar_url":"https://github.com/rootsdev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm](https://img.shields.io/npm/v/gensearch.svg?maxAge=2592000)](https://www.npmjs.com/package/gensearch)\n[![Build Status](https://travis-ci.org/rootsdev/gensearch.svg)](https://travis-ci.org/rootsdev/gensearch)\n[![Coverage Status](https://coveralls.io/repos/rootsdev/gensearch/badge.svg)](https://coveralls.io/r/rootsdev/gensearch)\n\n# gensearch\n\nGenerate search links for a many genealogy websites.\n\n### __[Try the Demo](http://rootsdev.github.io/gensearch/)__\n\n* [Usage](#usage)\n* [Installation Instructions](#install)\n* [Person Data Schema](#schema)\n* [Supported Sites](#sites)\n* [Contributor's Guide](#contribute)\n\n## Usage\n\n```javascript\n// Generate a search link for FamilySearch\nvar url = gensearch('familysearch', {\n  givenName: \"Joe William\",\n  familyName: \"Clark\"\n});\n\n// Some options can be changed. Here we modify the birth year range\nvar url = gensearch('familysearch', data, {\n  birthRange: 5\n});\n\n// Or we can set the configuration option once and have it apply to all future searches.\ngensearch.config('familysearch', {\n  birthRange: 5\n});\n\n// We can also set options for multiple sites at once\ngensearch.config({\n  familysearch: {\n    birthRange: 5\n  },\n  archives: {\n    deathRange: 10\n  }\n});\n```\n\n## Install\n\n#### Web\n\nVia the CDN unpkg:\n\n```html\n\u003cscript src=\"//unpkg.com/gensearch@latest/dist/gensearch.min.js\"\u003e\u003c/script\u003e\n```\n\n#### Node\n\n```shell\nnpm install gensearch\n```\n\n```javascript\nvar genSearch = require('gensearch');\n```\n\n## Schema\n\n* `givenName`\n* `familyName`\n* `birthPlace`\n* `birthDate`\n* `deathPlace`\n* `deathDate`\n* `marriagePlace`\n* `marriageDate`\n* `fatherGivenName`\n* `fatherFamilyName`\n* `motherGivenName`\n* `motherFamilyName`\n* `spouseGivenName`\n* `spouseFamilyName`\n\n## Sites\n\n* [americanancestors](#americanancestors)\n* [ancestry](#ancestry)\n* [archives](#archives)\n* [billiongraves](#billiongraves)\n* [chroniclingamerica](#chroniclingamerica)\n* [familysearch](#familysearch)\n* [findagrave](#findagrave)\n* [findmypast.co.uk](#findmypastcouk)\n* [findmypast.com](#findmypastcom)\n* [fold3](#fold3)\n* [genealogieonline](#genealogieonline)\n* [genealogybank](#genealogybank)\n* [geneanet.en](#geneaneten)\n* [gengophers](#gengophers)\n* [geni](#geni)\n* [google](#google)\n* [mocavo](#mocavo)\n* [myheritage](#myheritage)\n* [nla trove](#nla-trove)\n* [newspapers](#newspapers) \n* [openarchives](#openarchives) \n* [usgenweb](#usgenweb)\n* [werelate](#werelate)\n* [wikitree](#wikitree)\n* [worldvitalrecords](#worldvitalrecords) \n\n### americanancestors\n\nhttp://www.americanancestors.org/\n\n```javascript\nvar url = gensearch('americanancestors', data);\n```\n\n### ancestry\n\nhttp://ancestry.com\n\n```javascript\nvar url = gensearch('ancestry', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `db` | | Search within a specific database. This value equates to the 'db' parameter value used by Ancestry. |\n\n### archives\n\nhttp://archives.com\n\n```javascript\nvar url = gensearch('archives', data);\n```\n\n| option | default |\n|--------|---------|\n| `birthRange` | 2 |\n| `deathRange` | 2 |\n\n### billiongraves\n\nhttp://billiongraves.com/\n\n```javascript\nvar url = gensearch('billiongraves', data, [options]);\n```\n\n| option | default |\n|--------|---------|\n| `yearRange` | 2 |\n\n### chroniclingamerica\n\nhttp://chroniclingamerica.loc.gov/\n\n```javascript\nvar url = gensearch('chroniclingamerica', data);\n```\n\n### familysearch\n\nhttps://familysearch.org\n\n```javascript\nvar url = gensearch('familysearch', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `birthRange` | 2 |\n| `deathRange` | 2 |\n| `marriageRange` | 2 |\n| `collectionId` | | Only search within a specific collection. |\n\n### findagrave\n\nhttp://findagrave.com\n\n```javascript\nvar url = gensearch('findagrave', data);\n```\n\n### findmypast.co.uk\n\nhttp://findmypast.co.uk\n\n```javascript\nvar url = gensearch('findmypast.co.uk', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `event` | | Type of event to search for. Valid values are `birth`, `death`, and `other`. The `otherDate` and `otherPlace` options are used when `event` is `other`.\n| `birthRange` | 2 |\n| `deathRange` | 2 |\n| `otherRange` | 2 |\n| `otherDate` | | Only used when `event` is `other`. |\n| `otherPlace` | | Only used when `event` is `other`. |\n\n### findmypast.com\n\nhttp://findmypast.com\n\n```javascript\nvar url = gensearch('findmypast.com', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `event` | | Type of event to search for. Valid values are `birth`, `death`, and `other`. The `otherDate` and `otherPlace` options are used when `event` is `other`.\n| `birthRange` | 2 |\n| `deathRange` | 2 |\n| `otherRange` | 2 |\n| `otherDate` | | Only used when `event` is `other`. |\n| `otherPlace` | | Only used when `event` is `other`. |\n\n### fold3\n\nhttp://fold3.com\n\n```javascript\nvar url = gensearch('fold3', data);\n```\n\nOnly `givenName` and `familyName` are used for Fold3 searches.\n\n### genealogieonline\n\nhttp://genealogieonline.nl/en/\n\n```javascript\nvar url = gensearch('genealogieonline', data, [options]);\n```\n\n| option | default |\n|--------|---------|\n| `birthRange` | 5 | \n| `deathRange` | 5 |\n\n### genealogybank\n\nhttp://genealogybank.com\n\n```javascript\nvar url = gensearch('genealogybank', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `lifespan` | 90 | If either a `birthDate` or `deathDate` exists, but not both, then this value is used to approximate the missing year. For example, if the `birthDate` is `2 Feb 1766` and no `deathDate` is given then we would add `lifespan` to the birth year to get an approximate death year of `1856`. |\n| `datePadding` | 5 | This value is substracted from the calculated birth year and added to the calculated death year. |\n\n### geneanet.en\n\nhttp://en.geneanet.org/\n\n```javascript\nvar url = gensearch('geneanet.en', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `place` | `birth` | Determines whether the birth or death place is used for searching. Values: `birth` or `death`. |\n\n### gengophers\n\nhttps://www.gengophers.com\n\n```javascript\nvar url = gensearch('gengophers', data);\n```\n\n### geni\n\nhttp://geni.com\n\n```javascript\nvar url = gensearch('geni', data);\n```\n\nOnly `givenName` and `familyName` are used for Geni searches.\n\n### google\n\nhttps://www.google.com\n\n```javascript\nvar url = gensearch('google', data);\n```\n\n### mocavo\n\nhttp://www.mocavo.com/\n\n```javascript\nvar url = gensearch('mocavo', data);\n```\n\n### myheritage\n\nhttp://www.myheritage.com\n\n```javascript\nvar url = gensearch('myheritage', data);\n```\n\n### newspapers\n\nhttp://www.newspapers.com/\n\n```javascript\nvar url = gensearch('newspapers', data, [options]);\n```\n\n| option | default | notes |\n|--------|---------|-------|\n| `lifespan` | 90 | If either a `birthDate` or `deathDate` exists, but not both, then this value is used to approximate the missing year. For example, if the `birthDate` is `2 Feb 1766` and no `deathDate` is given then we would add `lifespan` to the birth year to get an approximate death year of `1856`. |\n| `datePadding` | 5 | This value is substracted from the calculated birth year and added to the calculated death year. |\n\n### nla trove\n\nhttp://trove.nla.gov.au/\n\n```javascript\nvar url = gensearch('nlatrove', data);\n```\n\n### openarchives\n\nhttp://openarch.nl\n\n```javascript\nvar url = gensearch('openarchives', data);\n```\n\nOnly `givenName` and `familyName` are used for Open Archive searches.\n\n### usgenweb\n\nhttp://www.usgwarchives.net/\n\n```javascript\nvar url = gensearch('usgenweb', data);\n```\n\n### werelate\n\nhttp://werelate.org\n\n```javascript\nvar url = gensearch('werelate', data, [options]);\n```\n\n| option | default |\n|--------|---------|\n| `birthRange` | 2 |\n| `deathRange` | 2 |\n\n### wikitree\n\nhttp://www.wikitree.com/\n\n```javascript\nvar url = gensearch('wikitree', data);\n```\n\n### worldvitalrecords\n\nhttp://worldvitalrecords.com\n\n```javascript\nvar url = gensearch('worldvitalrecords', data, [options]);\n```\n\n| option | default |\n|--------|---------|\n| `dateRange` | 2 |\n\n\n## Contribute\n\n#### Setup\n\n```shell\ngit clone https://github.com/rootsdev/gen-search.git\ncd gen-search\nnpm install\n```\n\n#### Add a site\n\n1. Create the site file in the [src/sites](https://github.com/rootsdev/gen-search/tree/master/src/sites) directory. Look at [archives.js](https://github.com/rootsdev/gen-search/blob/master/src/sites/archives.js) for a simple example or [familysearch.js](https://github.com/rootsdev/gen-search/blob/master/src/sites/familysearch.js) for a more complex example.\n2. Add the new site to the [src/search.js](https://github.com/rootsdev/gen-search/blob/master/src/search.js) site list, in alphabetical order please.\n3. Add a test file in the [test/sites](https://github.com/rootsdev/gen-search/tree/master/test/sites) directory. Look at any of the other site test files for an example.\n4. Run tests with `npm test`. The `gensearch.js` file will be automatically built with [browserify](https://github.com/substack/node-browserify) before the tests are run.\n5. Document the new site in the README file, in alphabetical order please. Be sure to add a link in the site list just before the site specific docs.\n6. Commit and submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frootsdev%2Fgensearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frootsdev%2Fgensearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frootsdev%2Fgensearch/lists"}