Programmatic access: REST API and MCP endpoints
This page lists what can be retrieved from each endpoint of the
SCOPe REST API and the tools offered by the
public MCP service. For step-by-step instructions on connecting an AI
research assistant or installing the research skills, see
Use SCOPe with a research assistant.
Conventions shared by all endpoints
- Base URL:
https://scop.berkeley.edu/api/v1. All paths below are
relative to it. The API is read-only and every operation uses HTTP
GET. No account or API key is needed.
- The machine-readable
OpenAPI 3.1 specification
(
openapi.yaml) gives the full parameter and response
schemas for every endpoint listed here.
- Releases. Every biological data path takes a
{release} segment (for example
/releases/2.08/sids/d1bz1a_); the sequence endpoints take
the same value as an optional release query parameter
instead, defaulting to the current release. Any public
SCOP 1.x or SCOPe
2.x version is accepted, such as 1.75 or 2.08.
For a release that receives
periodic updates,
such as 2.08, the current periodic update is served. The dated label of
the current update (for example 2.08-YYYY-MM-DD, as reported
by /releases/current) is also accepted, but a superseded
periodic label returns HTTP 404 rather than older data, and
stable-only views (2.08-stable) are not yet available.
Record the release and retrieval date when citing results.
- Responses are JSON, except for the OpenAPI document (YAML),
coordinate downloads (PDB format) and sequences requested with
format=fasta. Errors are returned as JSON objects with
status, title and detail fields.
Records include api_url links to related endpoints.
- Pagination. Collections accept
limit and return
has_more and an opaque next_cursor; pass that
value as cursor to fetch the next page.
- Identifiers. sunid: numeric node identifier (e.g. 46456);
sid: domain identifier (e.g. d1bz1a_); sccs: classification
string (e.g. a.1.1.2); PDB code (e.g. 1ake); chain: PDB code plus one
case-sensitive chain character (e.g. 1akeA); AlphaFold model
(e.g. AF-Q9BSH3-F1). See stable identifiers.
- Sequence and structure matches to AlphaFold models and unclassified
chains are evidence for investigation; they are not official
SCOPe classifications.
Example requests
curl 'https://scop.berkeley.edu/api/v1/releases/current'
curl 'https://scop.berkeley.edu/api/v1/releases/2.08/sids/d1bz1a_'
curl 'https://scop.berkeley.edu/api/v1/releases/2.08/alphafolds/AF-Q9BSH3-F1/hits?limit=5'
These return, respectively, the current release and its latest periodic
update; the classification and lineage of domain d1bz1a_ (hemoglobin alpha
chain) in SCOPe 2.08; and the top five sequence
and structure matches from the human Nicolin-1 AlphaFold model to
SCOPe domains.
REST API endpoints
Service metadata and releases
Service metadata and release endpoints
| Endpoint | Returns | Key parameters |
GET / | Service metadata and canonical endpoint hints. | |
GET /openapi.yaml | The OpenAPI document (YAML). | |
GET /levels | The levels of the SCOP hierarchy (root, class, fold, superfamily, family, protein, species, domain). | |
GET /releases | All public SCOP and SCOPe releases. | |
GET /releases/current | The current public release, including its latest periodic update label. | |
GET /releases/{release} | Metadata for one release, including its current periodic update label. | release |
Classification hierarchy (by sunid or sccs)
Classification hierarchy endpoints
| Endpoint | Returns | Key parameters |
GET /releases/{release}/root | The root node of a release. | release |
GET /releases/{release}/resolve/{identifier} | The canonical record for any public identifier (sid, sunid, sccs or PDB code). | identifier |
GET /releases/{release}/sunids/{sunid} | One node (any level) by sunid. | sunid |
GET /releases/{release}/sunids/{sunid}/parents | The node's lineage from the root. | sunid |
GET /releases/{release}/sunids/{sunid}/children | The node's immediate children, paginated. | sunid, limit, cursor |
GET /releases/{release}/sunids/{sunid}/annotations | Curator comments, inconsistencies, repeats and cross-references. | sunid |
GET /releases/{release}/sunids/{sunid}/images | Thumbnail and larger static images. | sunid |
GET /releases/{release}/sunids/{sunid}/homology | Whether membership implies homology at this level, with structural-heterogeneity and repeat warnings. | sunid |
GET /releases/{release}/sunids/{sunid}/fatcat-chain-statistics | Stored FATCAT classification-consistency statistics (match fraction and observation count) for a family, superfamily or fold; not a probability that a given hit is correct. | sunid, minimum_supporting_hits (2, 3 or 5) |
GET /releases/{release}/sccs/{sccs} | One node by sccs classification string. | sccs |
GET /releases/{release}/sccs/{sccs}/parents | The node's lineage from the root. | sccs |
GET /releases/{release}/sccs/{sccs}/children | The node's immediate children, paginated. | sccs, limit, cursor |
Domains (by sid)
Domain endpoints
| Endpoint | Returns | Key parameters |
GET /releases/{release}/domains | A compact, paginated index of all domains in a release. | class, sccs_prefix, limit, cursor |
GET /releases/{release}/sids/{sid} | One domain by sid, with its classification. | sid |
GET /releases/{release}/sids/{sid}/parents | The domain's lineage from class to species. | sid |
GET /releases/{release}/sids/{sid}/annotations | Curator comments, inconsistencies, repeats and cross-references. | sid |
GET /releases/{release}/sids/{sid}/images | Thumbnail and larger static images. | sid |
GET /releases/{release}/sids/{sid}/homology | Whether the domain's classification implies homology, with structural-heterogeneity and repeat warnings. | sid |
Sequences
Sequence endpoints
| Endpoint | Returns | Key parameters |
GET /sequences/sids/{sid} | The sequence of one domain. | release, source (seqres or atom), style (genetic or original boundaries), format (json or fasta) |
GET /sequences/sunids/{sunid} | Domain sequences selected by sunid. | release, source, style, format |
GET /sequences/pdb/{code} | Sequences of all chains in a PDB entry. | release, source, format |
GET /sequences/pdb/{code}/chains/{chain} | The sequence of one chain in a PDB entry. | chain (one character), release, source, format |
PDB entries
PDB entry endpoints
| Endpoint | Returns | Key parameters |
GET /releases/{release}/pdb | A compact, paginated index of PDB entries classified in a release. | limit, cursor |
GET /releases/{release}/pdb/{code} | A compact summary of a PDB entry. | code |
GET /releases/{release}/pdb/{code}/chains | The entry's chains and their classified domains. | code |
GET /releases/{release}/pdb/{code}/domains | The entry's classified SCOPe domains. | code |
GET /releases/{release}/pdb/{code}/heterogens | Heterogens (ligands and other non-standard groups) in the entry. | code |
GET /releases/{release}/pdb/{code}/quality | SPACI and AEROSPACI structure-quality scores. | code |
GET /releases/{release}/pdb/{code}/revisions | PDB revision dates. | code |
GET /releases/{release}/pdb/{code}/coordinates | Complete coordinates (PDB format) from the SCOPe local PDB snapshot. | code |
PDB chains and chain comparisons
Chain results describe the requested chain, including chains not yet
classified in SCOPe. A
cluster_representative link (90% sequence identity) is supplied
separately and is never substituted automatically; see
Explore PDB chains.
PDB chain endpoints
| Endpoint | Returns | Key parameters |
GET /releases/{release}/chains/{chain} | Chain metadata, sequence, cross-references, classified domains and cluster representative. | chain (e.g. 1akeA) |
GET /releases/{release}/chains/{chain}/hits | Sequence and FATCAT structure matches from the chain to SCOPe domains, combined. | chain, limit (per kind, up to 100) |
GET /releases/{release}/chains/{chain}/sequence-hits | Ranked sequence matches only. | chain, limit |
GET /releases/{release}/chains/{chain}/structure-hits | Ranked FATCAT structure matches only. | chain, limit |
GET /releases/{release}/chains/{chain}/coordinates | Coordinates (PDB format) for this chain only. | chain |
AlphaFold model comparisons
Comparisons of human AlphaFold models with classified
SCOPe domains; see
Explore human AlphaFold models.
AlphaFold model endpoints
| Endpoint | Returns | Key parameters |
GET /releases/{release}/alphafolds/{model} | Model metadata, per-residue confidence (pLDDT), sequence and matching domains. | model (e.g. AF-Q9BSH3-F1), include_plddt_by_position |
GET /releases/{release}/alphafolds/{model}/hits | Sequence and FATCAT structure matches from the model to SCOPe domains, combined. | model, limit (per kind, up to 100) |
GET /releases/{release}/alphafolds/{model}/sequence-hits | Ranked sequence matches only. | model, limit |
GET /releases/{release}/alphafolds/{model}/structure-hits | Ranked FATCAT structure matches only. | model, limit |
GET /releases/{release}/alphafolds/{model}/uniprot-matching-domains | SCOPe domains linked to the model's UniProt accession, paginated. | model, limit, cursor |
GET /releases/{release}/alphafolds/domain-candidates | Models whose matches concentrate in one or more distinct regions (screening candidates, not curated domain boundaries). | min_regions, max_regions, min_hits_per_region, min_region_hit_fraction, max_sequence_hits, min_structure_hits, require_sequence_available, limit, cursor |
GET /releases/{release}/sids/{sid}/alphafold-structure-matches | AlphaFold models with FATCAT structure matches to a given SCOPe domain, paginated. | sid, limit, cursor |
ASTRAL, quality and downloads
These endpoints describe static files; use
Downloads
for bulk data.
ASTRAL, quality and download endpoints
| Endpoint | Returns | Key parameters |
GET /downloads | The download manifest for the current release. | |
GET /releases/{release}/downloads | The download manifest for a release. | release |
GET /releases/{release}/parseable-files | The parseable classification files (e.g. dir.des, dir.cla, dir.hie) for a release. | release |
GET /releases/{release}/astral/files | The Astral static files (sequences and related data) for a release. | release |
GET /releases/{release}/astral/raf | The RAF (residue mapping) files for a release. | release |
GET /releases/{release}/astral/pdbstyle | The PDB-style domain coordinate archives for a release. | release |
GET /releases/{release}/astral/subsets | The representative subset files (e.g. by percent identity) for a release; membership is in the files. | release |
GET /releases/{release}/astral/quality | Release-wide SPACI and AEROSPACI quality rows for PDB entries, paginated. | limit, cursor |
Search
Search is for discovery; fetch the exact release-scoped records above
before interpreting a result.
Search endpoints
| Endpoint | Returns | Key parameters |
GET /search | Classification nodes, domains and PDB entries whose identifiers, names or descriptions match the query, in the current release. | q (required, e.g. histone, 1ux8A, sunid:46456), mode (auto, identifier, token or prefix), limit, cursor |
GET /releases/{release}/search | The same search in a specific release. | q, mode, limit, cursor |
MCP service and tools
The public Model Context Protocol (MCP) service at
https://scop.berkeley.edu/mcp
(Streamable HTTP, no authentication) is a thin layer over the REST API: each
tool calls the endpoints above, pins every call to one release, and adds
source links and retrieval metadata. It returns the same underlying data,
sometimes in a more compact form.
Most tools take an optional release argument. Connection
instructions are in Connect a web assistant.
MCP tools
| Tool | Purpose |
get_scop_service_info | Get the service index and current public release. |
search_scop | Search names or identifiers and return one page of results. |
resolve_scop_identifier | Resolve one sid, sunid, sccs or PDB code to its canonical record. |
get_scop_node | Get one classification node by sunid or sccs. |
list_scop_children | List one page of immediate children below a node. |
get_scop_domains | Get classification, lineage and annotations for 1–6 domains. |
list_scop_domains | List compact domain records, optionally filtered by class or sccs prefix. |
compare_scop_domains | Compare the lineages and annotation caveats of two domains. |
get_scop_fatcat_chain_statistics | Get 1–6 stored FATCAT classification-consistency statistics. |
get_scop_sequence | Get one domain, PDB entry or chain sequence. |
get_scop_pdb_entry | Get a PDB entry summary with selected chains, domains, heterogens, quality or revisions. |
list_scop_pdb_entries | List one page of PDB entries classified in SCOPe. |
get_scop_chain | Get metadata, sequence and domains for one PDB chain. |
get_scop_chain_hits | Get sequence, structure or combined matches for one PDB chain. |
compare_structure_quality | Compare SPACI/AEROSPACI quality of two PDB entries. |
get_alphafold_model | Get AlphaFold model metadata and confidence data. |
get_alphafold_hits | Get sequence, structure or combined matches for an AlphaFold model. |
get_alphafold_regions_confidence | Summarize local pLDDT confidence for 1–6 residue ranges. |
get_alphafold_decision_evidence | Combine regional confidence with match evidence for 1–6 representative domains. |
list_alphafold_domain_candidates | List AlphaFold models by number and support of candidate domain regions. |
list_alphafold_uniprot_matching_domains | List domains sharing the model's UniProt accession. |
list_domain_alphafold_structure_matches | List AlphaFold models with structure matches to one domain. |
get_astral_resources | Get one Astral resource or download-manifest category. |
list_astral_quality | List one page of Astral quality summaries. |
Access and rate limits
- The REST API and the MCP service are not behind the browser challenge
used for some interactive web pages, so scripts and agents can call
them directly.
- The MCP service accepts up to 60 requests per 10 seconds from each IP
address; further requests receive HTTP 429.
- The REST API processes up to 20 requests at once; further requests wait
up to 5 seconds and then receive HTTP 503.
- Across the whole site, each IP address may hold at most 20 simultaneous
connections.
- For whole-release analyses, use the
downloadable files
rather than paging through the API.
Report problems to scope@compbio.berkeley.edu with the failing request.