dbsnp.md
143 lines · skills/database-lookup/references/dbsnp.md at 5f2bc03
dbSNP API Reference
Raw lines 1 to 2Overview
SNP and variant data. Accessible via two APIs: NCBI E-utilities (db=snp) for search/metadata, and the NCBI Variation Services REST API for detailed variant annotations.
Base URLs
E-utilities: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/
Variation API: https://api.ncbi.nlm.nih.gov/variation/v0/Raw lines 6 to 11Authentication
- E-utilities: API key recommended (
&api_key=KEY). 3 req/sec without, 10 req/sec with key. - Variation API: No auth required. Rate limits apply (undocumented; be respectful, ~1-2 req/sec).
Raw lines 12 to 17
E-utilities Endpoints (db=snp)
Raw lines 18 to 191. ESearch -- Search SNPs
GET esearch.fcgi?db=snp&term=QUERY&retmax=N&retmode=jsonExample -- search SNPs in BRCA1 gene:
GET esearch.fcgi?db=snp&term=BRCA1[Gene Name] AND homo sapiens[Organism]&retmax=5&retmode=jsonResponse:
{
"esearchresult": {
"count": "12847",
"idlist": ["80357713", "80357508", ...]
}
}Note: IDs returned are rs numbers without the "rs" prefix.
Raw lines 20 to 392. ESummary -- SNP summaries
GET esummary.fcgi?db=snp&id=IDS&retmode=jsonExample -- get summary for rs334 (sickle cell variant):
GET esummary.fcgi?db=snp&id=334&retmode=jsonResponse includes: snp_id, chr, chrpos, genes, clinical_significance, global_mafs, docsum.
3. EFetch -- Fetch SNP details
GET efetch.fcgi?db=snp&id=IDS&rettype=json&retmode=textNote: EFetch for dbSNP returns JSON with rettype=json. Also supports XML with retmode=xml.
Raw lines 51 to 58
Variation Services API
Raw lines 59 to 601. Lookup variant by rsID
GET /variation/v0/refsnp/{rsid}Example:
GET https://api.ncbi.nlm.nih.gov/variation/v0/refsnp/334Response (JSON, abbreviated):
{
"refsnp_id": "334",
"create_date": "2000/09/19",
"primary_snapshot_data": {
"placements_with_allele": [...],
"allele_annotations": [...],
"support": [...]
},
"present_obs_movements": [
{
"component_ids": [{"type": "clinvar", "value": "..."}],
"observation": {
"seq_id": "NC_000011.10",
"position": 5227002,
"deleted_sequence": "T",
"inserted_sequence": "A"
}
}
]
}Raw lines 61 to 932. Lookup variant by SPDI notation
GET /variation/v0/spdi/{spdi}/rsidsSPDI format: SeqID:Position:Deletion:Insertion
Example:
GET https://api.ncbi.nlm.nih.gov/variation/v0/spdi/NC_000011.10:5227002:T:A/rsidsRaw lines 94 to 1043. Lookup variant by HGVS
GET /variation/v0/hgvs/{hgvs}/contextualsExample:
GET https://api.ncbi.nlm.nih.gov/variation/v0/hgvs/NC_000011.10:g.5227003T>A/contextualsRaw lines 105 to 1144. Multiple rsIDs
The current Variation Services schema has no /refsnp/batch route. For a small set, issue bounded individual /refsnp/{numeric_id} requests. For large sets, use dbSNP bulk JSON. RefSNP records can be merged or withdrawn; inspect status and resolve current IDs before using primary_snapshot_data.
Common E-utilities Search Patterns
# By rs number
term=334[RS ID]
# Clinical significance
term=pathogenic[Clinical Significance] AND BRCA1[Gene Name]
# By chromosome position (GRCh38)
term=11[Chromosome] AND 5227002:5227002[Base Position]
# By variant type
term=missense[Function Class] AND TP53[Gene Name]
# By global minor allele frequency
term=0.01:0.05[Global MAF]Raw lines 123 to 140Rate Limits
- E-utilities: 3 req/sec (no key), 10 req/sec (with key)
- Variation Services API: No published limit; recommend 1-2 req/sec