How to look up an rsID without sending a genome
An rsID such as rs1799945 is a public name in dbSNP. Anyone can ask what ClinVar, gnomAD, and dbSNP say about that name. That question does not require your VCF, BAM, or 23andMe export.
The remote job is identifier lookup. The private job is matching the identifier to the two bases you carry. genome.sh keeps those jobs apart: HTTPS for public ids, disk for genotypes.
If a website asks you to upload raw data in order to explain one rsID, that is a different product. You already have the id. Look the id up, then grep your own file.
- Public: rsID, gene symbol, HGVS, chr:pos, chr:pos:ref:alt
- Private: VCF, BAM, CRAM, 23andMe, AncestryDNA, MyHeritage exports
- HTTP API: identifiers only, no API key, no file upload
What a useful lookup actually returns
A useful lookup joins three public facts. dbSNP places the site on an assembly and names the alleles. ClinVar may hold a submitted clinical significance and a review status. gnomAD may hold allele count, allele number, and population frequency.
That bundle is still not a genotype and not a diagnosis. rs429358 names a site in APOE. Your file, if you have one, names T/T, T/C, or C/C at that site, or it does not list the site at all.
Read review status with the ClinVar word. Pathogenic from one submitter without criteria is a weaker public statement than the same word with multiple submitters and no conflicts. Frequency tells you how common the alternate allele is among sequenced haplotypes, not what you should do next.
- dbSNP: rs number, alleles, GRCh37 and GRCh38 coordinates
- ClinVar: submitted significance, review status, conditions
- gnomAD: AC, AN, AF, and ancestry-group frequencies when present
Look it up with the genome CLI
Install the crate genome-sh. The binary is genome. Then install a local annotation database. After genome db install, identifier queries hit SQLite on disk and do not need the network.
Start with lite if you only need ClinVar. Use standard or full when you also want gnomAD frequencies. The query language is the same in every tier: an rsID, a gene symbol, or chr:position.
Human output is for one variant in a terminal. JSON is for scripts, notebooks, and agents. compact is the short form. Pipe JSON into jq when you want a single field.
cargo install genome-sh genome db install lite genome query rs1799945 genome query rs1799945 --format json | jq .
Look it up over HTTPS
The REST API at https://api.genome.sh accepts only public identifiers: rsIDs, gene names, HGVS strings, and coordinates. It will not take a VCF, a BAM, or a consumer export. There is no API key.
Use GET /v1/query/{id} for the joined record. Use GET /v1/gnomad/{id} when you only want frequency. Use GET /v1/sources to see which snapshots the server is running.
The website query page uses the same lookup. For bulk files, stay on the CLI. A loop of HTTP calls is the wrong tool for 600,000 chip rows.
curl -s https://api.genome.sh/v1/query/rs1799945 | jq . curl -s https://api.genome.sh/v1/gnomad/rs429358 | jq . curl -s https://api.genome.sh/v1/sources | jq .
Match the rsID against a chip or VCF
Once you know what the public record says, grep the rsID in a 23andMe-style export or annotate a VCF. A missing row means not called. It does not mean homozygous reference.
Consumer chips cover a few hundred thousand sites. ClinVar has millions of interpreted variants. Most pathogenic records will not be on the chip. A clean consumer file is not a clinical exome.
The in-browser importer at /import parses supported files in the tab. The HTTP API still only accepts identifiers. Do not paste the file into a chatbot to look up one rsID.
GRCh37, GRCh38, and why coordinates lie
An rsID is a cluster id. It is supposed to follow the site across assemblies. A raw chr:pos is not stable unless you name the assembly.
rs1800562 sits at different numeric positions on GRCh37 and GRCh38. If your VCF header says hs37d5 and you query a GRCh38 coordinate, you will look at the wrong base. Prefer the rsID when you have one.
When the site has no rs number yet, query chr:pos:ref:alt and keep the assembly next to the result. Mixing gnomAD v2 (GRCh37) coordinates with gnomAD v4 (GRCh38) is a silent mapping error.
Worked identifiers: HFE, APOE, HBB
rs1799945 is HFE p.His63Asp. rs1800562 is HFE p.Cys282Tyr. Both appear constantly in consumer files. Query them as public ids, then see whether your export called them.
rs429358 is one of the two SNPs that define common APOE haplotypes. Querying only rs429358 is incomplete for haplotype calling. rs7412 is the other site. APOE status is sensitive; prefer local lookup.
rs334 is the well-known HBB sickle cell site. It is a clean CLI test because ClinVar coverage is strong. It is still not a hemoglobinopathy assay for a person.
genome query rs1799945 genome query rs1800562 genome query rs429358 genome query rs334
Mistakes that leak a file or invent a genotype
Pasting a whole raw-data file into a chatbot or a random web form is the usual leak. The rsID is public. The genotype file is not.
Reading only the word Pathogenic and ignoring review status, conflicts, and frequency is the usual interpretation error. A high gnomAD frequency does not delete a ClinVar record. A missing chip site does not prove the reference allele.
genome.sh prints public annotations. Clinical decisions need a clinician and an appropriate assay. A genotyping chip is not whole-genome sequencing and is not a complete BRCA test.
Questions
How to look up an rsID without an API key?
Run genome query rs1799945 after genome db install, or GET https://api.genome.sh/v1/query/rs1799945. Neither path needs a key for ordinary identifier lookup.
Does looking up an rsID send my DNA?
Not if you send only the rsID. Do not paste a VCF or a 23andMe export into a chat or a remote API. Use the local CLI or the in-browser importer for files.
What if the rsID is missing from my chip?
A missing marker is not called. It is not evidence of the reference allele. Write not called and move on. Consumer arrays miss most ClinVar pathogenic sites.
Can I look up several rsIDs at once?
The CLI accepts multiple identifiers in one query. For a full VCF or a 600,000-row export, use genome annotate rather than a loop of HTTP calls.
Should I use the rsID or HGVS?
Use the rsID when you have one. Use HGVS or chr:pos:ref:alt when the site has no rs number yet. An rsID is more stable across GRCh37 and GRCh38 than a bare coordinate.
How do I look up an rsID in ClinVar from the terminal?
Install lite or a larger tier, then genome query rs334. JSON is the form you filter. Open the ClinVar page when you need the full VCV submission table.
Can I look up an rsID in the browser?
Yes. The /query page uses the same public-identifier API. It still will not accept a genome file. For files, use /import or the CLI.
Is looking up an rsID medical advice?
No. genome.sh prints public annotations from ClinVar, gnomAD, and dbSNP. Clinical care needs a clinician and the right assay.