---
title: "(ESMFold2) Folds molecular complexes containing proteins, dna, rna, and ligands. Defaults to esmfold2-fast-2026-05 if no model is given"
method: POST
path: "/api/v1/fold_all_atom"
tags: ["v1"]
---

# (ESMFold2) Folds molecular complexes containing proteins, dna, rna, and ligands. Defaults to esmfold2-fast-2026-05 if no model is given

`POST /api/v1/fold_all_atom`

## Request

- Base URL: `https://dev.evolutionaryscale.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://dev.evolutionaryscale.ai/api/v1/fold_all_atom`
- Auth: HTTP bearer

## Request body

- FoldAllAtomRequest
  - `model` 'esmfold2-fast-2026-05' | 'esmfold2-2026-05' | 'null', nullable: You may have access to additional, private models as well. These will be visible on the Rate Limits page under the Developer Console
  - `potential_sequence_of_concern` boolean: Disclose potential sequences of concern. For approved users, such sequences will not go through additional safety filtering. Reach out if you are interested in using this.
  - `sequence` string, nullable: Input sequence to be folded; '|' separates chains. The server names the chains A, B, C in the order they appear.
  - `msa` union: MSA data for the query sequence.
    - MSA
      - `sequences` string[], required
      - `headers` string[], nullable: Optional alignment headers, including pairing keys.
      - `deletions` array[], nullable: Optional per-(row, match-column) a3m deletion counts, shape (depth, query match columns). Derived from the insertions when absent.
        - number[]
    - string
  - `num_loops` integer: Number of trunk loops for iterative refinement.
  - `num_sampling_steps` integer: Diffusion ODE solver steps. Lower for speed, higher for quality.
  - `lm_dropout` number: Dropout probability on LM pair embeddings. When > 0, dropout is applied.
  - `lm_mask_pct` number: Fraction of sequence residues randomly masked before the PLM backbone. If not provided, defaults to 0.1 for ESMFOLD2_FAST and 0.0 for ESMFOLD2
  - `msa_max_depth` integer, nullable: Number of MSA rows randomly subsampled each loop. Set to null to disable (sets msa_subsample_at_inference to False).
  - `msa_column_mask_rate` number: Fraction of MSA columns randomly masked in non-query rows for inference-time diversity.
  - `include_distogram` boolean: Whether to include distogram predictions in the response.
  - `include_pae` boolean: Whether to include Predicted Aligned Error (PAE) matrix in the response.
  - `include_pair_chains_iptm` boolean: Whether to include pair-chain IPTM predictions in the response.
  - `all_atom_input` FoldAllAtomInput
    - `sequences` union[], required
      - union
        - ProteinInput
          - `id` union
            - string
            - string[]
          - `sequence` string, required
          - `msa` union
            - MSA
              - …
            - string
          - `modifications` Modification[], nullable
            - `position` integer, required: Zero-indexed position in the sequence where modification should be applied.
            - `ccd` string, required: Chemical Component Dictionary (CCD) code for the modification.
          - `type` 'protein', required
        - RNAInput
          - `id` union
            - string
            - string[]
          - `sequence` string, required
          - `modifications` Modification[], nullable
            - `position` integer, required: Zero-indexed position in the sequence where modification should be applied.
            - `ccd` string, required: Chemical Component Dictionary (CCD) code for the modification.
          - `type` 'rna', required
        - DNAInput
          - `id` union
            - string
            - string[]
          - `sequence` string, required
          - `modifications` Modification[], nullable
            - `position` integer, required: Zero-indexed position in the sequence where modification should be applied.
            - `ccd` string, required: Chemical Component Dictionary (CCD) code for the modification.
          - `type` 'dna', required
        - LigandInput
          - `id` union
            - string
            - string[]
          - `smiles` string, nullable
          - `ccd` string[], nullable
          - `type` 'ligand', required
    - `covalent_bonds` CovalentBond[], nullable: List of covalent bonds between chains in the molecular complex.
      - `chain_id1` string, required: First chain ID in the covalent bond.
      - `res_idx1` integer, required: Residue index in the first chain.
      - `atom_idx1` integer, required: Atom index in the first residue.
      - `chain_id2` string, required: Second chain ID in the covalent bond.
      - `res_idx2` integer, required: Residue index in the second chain.
      - `atom_idx2` integer, required: Atom index in the second residue.
    - `pocket` PocketConditioning
      - `binder_chain_id` string, required: Chain ID of the binder.
      - `contacts` array[], required: List of contacts as tuples of (chain_id, residue_index).
        - unknown[]
          - unknown
    - `distogram_conditioning` DistogramConditioning[], nullable: List of distogram conditioning for chains.
      - `chain_id` string, required: Chain ID for distogram conditioning.
  - `include_embeddings` boolean: Whether to include sequence and pair embeddings in the response.

## Response `200`

Successful Response

- FoldResponse
  - `model` 'esm3-open-2024-03' | 'esmfold2-fast-2026-05' | 'esmfold2-2026-05', required: You may have access to additional, private models as well. These will be visible on the Rate Limits page under the Developer Console
  - `created` string, required: ISO formatted date time
  - `potential_sequence_of_concern` boolean: Indicate that the returned sequence may be of potential concerns.
  - `warning_messages` string[], nullable: Warning messages returned by FastAPI.
  - `sequence` string, nullable: Folded protein sequence in coordinate order. Always populated by /fold; null for all-atom folding.
  - `coordinates` array[], nullable: Coordinates of the N, CA, C atom sequence as a Nx37x3 array.
    - array[]
      - number[]
  - `complex` object, nullable: Molecular complex with support for proteins, nucleic acids, and ligands.
  - `plddt` number[], nullable: Per position plddt predictions for a protein or molecular complex. Usually produced by structure decoder. A multi-chain sequence carries one slot per chain separator, reported as null: those positions are not residues and have no confidence. Drop them before taking a mean.
  - `ptm` number, nullable: Predicted TM score of a protein or molecular complex. Usually produced by structure decoder.
  - `interface_ptm` number, nullable: Interface TM score of a protein or molecular complex.
  - `pae` array[], nullable: Predicted Aligned Error matrix for the protein or molecular complex. Shape is L x L. Values are rounded to 2 decimals (well within 0.5 A bin width)
    - number[]
  - `pair_chains_iptm` array[], nullable: Pair-chain IPTM predictions for a protein. Shape is C x C, where C is the number of chains in the protein.
    - number[]
  - `output_embedding_sequence` array[], nullable: Output embedding sequence from the model. Only present if requested.
    - number[]
  - `output_embedding_pair_pooled` array[], nullable: Output embedding pair mean-pooled from the model. Only present if requested.
    - number[]
  - `residue_index` integer[], nullable: Residue indexes from the model. Only present if embeddings are requested.
  - `entity_id` integer[], nullable: Entity ids (e.g. chain ids) from the model. Only present if embeddings are requested.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-14** `28a490b11fe1`: 1 info
  - added the optional property `sequence` to the response with the `200` status
- **2026-10-03** `2b39e86ec871`: 2 info
  - added the new optional request property `all_atom_input/anyOf[#/components/schemas/FoldAllAtomInput]/sequences/items/oneOf[#/components/schemas/ProteinInput]/msa/anyOf[#/components/schemas/MSA]/headers`
  - added the new optional request property `msa/anyOf[#/components/schemas/MSA]/headers`
- **2026-09-03** `422e4d05cd6d`: 2 info
  - added `subschema #2` to the `all_atom_input/anyOf[#/components/schemas/FoldAllAtomInput]/sequences/items/oneOf[#/components/schemas/ProteinInput]/msa` request property `anyOf` list
  - added `subschema #2` to the `msa` request property `anyOf` list
- **2026-08-26** `b19c9a405304`: 1 breaking
  - response property `plddt/anyOf[subschema #1]/items/` list-of-types was widened by adding types `null` to media type `application/json` of response `200`

[Operation history](https://skmtc.dev/evolutionaryscale/apis/evolutionaryscale-api/changes/api/v1/fold_all_atom/post.md)

---

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