---
title: "Structure file reader (PDB / mmCIF)"
method: POST
path: "/parse_structure"
tags: ["Files & formats"]
---

# Structure file reader (PDB / mmCIF)

`POST /parse_structure`

## Request

- Base URL: `https://seqbench.com/api/v1`
- URL: `https://seqbench.com/api/v1/parse_structure`
- Auth: none required

Read a PDB or mmCIF structure file — an RCSB PDB entry, or a model from AlphaFold DB, AlphaFold Server or ColabFold — and report what is in it: every polymer chain with its molecule type, name and one-letter sequence (all chains also as FASTA), how many residues have coordinates and which stretches of the sequence do not, bound ligands and waters, and the experimental method and resolution. When the file itself marks its B-factor column as a confidence score (a pLDDT metric, an AlphaFold title, or one value per residue with no experimental method), each chain's mean pLDDT and its stretches below 50 are reported too; otherwise B-factors are left alone. Only the first model of a multi-model file is read. Reads the text; nothing is fetched.

## Request body

- object
  - `text` string, required: The whole .pdb or .cif file as text.
  - `name` string: What to call the FASTA records when the file carries no entry id (e.g. the file name).

## Response `200`

Tool ran successfully.

- SuccessResponse: Standard success envelope returned by every single-tool call.
  - `ok` unknown, required
  - `tool` string, required: The tool slug that ran.
  - `result` object, required: Tool-specific output object. Its shape depends on the tool — call `GET /{tool}` or see the docs for each tool's fields.
  - `gate` GateResult
    - `pass` boolean, required: True if and only if every hard check passed.
    - `checks` GateCheck[], required
      - `id` string, required
      - `label` string, required
      - `severity` 'hard' | 'soft', required
      - `pass` boolean, required
      - `message` string, required
      - `value` number
      - `threshold` string
    - `notChecked` string[], required: Honest list of what this gate does NOT verify.
  - `provenance` Provenance, required
    - `apiVersion` string, required
    - `tool` union, required: Tool slug, or an array of slugs (one per step) for a workflow.
      - string
      - string[]
    - `generatedAt` string, date-time, required: ISO 8601 timestamp of when the result was generated.

## Other responses

- `400`: Invalid argument or the tool could not run.
- `404`: Unknown tool.
- `429`: Rate limited (metered tools only). Body carries code `rate_limited` and retryable `true`; honor the Retry-After header.
- `503`: A metered tool is momentarily at capacity. The identical request should succeed after Retry-After; body carries code `upstream_unavailable`.

---

[API](https://skmtc.dev/seqbench/apis/seqbench-api.md) · [All operations](https://skmtc.dev/seqbench/apis/seqbench-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seqbench/apis/seqbench-api/revisions/132575216865?raw)
