BYTETOOLS

RCSB PDB API

Free RCSB Protein Data Bank API with no key: experimental metadata, citations, resolution and assembly details for every deposited 3D macromolecular structure. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the RCSB PDB API?

The RCSB PDB Data API is a free, key-free REST interface to the Protein Data Bank. It returns structured metadata for every deposited macromolecular structure — experimental method, resolution, unit cell, authors, primary citation and entity composition — keyed by four-character PDB identifier.

The Protein Data Bank is the single global archive of experimentally determined 3D structures of proteins, nucleic acids and their complexes, and RCSB is its US host. Every structure has a four-character identifier that has been stable for decades — 4HHB has meant Fermi and Perutz's haemoglobin since the 1980s, which is why PDB ids appear in papers as permanent references.

It is worth separating the two things RCSB serves. This Data API returns metadata as JSON: who deposited it, by what method, at what resolution, with which citation. The atomic coordinates themselves are separate files in mmCIF or PDB format on a different host. Fetch metadata here to decide which structure you want — resolution and method are the usual filters — then download coordinates for that one.

Quick facts

Base URL
https://data.rcsb.org/rest/v1
Authentication
No API key or account. RCSB PDB is funded as public infrastructure and the archive is in the public domain.
Rate limit
No published limit for reasonable use. Bulk consumers are directed to the FTP archive rather than the API.
Pricing
Free. PDB data carries no usage restrictions.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the RCSB PDB 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 full metadata for haemoglobin structure 4HHB

GET https://data.rcsb.org/rest/v1/core/entry/4HHB

curl
curl 'https://data.rcsb.org/rest/v1/core/entry/4HHB'
JavaScript (fetch)
const res = await fetch("https://data.rcsb.org/rest/v1/core/entry/4HHB");
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://data.rcsb.org/rest/v1/core/entry/4HHB", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "audit_author": [
    {
      "name": "Fermi, G.",
      "pdbx_ordinal": 1
    },
    {
      "name": "Perutz, M.F.",
      "pdbx_ordinal": 2
    }
  ],
  "cell": {
    "Z_PDB": 4,
    "angle_alpha": 90.0,
    "angle_beta": 99.34,
    "angle_gamma": 90.0,
    "length_a": 63.15,
    "length_b": 83.59,
    "length_c": 53.8
  },
  "citation": [
    {
      "country": "UK",
      "id": "primary",
      "journal_abbrev": "J.Mol.Biol.",
      "journal_id_ASTM": "JMOBAK",
      "journal_id_CSD": "0070",
      "journal_id_ISSN": "0022-2836",
      "journal_volume": "175",
      "page_first": "159",
      "page_last": "174",
      "pdbx_database_id_DOI": "10.1016/0022-2836(84)90472-8",
      "pdbx_database_id_PubMed": 6726807,
      "rcsb_authors": [
        "Fermi, G.",
        "Perutz, M.F.",
        "Shaanan, B.",
        "Fourme, R."
      ],
      "rcsb_is_primary": "Y",
      "rcsb_journal_abbrev": "J Mol Biol",
      "title": "The crystal structure of human deoxyhaemoglobin at 1.74 A resolution",
      "year": 1984
    },
    {
      "country": "UK",
      "id": "1",
      "journal_abbrev": "Nature",
      "journal_id_ASTM": "NATUAS",
      "journal_id_CSD": "0006",
      "journal_id_ISSN": "0028-0836",
      "journal_volume": "295",
      "page_first": "535",
      "rcsb_authors": [
        "Perutz, M.F.",
        "Hasnain, S.S.",
        "Duke, P.J.",
        "Sessler, J.L.",
        "Hahn, J.E."
      ],
      "rcsb_is_primary": "N",
      "rcsb_journal_abbrev": "Nature",
      "title": "Stereochemistry of Iron in Deoxyhaemoglobin",
      "year": 1982
    },
    {

Parameters

ParameterTypeRequiredDescription
entry_idpath segmentRequiredFour-character PDB identifier, case-insensitive. 4HHB
entity_idpath segmentOptionalOn entity endpoints, the numeric entity within the structure. 1
asym_idpath segmentOptionalOn instance endpoints, the chain identifier. A
(search)queryOptionalComplex structural and attribute queries go to the separate Search API, which takes a JSON query object.

Response fields

rcsb_idstring
The PDB identifier for the entry.
struct.titlestring
Title given by the depositors, describing what was solved.
exptlarray
Experimental method — X-ray diffraction, electron microscopy, solution NMR. This determines how the resolution figure should be interpreted.
rcsb_entry_info.resolution_combinedarray
Resolution in ångström. Lower is better; below about 2.0 Å is high quality, and NMR structures have no resolution at all.
cell / symmetryobject
Crystallographic unit cell dimensions, angles and space group. Absent for non-crystallographic methods.
citationarray
Primary publication with journal, volume, pages, DOI and PubMed identifier.
audit_authorarray
Depositing authors in order.
rcsb_accession_infoobject
Initial deposition and release dates, plus the revision history.

What you can build with the RCSB PDB API

  • Filter candidate structures for a target by resolution and experimental method
  • Resolve a PDB id to its primary citation and DOI for a bibliography
  • Build a structural biology dashboard or literature tool
  • Check deposition and revision dates before relying on a structure

Common errors and how to fix them

404

Unknown PDB identifier, or one that has been obsoleted.

Fix: Ids are exactly four characters. Obsoleted entries are superseded — the entry status field names the replacement.

Missing cell / symmetry

Not an error — the structure was not solved by crystallography.

Fix: Check `exptl.method` first. NMR and cryo-EM entries have no unit cell and often no resolution figure.

No coordinates in the response

The Data API serves metadata only.

Fix: Download the mmCIF or PDB coordinate file separately from the RCSB file service.

RCSB PDB API — frequently asked questions

Is the RCSB PDB API free?

Yes, completely free with no API key or registration. The Protein Data Bank archive is public-domain data maintained as public research infrastructure.

How do I download the actual 3D coordinates?

The Data API returns metadata only. Coordinate files in mmCIF or legacy PDB format are served from the RCSB file host as separate downloads, keyed by the same four-character identifier.

What does resolution mean in a PDB entry?

For crystal structures it is the level of detail in ångström — lower is better, and below roughly 2.0 Å is considered high quality. Solution NMR structures have no resolution value at all, so always check the experimental method before comparing numbers.

How do I search the PDB rather than fetch a known entry?

Use the separate RCSB Search API, which accepts a JSON query object supporting attribute filters, full-text search, sequence similarity and structural similarity. It returns identifiers that you then resolve through this Data API.

Tools that pair with this API

RCSB PDB 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.