Skill Tracer
Skills › Scientific Agent Skills › database-lookup › clinvar.md

clinvar.md

123 lines · skills/database-lookup/references/clinvar.md at 5f2bc03

Open on GitHub
1# ClinVar API Reference
2

ClinVar API Reference

Raw lines 1 to 2
3## Base URLs
4- **NCBI E-utilities**: `https://eutils.ncbi.nlm.nih.gov/entrez/eutils`
5- **ClinVar web API (VCV)**: `https://www.ncbi.nlm.nih.gov/clinvar`
6- **NCBI Variation Services**: `https://api.ncbi.nlm.nih.gov/variation/v0`
7

Base URLs

  • NCBI E-utilities: https://eutils.ncbi.nlm.nih.gov/entrez/eutils
  • ClinVar web API (VCV): https://www.ncbi.nlm.nih.gov/clinvar
  • NCBI Variation Services: https://api.ncbi.nlm.nih.gov/variation/v0
Raw lines 3 to 7
8## Authentication
9- E-utilities: No key required, but **strongly recommended**. Register at https://www.ncbi.nlm.nih.gov/account/ to get an `api_key`.
10- Without key: 3 requests/second. With key: 10 requests/second.
11- Append `&api_key=YOUR_KEY` to all E-utility requests.

Authentication

  • E-utilities: No key required, but strongly recommended. Register at https://www.ncbi.nlm.nih.gov/account/ to get an api_key.
  • Without key: 3 requests/second. With key: 10 requests/second.
  • Append &api_key=YOUR_KEY to all E-utility requests.
Raw lines 8 to 12
13## Rate Limits
14- Without API key: 3 req/sec
15- With API key: 10 req/sec

Rate Limits

  • Without API key: 3 req/sec
  • With API key: 10 req/sec
Raw lines 13 to 16
17## Key Endpoints

Key Endpoints

Raw lines 17 to 18
19### 1. Search ClinVar (esearch)
20```
21GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=clinvar&term={query}&retmode=json
22```
23Example — search for BRCA1 pathogenic variants:
24```
25GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=clinvar&term=BRCA1[gene]+AND+pathogenic[clinical_significance]&retmode=json&retmax=10
26```
27Returns JSON with `idlist` of ClinVar Variation IDs.

1. Search ClinVar (esearch)

GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=clinvar&term={query}&retmode=json

Example — search for BRCA1 pathogenic variants:

GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=clinvar&term=BRCA1[gene]+AND+pathogenic[clinical_significance]&retmode=json&retmax=10

Returns JSON with idlist of ClinVar Variation IDs.

Raw lines 19 to 28
29### 2. Fetch ClinVar Records (esummary)
30```
31GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=clinvar&id={id_list}&retmode=json
32```
33Example:
34```
35GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=clinvar&id=37088,37087&retmode=json
36```
37Returns JSON with clinical significance, variant name, gene, conditions, review status.

2. Fetch ClinVar Records (esummary)

GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=clinvar&id={id_list}&retmode=json

Example:

GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=clinvar&id=37088,37087&retmode=json

Returns JSON with clinical significance, variant name, gene, conditions, review status.

Raw lines 29 to 38
39### 3. Full Record (efetch)
40```
41GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=clinvar&id={id}&rettype=vcv&is_variationid&retmode=xml
42```
43Note: ClinVar efetch returns **XML only** (no JSON for efetch).

3. Full Record (efetch)

GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=clinvar&id={id}&rettype=vcv&is_variationid&retmode=xml

Note: ClinVar efetch returns XML only (no JSON for efetch).

Raw lines 39 to 44
45### 4. Resolve HGVS/SPDI before searching ClinVar
47NCBI Variation Services normalizes variants; it has no `/clinvar` suffix endpoint.
48Use `GET https://api.ncbi.nlm.nih.gov/variation/v0/hgvs/{hgvs}/contextuals`,
49then `/spdi/{spdi}/rsids`. Search ClinVar with the resolved rsID (or a validated
50HGVS expression) using ESearch. An rsID can represent multiple alternate alleles:
51compare accession, assembly, position and alleles in the ClinVar record.
52SPDI positions are zero-based; HGVS genomic positions are one-based.

4. Resolve HGVS/SPDI before searching ClinVar

NCBI Variation Services normalizes variants; it has no /clinvar suffix endpoint. Use GET https://api.ncbi.nlm.nih.gov/variation/v0/hgvs/{hgvs}/contextuals, then /spdi/{spdi}/rsids. Search ClinVar with the resolved rsID (or a validated HGVS expression) using ESearch. An rsID can represent multiple alternate alleles: compare accession, assembly, position and alleles in the ClinVar record. SPDI positions are zero-based; HGVS genomic positions are one-based.

Raw lines 45 to 53
54### 5. ClinVar VCV/RCV Direct Access
55```
56GET https://www.ncbi.nlm.nih.gov/clinvar/variation/{variation_id}/?redir=vcv
57```
58This returns HTML. For programmatic access, use E-utilities or the Variation Services API.

5. ClinVar VCV/RCV Direct Access

GET https://www.ncbi.nlm.nih.gov/clinvar/variation/{variation_id}/?redir=vcv

This returns HTML. For programmatic access, use E-utilities or the Variation Services API.

Raw lines 54 to 59
60## Useful Search Qualifiers
61- `[gene]` — gene symbol (e.g., `BRCA1[gene]`)
62- `[clinical_significance]` — pathogenic, likely_pathogenic, benign, uncertain_significance
63- `[molecular_consequence]` — missense, nonsense, frameshift, etc.
64- `[review_status]` — criteria_provided_single_submitter, reviewed_by_expert_panel, etc.
65- `[condition]` — disease name

Useful Search Qualifiers

  • [gene] — gene symbol (e.g., BRCA1[gene])
  • [clinical_significance] — pathogenic, likely_pathogenic, benign, uncertain_significance
  • [molecular_consequence] — missense, nonsense, frameshift, etc.
  • [review_status] — criteria_provided_single_submitter, reviewed_by_expert_panel, etc.
  • [condition] — disease name
Raw lines 60 to 66
67## Response Format
68- esearch/esummary: JSON (with `retmode=json`)
69- efetch: XML only for ClinVar
70- Variation Services: JSON

Response Format

  • esearch/esummary: JSON (with retmode=json)
  • efetch: XML only for ClinVar
  • Variation Services: JSON
Raw lines 67 to 71
72## esummary Response Key Fields
73```json
75 "result": {
76 "37088": {
77 "uid": "37088",
78 "title": "NM_003238.6(TGFB2):c.687C>A (p.Cys229Ter)",
79 "germline_classification": {
80 "description": "Pathogenic",
81 "last_evaluated": "2025/09/08 00:00",
82 "review_status": "criteria provided, single submitter",
83 "fda_recognized_database": "",
84 "trait_set": [
85 {
86 "trait_xrefs": [
87 {
88 "db_source": "MedGen",
89 "db_id": "C3553762"
90 },
91 {
92 "db_source": "MONDO",
93 "db_id": "MONDO:0013897"
94 },
95 {
96 "db_source": "OMIM",
97 "db_id": "614816"
98 }
99 ],
100 "trait_name": "Loeys-Dietz syndrome 4"
101 }
102 ]
103 },
104 "genes": [
105 {
106 "symbol": "TGFB2",
107 "geneid": "7042",
108 "strand": "+",
109 "source": "submitted"
110 }
111 ]
112 }
113 }
115```
117Somatic clinical impact and oncogenicity are separate classifications; inspect
118`somatic_clinical_impact` and `oncogenicity` when present. Do not conflate these
119with germline classification or discard conflicting submissions.

esummary Response Key Fields

{
  "result": {
    "37088": {
      "uid": "37088",
      "title": "NM_003238.6(TGFB2):c.687C>A (p.Cys229Ter)",
      "germline_classification": {
        "description": "Pathogenic",
        "last_evaluated": "2025/09/08 00:00",
        "review_status": "criteria provided, single submitter",
        "fda_recognized_database": "",
        "trait_set": [
          {
            "trait_xrefs": [
              {
                "db_source": "MedGen",
                "db_id": "C3553762"
              },
              {
                "db_source": "MONDO",
                "db_id": "MONDO:0013897"
              },
              {
                "db_source": "OMIM",
                "db_id": "614816"
              }
            ],
            "trait_name": "Loeys-Dietz syndrome 4"
          }
        ]
      },
      "genes": [
        {
          "symbol": "TGFB2",
          "geneid": "7042",
          "strand": "+",
          "source": "submitted"
        }
      ]
    }
  }
}

Somatic clinical impact and oncogenicity are separate classifications; inspect somatic_clinical_impact and oncogenicity when present. Do not conflate these with germline classification or discard conflicting submissions.

Raw lines 72 to 120
121## Notes
122- Combine esearch + esummary for search-then-fetch workflows.
123- For bulk downloads, use ClinVar FTP: https://ftp.ncbi.nlm.nih.gov/pub/clinvar/

Notes

  • Combine esearch + esummary for search-then-fetch workflows.
  • For bulk downloads, use ClinVar FTP: https://ftp.ncbi.nlm.nih.gov/pub/clinvar/
Raw lines 121 to 123