InterPro API
Free InterPro REST API with no key: protein families, domains and functional sites integrated from Pfam, PROSITE, SMART, CDD and 10 other member databases. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the InterPro API?
The InterPro API is a free, key-free REST API from EMBL-EBI that classifies proteins into families, domains and functional sites. It integrates signatures from 13 member databases including Pfam, PROSITE, SMART, CDD and PANTHER into unified entries with GO term annotations.
Protein domain prediction has a fragmentation problem: Pfam, PROSITE, SMART, CDD, PANTHER and several others each maintain their own signatures, and they overlap inconsistently. InterPro solves this by curating them into integrated entries — one InterPro accession represents a domain or family and lists which signature from each member database corresponds to it, so you get a single answer instead of thirteen partial ones.
The `member_databases` object in each entry is the practical payoff: it shows exactly which Pfam, PROSITE, SMART and CDD accessions InterPro considers equivalent, which is what you need when reconciling annotations from different pipelines. Note that pagination here is cursor-based — the response carries a full `next` URL and you follow it rather than computing offsets.
Quick facts
- Base URL
https://www.ebi.ac.uk/interpro/api- Authentication
- No API key or account. InterPro is EMBL-EBI infrastructure, free for any use including commercial.
- Rate limit
- No hard published limit; EBI throttles abusive traffic. Follow the cursor rather than issuing parallel page requests.
- Pricing
- Free. Data released under CC0.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the InterPro API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch the first InterPro entry with its member database signatures
GET https://www.ebi.ac.uk/interpro/api/entry/interpro/?page_size=1
curl 'https://www.ebi.ac.uk/interpro/api/entry/interpro/?page_size=1'const res = await fetch("https://www.ebi.ac.uk/interpro/api/entry/interpro/?page_size=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.ebi.ac.uk/interpro/api/entry/interpro/?page_size=1", timeout=20)
res.raise_for_status()
print(res.json()){
"count": 54190,
"next": "https://www.ebi.ac.uk/interpro/api/entry/interpro/?cursor=cD1JUFIwMDAwMDE%3D&page_size=1",
"previous": null,
"results": [
{
"metadata": {
"accession": "IPR000001",
"name": "Kringle",
"source_database": "interpro",
"type": "domain",
"integrated": null,
"member_databases": {
"cdd": {
"cd00108": "KR"
},
"profile": {
"PS50070": "Kringle domain profile"
},
"pfam": {
"PF00051": "Kringle domain"
},
"smart": {
"SM00130": "Kringle domain"
}
},
"go_terms": null
}
}
]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | path segment | Required | Data type: `entry`, `protein`, `structure`, `taxonomy`, `proteome` or `set`. entry |
source | path segment | Optional | Which database: `interpro` for integrated entries, or a member database such as `pfam` or `prosite`. interpro |
page_size | query | Optional | Results per page. Defaults to 20. 1 |
cursor | query | Optional | Opaque pagination cursor. Do not construct it — follow the `next` URL from the previous response. |
accession | path segment | Optional | A specific accession to fetch, such as an InterPro or UniProt identifier. IPR000001 |
Response fields
countinteger- Total matching records across all pages.
next / previousstring- Complete URLs for cursor pagination. Follow these directly rather than building your own offsets.
results[].metadata.accessionstring- InterPro accession in `IPR` plus six digits form.
results[].metadata.namestring- Human-readable name of the family, domain or site.
results[].metadata.typestring- Classification: `domain`, `family`, `homologous_superfamily`, `repeat`, `active_site`, `binding_site`, `conserved_site` or `ptm`.
results[].metadata.member_databasesobject- Map of member database to the signature accessions InterPro treats as equivalent — the key field for reconciling annotations across tools.
results[].metadata.go_termsarray- Gene Ontology terms transferred to any protein matching the entry. Null when no GO mapping is curated.
What you can build with the InterPro API
- Annotate a protein sequence with domain and family assignments
- Map a Pfam accession to its equivalents in PROSITE, SMART and CDD
- Transfer GO term annotations to uncharacterised proteins by domain match
- Analyse domain architecture across a protein family
Common errors and how to fix them
404
Unknown accession or an invalid data type in the path.
Fix: InterPro accessions are `IPR` plus six digits. Member database accessions keep their own format, such as `PF00051`.
400
Malformed or expired cursor.
Fix: Cursors are opaque and cannot be constructed by hand — always follow the `next` URL verbatim.
Null go_terms
Not an error — no GO mapping is curated for that entry.
Fix: Only a subset of entries carry GO annotations. Treat null as absent, not as a failure.
InterPro API — frequently asked questions
Is the InterPro API free?
Yes, free with no API key or registration. InterPro is maintained by EMBL-EBI, and the data is released under CC0 so commercial use is unrestricted.
What is the difference between InterPro and Pfam?
Pfam is one of 13 member databases InterPro integrates. An InterPro entry is a curated grouping that says which Pfam, PROSITE, SMART, CDD and PANTHER signatures all describe the same domain — so InterPro gives you one reconciled answer instead of several overlapping ones.
How do I paginate through InterPro results?
Follow the `next` URL in each response. Pagination is cursor-based, not offset-based, so the cursor is opaque and must be used exactly as returned rather than computed.
Can I scan my own sequence against InterPro?
Not through this API, which queries precomputed results. Sequence scanning is a separate EBI service called InterProScan, available as a job-based web service or as a downloadable tool.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
InterPro is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.