BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://www.ebi.ac.uk/interpro/api/entry/interpro/?page_size=1'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200
{
  "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

ParameterTypeRequiredDescription
typepath segmentRequiredData type: `entry`, `protein`, `structure`, `taxonomy`, `proteome` or `set`. entry
sourcepath segmentOptionalWhich database: `interpro` for integrated entries, or a member database such as `pfam` or `prosite`. interpro
page_sizequeryOptionalResults per page. Defaults to 20. 1
cursorqueryOptionalOpaque pagination cursor. Do not construct it — follow the `next` URL from the previous response.
accessionpath segmentOptionalA 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

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.