# InterPro API
> Protein families, domains and functional sites as an API, powered by the EBI InterPro database. InterPro classifies proteins into families and identifies the domains, repeats and important sites they contain, by combining the predictive signatures of many member databases (Pfam, SMART, PROSITE, CDD, PANTHER, SUPERFAMILY, NCBIfam and more) into a single integrated resource. Look up an InterPro entry — a family, domain, repeat, conserved/binding/active site or post-translational modification — with its description, Gene Ontology terms and the member-database signatures that define it; search entries by name and type; read a protein's metadata; and, most usefully, list the InterPro entries found on a protein together with their start–end positions, so you can see a protein's domain architecture. Ideal for protein annotation and function prediction, comparative genomics, structural-biology and bioinformatics pipelines, and research and teaching tools. Entry ids are IPR followed by six digits; protein ids are UniProt accessions. Data from EMBL-EBI.

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

## Pricing
- **Free** (Free) — 510 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 18,900 calls/Mo, 6 req/s
- **Pro** ($21/Mo) — 86,500 calls/Mo, 15 req/s
- **Mega** ($58/Mo) — 332,000 calls/Mo, 40 req/s

## Endpoints

### Entries

#### `GET /v1/entry` — An InterPro entry

**Parameters:**
- `id` (query, required, string) — InterPro id, e.g. IPR000719 Example: `IPR000719`

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

**Response:**
```json
{
    "data": {
        "entry": {
            "name": "Protein kinase domain",
            "type": "domain",
            "counts": null,
            "go_terms": [
                {
                    "id": "GO:0004672",
                    "name": "protein kinase activity",
                    "category": "molecular_function"
                },
                {
                    "id": "GO:0005524",
                    "name": "ATP binding",
                    "category": "molecular_function"
                },
                {
                    "id": "GO:0006468",
                    "name": "protein phosphorylation",
                    "category": "biological_process"
                }
            ],
            "accession": "IPR000719",
            "short_name": "Prot_kinase_dom",
            "signatures": [
                {
                    "name": "Protein kinase domain profile",
                    "database": "profile",
                    "signature": "PS50011"
                },
                {
                    "name": "Protein kinase domain",
                    "database": "pfam",
                    "signature": "PF00069"
                },
                {
                    "name": "Serine/Threonine protein kinases, catalytic domain",
                    "database": "smart",
                    "signature": "SM00220"
                }
            ],
            "description": "This entry represents the protein kinase domain containing the cat
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Search InterPro entries

**Parameters:**
- `query` (query, required, string) — Search text, e.g. kinase Example: `kinase`
- `type` (query, optional, string) — family|domain|repeat|conserved_site|…
- `limit` (query, optional, string) — Max results (1-100)

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

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "kinase",
        "total": 1112,
        "entries": [
            {
                "name": "Phosphofructokinase domain",
                "type": "domain",
                "source": "interpro",
                "accession": "IPR000023"
            },
            {
                "name": "GPCR kinase",
                "type": "family",
                "source": "interpro",
                "accession": "IPR000239"
            },
            {
                "name": "Ser/Thr protein kinase, TGFB receptor",
                "type": "family",
                "source": "interpro",
                "accession": "IPR000333"
            },
            {
                "name": "Phosphatidylinositol 3-kinase Ras-binding (PI3K RBD) domain",
                "type": "domain",
                "source": "interpro",
                "accession": "IPR000341"
            },
            {
                "name": "Phosphatidylinositol 3-/4-kinase, catalytic domain",
                "type": "domain",
                "source": "interpro",
                "accession": "IPR000403"
            },
            {
                "name": "Hydroxyethylthiazole kinase",
                "type": "family",
                "source": "interpro",
                "accession": "IPR000417"
            },
            {
                "name": "7,8-Dihydro-6-hydroxymethylpterin-pyrophosphokinase, HPPK",
                "type": "domain",
                "source": "in
…(truncated, see openapi.json for full schema)
```

### Proteins

#### `GET /v1/domains` — The domains found on a protein

**Parameters:**
- `id` (query, required, string) — UniProt accession, e.g. P04637 Example: `P04637`
- `limit` (query, optional, string) — Max entries (1-100)

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

**Response:**
```json
{
    "data": {
        "count": 22,
        "entries": [
            {
                "name": "P53 DNA-binding domain",
                "type": "domain",
                "accession": "cd08367",
                "positions": [
                    {
                        "end": 288,
                        "start": 109
                    }
                ],
                "integrated": "IPR011615",
                "source_database": "cdd"
            },
            {
                "name": null,
                "type": "homologous_superfamily",
                "accession": "G3DSA:2.60.40.720",
                "positions": [
                    {
                        "end": 294,
                        "start": 95
                    }
                ],
                "integrated": "IPR012346",
                "source_database": "cathgene3d"
            },
            {
                "name": "p53-like tetramerisation domain",
                "type": "homologous_superfamily",
                "accession": "G3DSA:4.10.170.10",
                "positions": [
                    {
                        "end": 360,
                        "start": 319
                    }
                ],
                "integrated": "IPR036674",
                "source_database": "cathgene3d"
            },
            {
                "name": null,
                "type": "homologous_superfamily",
                "accession": "G3DSA:6.10.50.20",
                "positions": [
  
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/protein` — A protein's metadata

**Parameters:**
- `id` (query, required, string) — UniProt accession, e.g. P04637 Example: `P04637`

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

**Response:**
```json
{
    "data": {
        "protein": {
            "id": "P53_HUMAN",
            "gene": "TP53",
            "name": "Cellular tumor antigen p53",
            "counts": null,
            "length": 393,
            "organism": "Homo sapiens (Human)",
            "reviewed": true,
            "taxon_id": "9606",
            "accession": "P04637",
            "source_database": "reviewed"
        }
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:34.812Z",
        "request_id": "3a0f9cfa-b4a0-4e77-9566-d89520d2505e"
    },
    "status": "ok",
    "message": "Protein retrieved",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "Protein families, domains & functional sites. /v1/entry?id=IPR000719 = an InterPro entry (a family, domain, repeat, conserved/binding/active site or PTM) with its description, Gene Ontology terms, the member-database signatures that build it (Pfam, SMART, PROSITE, CDD, PANTHER…) and protein/structure counts; /v1/search?query=kinase (filter type=family|domain|homologous_superfamily|repeat|conserved_site|binding_site|active_site|ptm) = search entries; /v1/protein?id=P04637 = a UniProt protein's metadata (name, length, organism, gene); /v1/domains?id=P04637 = the InterPro entries (domains & families) found on a protein with their start–end positions — cross-links the UniProt API. Entry ids are IPR followed by 6 digits; protein ids are UniProt accessions. Data from EMBL-EBI InterPro.",
        "source": "EBI InterPro API (ebi.ac.uk/interpro)",
        "endpoints": [
            "/v1/entry",
            "/v1/search",
            "/v1/protein",
            "/v1/domains",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:34.885Z",
        "request_id": "4fa826c5-2c6c-4286-bbad-fdeba30d2f89"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


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