# gnomAD API
> Population genetics as an API, powered by the Broad Institute's gnomAD (Genome Aggregation Database) — allele frequencies and gene constraint aggregated from over 800,000 human exomes and genomes. Look up a gene's constraint scores (pLI, LOEUF, observed vs expected loss-of-function, missense Z) and genomic location; get a variant's allele frequencies broken down by ancestry population (African/African-American, Admixed American, Ashkenazi Jewish, East Asian, Finnish, Non-Finnish European, South Asian, Middle Eastern…) across both genome and exome callsets, with rsIDs, homozygote counts and predicted consequence; search genes by symbol; read a transcript's constraint; and list the variants in a small genomic region. Supports GRCh38 and GRCh37 and the gnomAD v4/v3/v2 datasets. Ideal for clinical and population genetics, variant interpretation and prioritisation, rare-disease and pharmacogenomics research, and bioinformatics pipelines. Variant ids are chrom-pos-ref-alt.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/gnomad-api/..."
```

## Pricing
- **Free** (Free) — 510 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 19,000 calls/Mo, 6 req/s
- **Pro** ($22/Mo) — 88,500 calls/Mo, 15 req/s
- **Mega** ($60/Mo) — 342,000 calls/Mo, 40 req/s

## Endpoints

### Genes

#### `GET /v1/gene` — A gene's constraint & location

**Parameters:**
- `symbol` (query, required, string) — Gene symbol, e.g. BRCA1 Example: `BRCA1`
- `reference_genome` (query, optional, string) — GRCh38 or GRCh37

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gnomad-api/v1/gene?symbol=BRCA1"
```

**Response:**
```json
{
    "data": {
        "gene": {
            "name": "BRCA1 DNA repair associated",
            "stop": 43170245,
            "chrom": "17",
            "flags": [],
            "start": 43044295,
            "strand": "-",
            "symbol": "BRCA1",
            "gene_id": "ENSG00000012048",
            "constraint": {
                "pli": 5.517117679826164e-38,
                "loeuf": 0.927589724465447,
                "mis_z": 1.73357180717296,
                "syn_z": 2.040732980468744,
                "oe_lof": 0.8061824760986327,
                "oe_mis": 0.9127915412080277,
                "expected_lof": 173.65795480634046,
                "observed_lof": 140,
                "oe_lof_lower": 0.7028371223870614,
                "oe_lof_upper": 0.927589724465447
            },
            "canonical_transcript": "ENST00000357654"
        }
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:53.981Z",
        "request_id": "015d71f6-ce78-40d4-8018-3ab420bcf99c"
    },
    "status": "ok",
    "message": "Gene retrieved",
    "success": true
}
```

#### `GET /v1/search` — Search genes by symbol

**Parameters:**
- `query` (query, required, string) — Gene symbol, e.g. TP53 Example: `TP53`
- `reference_genome` (query, optional, string) — GRCh38 or GRCh37

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gnomad-api/v1/search?query=TP53"
```

**Response:**
```json
{
    "data": {
        "count": 5,
        "genes": [
            {
                "symbol": "TP53",
                "gene_id": "ENSG00000141510"
            },
            {
                "symbol": "TP63",
                "gene_id": "ENSG00000073282"
            },
            {
                "symbol": "PRODH",
                "gene_id": "ENSG00000100033"
            },
            {
                "symbol": "TP53TG1",
                "gene_id": "ENSG00000182165"
            },
            {
                "symbol": "TP53INP2",
                "gene_id": "ENSG00000078804"
            }
        ],
        "query": "TP53"
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:54.144Z",
        "request_id": "4fca5a4d-44f1-4468-8653-102e92bd4898"
    },
    "status": "ok",
    "message": "Search results retrieved",
    "success": true
}
```

#### `GET /v1/transcript` — A transcript's constraint

**Parameters:**
- `id` (query, required, string) — Ensembl transcript id, e.g. ENST00000357654 Example: `ENST00000357654`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gnomad-api/v1/transcript?id=ENST00000357654"
```

**Response:**
```json
{
    "data": {
        "transcript": {
            "stop": 43125364,
            "chrom": "17",
            "start": 43044295,
            "strand": "-",
            "gene_id": "ENSG00000012048",
            "constraint": {
                "pli": 5.517117679826164e-38,
                "loeuf": 0.927589724465447,
                "mis_z": 1.73357180717296,
                "syn_z": 2.040732980468744,
                "oe_lof": 0.8061824760986327,
                "oe_mis": 0.9127915412080277,
                "expected_lof": 173.65795480634046,
                "observed_lof": 140,
                "oe_lof_lower": 0.7028371223870614,
                "oe_lof_upper": 0.927589724465447
            },
            "gene_symbol": "BRCA1",
            "transcript_id": "ENST00000357654"
        }
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:54.323Z",
        "request_id": "5826a3d7-83d4-4677-b3ae-bd84dd1e1ef2"
    },
    "status": "ok",
    "message": "Transcript retrieved",
    "success": true
}
```

### Variants

#### `GET /v1/region` — Variants in a genomic region

**Parameters:**
- `chrom` (query, required, string) — Chromosome, e.g. 17 Example: `17`
- `start` (query, required, string) — Start position Example: `43044295`
- `stop` (query, required, string) — Stop position (max 2 kb span) Example: `43045500`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gnomad-api/v1/region?chrom=17&start=43044295&stop=43045500"
```

**Response:**
```json
{
    "data": {
        "stop": 43045500,
        "chrom": "17",
        "count": 100,
        "start": 43044295,
        "total": 1129,
        "variants": [
            {
                "rsids": [
                    "rs1279709306"
                ],
                "exome_af": 2.2225891258239457e-5,
                "genome_af": 1.3143540606968706e-5,
                "variant_id": "17-43044295-T-TG",
                "consequence": "3_prime_UTR_variant"
            },
            {
                "rsids": [],
                "exome_af": 0,
                "genome_af": null,
                "variant_id": "17-43044297-G-T",
                "consequence": "3_prime_UTR_variant"
            },
            {
                "rsids": [],
                "exome_af": 0,
                "genome_af": null,
                "variant_id": "17-43044298-A-G",
                "consequence": "3_prime_UTR_variant"
            },
            {
                "rsids": [],
                "exome_af": 0,
                "genome_af": null,
                "variant_id": "17-43044300-G-T",
                "consequence": "3_prime_UTR_variant"
            },
            {
                "rsids": [
                    "rs2050777098"
                ],
                "exome_af": 3.137097431972042e-6,
                "genome_af": null,
                "variant_id": "17-43044300-G-C",
                "consequence": "3_prime_UTR_variant"
            },
            {
                "rsids": [],
       
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/variant` — Variant allele frequencies by population

**Parameters:**
- `id` (query, required, string) — chrom-pos-ref-alt, e.g. 1-55051215-G-GA Example: `1-55051215-G-GA`
- `dataset` (query, optional, string) — gnomad_r4|gnomad_r3|gnomad_r2_1

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gnomad-api/v1/variant?id=1-55051215-G-GA"
```

**Response:**
```json
{
    "data": {
        "variant": {
            "alt": "GA",
            "pos": 55051215,
            "ref": "G",
            "chrom": "1",
            "exome": {
                "homozygotes": 2,
                "populations": [
                    {
                        "code": "remaining",
                        "population": "Remaining",
                        "allele_count": 16,
                        "allele_number": 14228,
                        "allele_frequency": 0.00112454
                    },
                    {
                        "code": "amr",
                        "population": "Admixed American",
                        "allele_count": 19,
                        "allele_number": 27270,
                        "allele_frequency": 0.00069674
                    },
                    {
                        "code": "fin",
                        "population": "Finnish",
                        "allele_count": 0,
                        "allele_number": 12364,
                        "allele_frequency": 0
                    },
                    {
                        "code": "mid",
                        "population": "Middle Eastern",
                        "allele_count": 5,
                        "allele_number": 2782,
                        "allele_frequency": 0.00179727
                    },
                    {
                        "code": "nfe",
                        "population": "Non-Finnish European",
              
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Usage notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gnomad-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Population genetics from the Genome Aggregation Database. /v1/gene?symbol=BRCA1 = a gene's location and gnomAD constraint (pLI, LOEUF, observed/expected loss-of-function, missense Z); /v1/variant?id=1-55051215-G-GA = a variant's allele frequencies broken down by ancestry population (African, East Asian, Non-Finnish European, South Asian, …) for both genomes and exomes, with rsIDs and consequence; /v1/search?query=TP53 = search genes by symbol; /v1/transcript?id=ENST00000357654 = a transcript's constraint; /v1/region?chrom=17&start=43044295&stop=43045500 = the variants in a small genomic region (max 2,000 bp). reference_genome=GRCh38|GRCh37; dataset=gnomad_r4|gnomad_r3|gnomad_r2_1. Variant ids are chrom-pos-ref-alt. Data from the Broad Institute gnomAD. For gene structure see the Ensembl API; for clinical variants the gnomAD variant consequence.",
        "source": "gnomAD GraphQL API (gnomad.broadinstitute.org)",
        "endpoints": [
            "/v1/gene",
            "/v1/variant",
            "/v1/search",
            "/v1/transcript",
            "/v1/region",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:54.879Z",
        "request_id": "00926433-ee9f-4463-aa77-6f107233d693"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/gnomad-api
OpenAPI spec: https://www.oanor.com/api/gnomad-api/openapi.json
