> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Variant Resolve

> Resolve an HGVS expression or dbSNP rsID to ClinVar variant identities.

Says which variant a public registry, ClinVar, records under one identifier, for research; not medical advice. Supply exactly one HGVS expression on a reference sequence accession (genomic, coding, non-coding or protein) or one dbSNP rsID, never a person's genome, sequencing data or a VCF file. The expression is matched as one quoted variant name; expressions containing double quotes or square brackets are refused, so use the rsID for repeat notation. An rsID can match several alleles at one position: returns up to five variations carrying that rsID. A short protein change can match several variants too; ambiguous is then true. No match returns an empty variants list. Identity only: no germline, somatic or oncogenicity classification, conditions or submissions; pass vcv to variant\_clinical\_significance for those. ClinVar refreshes weekly, and accession versions change when records change. NCBI places no restriction on use of ClinVar.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

<ParamField body="hgvs" type="string">
  HGVS expression starting with a reference sequence accession, for example NM\_007294.4:c.5266dup or NM\_007294.4(BRCA1):c.5266dup; supply only hgvs or rsid. 5 to 200 characters.
</ParamField>

<ParamField body="rsid" type="string">
  dbSNP identifier, for example rs80357906; supply only rsid or hgvs.
</ParamField>

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

<ResponseField name="data.request_id" type="string">
  Durable job ID for audit and lookup
</ResponseField>

<ResponseField name="data.status" type="string">
  Job status: `completed`
</ResponseField>

<ResponseField name="data.tool" type="string">
  Always `variant_resolve`
</ResponseField>

<ResponseField name="data.result" type="object">
  The answer, described under Result below
</ResponseField>

<ResponseField name="data.evidence" type="object">
  Where the answer came from and when
</ResponseField>

<ResponseField name="data.evidence.source" type="string">
  The public body the data comes from. Always `US National Center for Biotechnology Information (ClinVar)`.
</ResponseField>

<ResponseField name="data.evidence.source_kind" type="string">
  `public` when the data comes from a public body, `commercial` otherwise
</ResponseField>

<ResponseField name="data.evidence.retrieved_at" type="string">
  When the lookup was made, as an ISO 8601 UTC time
</ResponseField>

<ResponseField name="data.evidence.as_of" type="string">
  When the source says the fact was last updated, or `null` when the source gives no date
</ResponseField>

## Result

Nested under `data.result`.

<ResponseField name="data.result.variants" type="object[]">
  Up to five variations the identifier names, in search order.
</ResponseField>

<ResponseField name="data.result.variants[].vcv" type="string">
  ClinVar variation accession.
</ResponseField>

<ResponseField name="data.result.variants[].version" type="string">
  Versioned ClinVar accession.
</ResponseField>

<ResponseField name="data.result.variants[].title" type="string">
  ClinVar preferred name.
</ResponseField>

<ResponseField name="data.result.variants[].variant_type" type="string">
  Variant type.
</ResponseField>

<ResponseField name="data.result.variants[].genes" type="object[]">
  Genes.
</ResponseField>

<ResponseField name="data.result.variants[].genes[].symbol" type="string">
  Symbol.
</ResponseField>

<ResponseField name="data.result.variants[].genes[].gene_id" type="string">
  Gene id.
</ResponseField>

<ResponseField name="data.result.variants[].rsid" type="string">
  dbSNP identifier from the record's cross-reference. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].canonical_spdi" type="string">
  Canonical spdi. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].cdna_change" type="string">
  Cdna change. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].protein_change" type="string">
  Protein change. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].other_names" type="string[]">
  Other names ClinVar records, such as legacy nomenclature.
</ResponseField>

<ResponseField name="data.result.variants[].location" type="object">
  Location.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch38" type="object">
  Coordinates on GRCh38. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch38.chromosome" type="string">
  Chromosome.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch38.band" type="string">
  Band. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch38.start" type="integer">
  Start. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch38.stop" type="integer">
  Stop. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch37" type="object">
  Coordinates on GRCh37. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch37.chromosome" type="string">
  Chromosome.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch37.band" type="string">
  Band. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch37.start" type="integer">
  Start. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].location.grch37.stop" type="integer">
  Stop. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.variants[].page_url" type="string">
  Page url.
</ResponseField>

<ResponseField name="data.result.ambiguous" type="boolean">
  True when more than one variant is returned.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://win.oneshotagent.com/v1/tools/resolve/variant \
    -H "Content-Type: application/json" \
    -H "payment-signature: <base64 x402 payment>" \
    -d '{
      "hgvs": "NM_007294.4:c.5266dup"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://win.oneshotagent.com/v1/tools/resolve/variant", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "payment-signature": paymentProof,
    },
    body: JSON.stringify({
      "hgvs": "NM_007294.4:c.5266dup"
    }),
  });
  ```

  ```typescript SDK theme={null}
  const result = await agent.tool('resolve/variant', {
    hgvs: 'NM_007294.4:c.5266dup'
  });
  console.log(result.data.result);
  console.log(result.data.evidence);
  ```
</RequestExample>

<ResponseExample>
  ```json Response (200) theme={null}
  {
    "success": true,
    "data": {
      "request_id": "uuid",
      "receipt_id": "rcpt_...",
      "status": "completed",
      "tool": "variant_resolve",
      "result": {
        "variants": [
          {
            "vcv": "VCV000017677",
            "version": "VCV000017677.176",
            "title": "NM_007294.4(BRCA1):c.5266dup (p.Gln1756fs)",
            "variant_type": "Duplication",
            "genes": [
              {
                "symbol": "BRCA1",
                "gene_id": "672"
              }
            ],
            "rsid": "rs80357906",
            "canonical_spdi": "NC_000017.11:43057062:GGG:GGGG",
            "cdna_change": "c.5266dup",
            "protein_change": "Q1756fs, Q1777fs, Q652fs, Q1709fs",
            "other_names": [
              "5382_5383insC",
              "p.Gln1756ProfsX74",
              "NP_009225.1:p.Gln1756ProfsTer74",
              "p.(Gln1756ProfsTer74)",
              "5382insC",
              "5384insC",
              "5385insC",
              "5383insC"
            ],
            "location": {
              "grch38": {
                "chromosome": "17",
                "band": "17q21.31",
                "start": 43057062,
                "stop": 43057063
              },
              "grch37": {
                "chromosome": "17",
                "band": "17q21.31",
                "start": 41209079,
                "stop": 41209080
              }
            },
            "page_url": "https://www.ncbi.nlm.nih.gov/clinvar/variation/17677/"
          }
        ],
        "ambiguous": false
      },
      "evidence": {
        "source": "US National Center for Biotechnology Information (ClinVar)",
        "source_kind": "public",
        "retrieved_at": "2026-01-15T12:00:00.000Z",
        "calls": [
          {
            "retrieved_at": "2026-01-15T12:00:00.000Z"
          },
          {
            "retrieved_at": "2026-01-15T12:00:00.000Z"
          }
        ],
        "as_of": null
      }
    }
  }
  ```
</ResponseExample>

<Info>See [Pricing](/pricing) for this tool's price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers `200`.</Info>

## Notes

* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.