23andMe
23andMe's OAuth 2.0 API lets developers build apps and tools on the human genome. Our customers are genotyped for over 1,000,000 SNPs, conveniently accessible through our free REST API. Not genotyped? We have demo endpoints. No need for a Ph.D. Our scientists have analyzed disease risk, calculated ancestry, and found relatives for genotyped customers. You could use this data without even knowing…
23andMe endpoints
| Method | Endpoint | Description |
|---|---|---|
| User | ||
| GET |
profile_picture /profile_picture/{profile_id}/ |
|
| PUT |
publish_put /publish/{profile_id}/{feature_id}/{link_id}/ |
|
| GET |
publish_get /publish/{profile_id}/{feature_id}/ |
|
| GET |
publish_get by link /publish/{profile_id}/{feature_id}/{link_id}/ |
|
| GET |
user /user/ |
Gets the user id, and a list of profiles (an account can have multiple genotyped people) with ids and whether or not they're genotyped. This endpoint is great for using an app… |
| POST |
publish_post /publish/{profile_id}/{feature_id}/ |
Users can publish and share certain features publicly, for example on social networks, with a special link. Anyone with the link, if active, can view that person's results for… |
| POST |
profile_picture_post /profile_picture/{profile_id}/ |
Gets the user's profile picture for a few sizes, or uploads a picture, < 5MB, and crops it. The POST returns the same info as the GET, if successful. For the POST, set… |
| GET |
names /names/{profile_id}/ |
For the user and user's profile, gets first and last names. If your user wants to remain anonymous, you shouldn't request this scope. You can optionally filter by profile_id to… |
| Health | ||
| GET |
traits /traits/{profile_id}/ |
Our analysis for each profile for these traits (starred reports). trait is a value in possible_traits, or null if the profile's not analyzed at those markers. |
| GET |
drug_responses /drug_responses/{profile_id}/ |
Our analysis of how each profile responds to these drugs (starred reports). status is reduced, typical, or increased for a person, not_applicable if the drug is not applicable to… |
| GET |
risks /risks/{profile_id}/ |
Our analysis for each profile's lifetime risk of these diseases (starred reports). population_risk is the average risk for the population for which the analysis applies, and risk… |
| GET |
carriers /carriers/{profile_id}/ |
Our analysis of whether or not each profile is a carrier for these diseases (starred reports). The person has 0, 1, or 2 mutations, or null if they're not analyzed at any of the… |
| Ancestry | ||
| GET |
neanderthal /neanderthal/{profile_id}/ |
Estimated genome-wide proportion of Neanderthal ancestry for the user's profile. Most users have between 0.01 and 0.04 Neanderthal ancestry -- read a full explanation of the… |
| GET |
ancestry /ancestry/{profile_id}/ |
Ancestral breakdown for the user's profile. Each population has an absolute proportion of the genome. A population with sub_populations has an unassigned proportion — the… |
| GET |
relatives /relatives/{profile_id}/ |
Relatives on 23andMe, for the user's profile. shared_segments is the total number of shared IBD segments; similarity is the actual proportion (1.00 being you, or an identical… |
| GET |
haplogroups /haplogroups/{profile_id}/ |
For the user's profile, gets maternal and paternal haplogroups, as well as terminal SNPs. Maternal terminal SNPs include the rsid and rCRS reference position, while the paternal… |
| Genetics | ||
| GET |
genotypes /genotypes/{profile_id}/ |
Returns the entire profile's genome as a packed string of base pairs "AACTGA...". This ~2MB request returns over a million SNP locations, so you must specify profile_id. If the… |
| GET |
genomes /genomes/{profile_id}/ |
Returns the entire profile's genome as a packed string of base pairs "AACTGA...". This ~2MB request returns over a million SNP locations, so you must specify profile_id. If the… |
23andMe pricing
| Plan | Price | Rate limit | Quotas |
|---|---|---|---|
| BASIC | Free | — |
|