> ## 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.

# Gene Summary

> Describe a gene from its NCBI Gene ID or official symbol: name, aliases, organism, position on the genome and a summary of its function.

Describe a gene from its NCBI Gene ID or its official symbol: the symbol, the full name, the aliases and other names, the organism, the chromosome and cytogenetic band, the position on the current assembly with the strand, the exon count, the curated summary of its function with the note saying who wrote it, and the OMIM ids. Give exactly one of `gene_id` and `symbol`; `taxon_id` picks the organism for a symbol search and is human (9606) unless set. A symbol is matched without regard to case in the organism; when several genes carry it, the first is described and the rest are listed in `other_gene_ids`. `status` says whether the record is live, replaced (then `current_gene_id` names the record to use) or discontinued. `gene` is null when no gene has the id or the symbol. Covers every organism with genes in the US National Center for Biotechnology Information's Gene database. Coordinates are zero-based, as the source gives them.

## Authentication

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

## Request Body

<ParamField body="gene_id" type="string">
  An NCBI Gene ID, digits only, for example 7157. Digits only, 1 to 12.
</ParamField>

<ParamField body="symbol" type="string">
  An official gene symbol, for example TP53, matched without regard to case in the organism `taxon_id` names. 1 to 30 characters. No spaces, quotes or square brackets.
</ParamField>

<ParamField body="taxon_id" type="integer">
  The organism as an NCBI Taxonomy ID, used with `symbol`; 9606 (human) unless set, 10090 is mouse. From 1 to 999999999. Defaults to `9606`.
</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 `gene_summary`
</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`.
</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.gene" type="object">
  The gene described; null when no gene has the id or the symbol.
</ResponseField>

<ResponseField name="data.result.gene.gene_id" type="string">
  The NCBI Gene ID.
</ResponseField>

<ResponseField name="data.result.gene.symbol" type="string">
  The gene symbol. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.name" type="string">
  The full name. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.status" type="string">
  live, replaced or discontinued.
</ResponseField>

<ResponseField name="data.result.gene.current_gene_id" type="string">
  The Gene ID that replaced this record; null unless `status` is replaced.
</ResponseField>

<ResponseField name="data.result.gene.aliases" type="string[]">
  Other symbols the gene is known by.
</ResponseField>

<ResponseField name="data.result.gene.other_names" type="string[]">
  Other names the gene or its product is known by.
</ResponseField>

<ResponseField name="data.result.gene.organism" type="object">
  The organism the gene belongs to.
</ResponseField>

<ResponseField name="data.result.gene.organism.scientific_name" type="string">
  The organism's scientific name, for example Homo sapiens. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.organism.common_name" type="string">
  The organism's common name, for example human. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.organism.taxon_id" type="number">
  The organism's NCBI Taxonomy ID. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.chromosome" type="string">
  The chromosome, for example 17. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.map_location" type="string">
  The cytogenetic band, for example 17p13.1. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.location" type="object">
  The position on the current assembly; null when the source places the gene nowhere.
</ResponseField>

<ResponseField name="data.result.gene.location.assembly_accession" type="string">
  The assembly the position is on, for example GCF\_000001405.40. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.location.chromosome_accession" type="string">
  The chromosome sequence the position is on, for example NC\_000017.11. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.location.start" type="number">
  The smaller coordinate, zero-based. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.location.end" type="number">
  The larger coordinate, zero-based. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.location.strand" type="string">
  The strand: + or -. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.exon_count" type="number">
  How many exons the source counts. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.summary" type="string">
  The curated summary of the gene's function. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.summary_source" type="string">
  Who wrote the summary and when, for example "provided by RefSeq, Dec 2016". `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gene.mim_ids" type="string[]">
  The gene's OMIM ids.
</ResponseField>

<ResponseField name="data.result.other_gene_ids" type="string[]">
  The other Gene IDs a symbol search found, after the one described; empty otherwise.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://win.oneshotagent.com/v1/tools/lookup/gene-summary \
    -H "Content-Type: application/json" \
    -H "payment-signature: <base64 x402 payment>" \
    -d '{
      "symbol": "TP53"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/gene-summary", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "payment-signature": paymentProof,
    },
    body: JSON.stringify({
      "symbol": "TP53"
    }),
  });
  ```

  ```typescript SDK theme={null}
  const result = await agent.tool('lookup/gene-summary', {
    symbol: 'TP53'
  });
  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": "gene_summary",
      "result": {
        "gene": {
          "gene_id": "7157",
          "symbol": "TP53",
          "name": "tumor protein p53",
          "status": "live",
          "current_gene_id": null,
          "aliases": [
            "BCC7",
            "BMFS5",
            "LFS1",
            "P53",
            "TRP53"
          ],
          "other_names": [
            "cellular tumor antigen p53",
            "antigen NY-CO-13",
            "mutant tumor protein 53",
            "phosphoprotein p53",
            "transformation-related protein 53",
            "tumor protein 53",
            "tumor supressor p53"
          ],
          "organism": {
            "scientific_name": "Homo sapiens",
            "common_name": "human",
            "taxon_id": 9606
          },
          "chromosome": "17",
          "map_location": "17p13.1",
          "location": {
            "assembly_accession": "GCF_000001405.40",
            "chromosome_accession": "NC_000017.11",
            "start": 7668420,
            "end": 7687489,
            "strand": "-"
          },
          "exon_count": 13,
          "summary": "This gene encodes a tumor suppressor protein containing transcriptional activation, DNA binding, and oligomerization domains. The encoded protein responds to diverse cellular stresses to regulate expression of target genes, thereby inducing cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. Mutations in this gene are associated with a variety of human cancers, including hereditary cancers such as Li-Fraumeni syndrome. Alternative splicing of this gene and the use of alternate promoters result in multiple transcript variants and isoforms. Additional isoforms have also been shown to result from the use of alternate translation initiation codons from identical transcript variants (PMIDs: 12032546, 20937277).",
          "summary_source": "provided by RefSeq, Dec 2016",
          "mim_ids": [
            "191170"
          ]
        },
        "other_gene_ids": []
      },
      "evidence": {
        "source": "US National Center for Biotechnology Information",
        "source_kind": "public",
        "retrieved_at": "2026-10-15T12:00:00.000Z",
        "calls": [
          {
            "retrieved_at": "2026-10-15T12:00:00.000Z"
          },
          {
            "retrieved_at": "2026-10-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.