# Gene Ontology API
> Gene function as an API — powered by EMBL-EBI's QuickGO and the Gene Ontology (GO), the standard vocabulary that describes what gene products do across three aspects: molecular function, biological process and cellular component. Given a gene or protein (a UniProt accession), list every GO annotation made for it — the GO term, its aspect, the qualifier, the evidence code, the supporting reference (e.g. a PubMed id), the organism and who assigned it — optionally filtered by aspect or organism. Look up any GO term to get its definition, aspect, synonyms and number of child terms; and search the ontology by name to find the right GO terms. GO term names are resolved automatically on annotations. From TP53 to any protein in any species, it is the backbone of functional genomics — ideal for enrichment analysis, annotation pipelines, bioinformatics and research tools. A gene-function annotation resource (which genes have which functions, with evidence) — distinct from generic ontology-term lookup. Open data from EMBL-EBI QuickGO and the GO Consortium (CC BY 4.0).

## 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/quickgo-api/..."
```

## Pricing
- **Free** (Free) — 2,700 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 54,000 calls/Mo, 8 req/s
- **Pro** ($23/Mo) — 255,000 calls/Mo, 20 req/s
- **Mega** ($61/Mo) — 900,000 calls/Mo, 50 req/s

## Endpoints

### Gene Ontology

#### `GET /v1/annotations` — GO annotations for a gene/protein

**Parameters:**
- `gene` (query, optional, string) — A UniProt accession Example: `P04637`
- `aspect` (query, optional, string) — molecular_function | biological_process | cellular_component
- `taxon` (query, optional, string) — NCBI taxon id filter
- `limit` (query, optional, string) — Max results (1-200, default 25)

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

**Response:**
```json
{
    "data": {
        "gene": "P04637",
        "count": 25,
        "total": 1042,
        "annotations": [
            {
                "date": "20210810",
                "go_id": "GO:0008285",
                "aspect": "biological_process",
                "symbol": "TP53",
                "go_name": "negative regulation of cell population proliferation",
                "evidence": "ISS",
                "taxon_id": 9606,
                "qualifier": "acts_upstream_of",
                "reference": "PMID:30514107",
                "taxon_name": null,
                "assigned_by": "ARUK-UCL",
                "evidence_code": "ECO:0000250"
            },
            {
                "date": "20210810",
                "go_id": "GO:0051726",
                "aspect": "biological_process",
                "symbol": "TP53",
                "go_name": "regulation of cell cycle",
                "evidence": "ISS",
                "taxon_id": 9606,
                "qualifier": "acts_upstream_of",
                "reference": "PMID:30514107",
                "taxon_name": null,
                "assigned_by": "ARUK-UCL",
                "evidence_code": "ECO:0000250"
            },
            {
                "date": "20210802",
                "go_id": "GO:1902749",
                "aspect": "biological_process",
                "symbol": "TP53",
                "go_name": "regulation of cell cycle G2/M phase transition",
                "evidence": "IMP",
                
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Search GO terms by name

**Parameters:**
- `q` (query, optional, string) — Search text Example: `apoptosis`
- `limit` (query, optional, string) — Max results (1-100, default 20)

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

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "apoptosis",
        "terms": [
            {
                "name": "execution phase of apoptosis",
                "go_id": "GO:0097194",
                "aspect": "biological_process",
                "is_obsolete": false
            },
            {
                "name": "lymphocyte apoptotic process",
                "go_id": "GO:0070227",
                "aspect": "biological_process",
                "is_obsolete": false
            },
            {
                "name": "hepatoblast apoptotic process",
                "go_id": "GO:1902489",
                "aspect": "biological_process",
                "is_obsolete": false
            },
            {
                "name": "oligodendrocyte apoptotic process",
                "go_id": "GO:0097252",
                "aspect": "biological_process",
                "is_obsolete": false
            },
            {
                "name": "keratinocyte apoptotic process",
                "go_id": "GO:0097283",
                "aspect": "biological_process",
                "is_obsolete": false
            },
            {
                "name": "hepatocyte apoptotic process",
                "go_id": "GO:0097284",
                "aspect": "biological_process",
                "is_obsolete": false
            },
            {
                "name": "leukocyte apoptotic process",
                "go_id": "GO:0071887",
                "aspect": "biological_proces
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/term` — A GO term: definition & aspect

**Parameters:**
- `id` (query, optional, string) — A GO id Example: `GO:0003677`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/quickgo-api/v1/term?id=GO%3A0003677"
```

**Response:**
```json
{
    "data": {
        "term": {
            "url": "https://www.ebi.ac.uk/QuickGO/term/GO:0003677",
            "name": "DNA binding",
            "go_id": "GO:0003677",
            "aspect": "molecular_function",
            "synonyms": [
                "structure-specific DNA binding",
                "structure specific DNA binding",
                "microtubule/chromatin interaction",
                "plasmid binding"
            ],
            "definition": "Any molecular function by which a gene product interacts selectively and non-covalently with DNA (deoxyribonucleic acid).",
            "child_count": 21,
            "is_obsolete": false
        }
    },
    "meta": {
        "timestamp": "2026-06-01T16:23:01.645Z",
        "request_id": "7ed72bac-16d1-4064-b139-571fbb6b72dd"
    },
    "status": "ok",
    "message": "GO term retrieved",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Endpoint catalogue & notes

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

**Response:**
```json
{
    "data": {
        "note": "The Gene Ontology (GO) is the standard vocabulary for gene-product function, in three aspects — molecular function, biological process and cellular component. EMBL-EBI's QuickGO links genes and proteins to the GO terms that describe them. /v1/annotations?gene=P04637 = the GO annotations for a gene/protein (pass a UniProt accession), each with the GO id and name, aspect, qualifier, evidence code, supporting reference (e.g. a PMID), organism and who assigned it — optionally filter by aspect=molecular_function|biological_process|cellular_component or taxon=9606 (NCBI taxon id); /v1/term?id=GO:0003677 = a GO term's definition, aspect, synonyms and child count (you may pass just the 7 digits); /v1/search?q=apoptosis = search GO terms by name, returning matching GO ids, names and aspects. Data from EMBL-EBI QuickGO / the GO Consortium (CC BY 4.0). A gene-function annotation resource (which genes have which functions, with evidence) — distinct from generic ontology-term lookup (OLS). Ideal for bioinformatics, functional-genomics, enrichment and annotation tools.",
        "source": "EMBL-EBI QuickGO — Gene Ontology annotations & terms (ebi.ac.uk/QuickGO)",
        "aspects": [
            "molecular_function",
            "biological_process",
            "cellular_component"
        ],
        "endpoints": [
            "/v1/annotations",
            "/v1/term",
            "/v1/search",
            "/v1/meta"
        ]
    },
    "meta": {

…(truncated, see openapi.json for full schema)
```


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