> This page is for RFdiffusion, version 2.3.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 2.3.0 (Latest) (default): https://docs.nvidia.com/nim/bionemo/rfdiffusion/2.3.0/llms.txt
> - 2.2.0: https://docs.nvidia.com/nim/bionemo/rfdiffusion/2.2.0/llms.txt
> - 2.0.0: https://docs.nvidia.com/nim/bionemo/rfdiffusion/2.0.0/llms.txt
> - 1.0.0: https://docs.nvidia.com/nim/bionemo/rfdiffusion/1.0.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nim/bionemo/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nim/bionemo/_mcp/server.

# Endpoints

The model provides endpoints as described below. Input and output parameters
correspond to properties in a JSON object submitted to or received from an
endpoint.

## Generate New Protein Structures

Endpoint path: `biology/ipd/rfdiffusion/generate`

### Input Parameters

- `input_pdb (string, null)`: Optional. This is an input PDB (Protein Data Bank) file: protein chains and amino acids from this file are used to select binder target and motifs.

- `input_pdb_asset (string, null)`: Optional. Optional pre-uploaded NVCF Asset ID. If using this field, original file name should be provided through the input_pdb argument.

- `contigs (string)`: Required. Historically, contigs stands for 'contiguous [protein regions]'. This string defines a protein that is being generated. It is a specification written in a domain-specific language. It tells RFdiffusion which parts of the input protein are to be kept and what kind of a binder (or a scaffold) needs to be constructed. As an example, a string 'A10-100/0 50-150' instructs RFdiffusion to keep amino acids 10-100 in Chain A [from the input PDB file] and then break the chain. The special '/0' notation signifies the end of the chain and thus effectively makes 'A10-100' a new target protein. RFdiffusion then constructs a new chain (effectively a binder protein) of length 50 to 150 amino acids.

- `hotspot_res (array, null)`: Optional. The hotspot residues string provides a way to specify which region the new protein (binder) must contact with the original input protein (a target). This guides the binder to a specific region. In UI, the format of the string is a comma-separated list of amino acids present in the input PDB file. For example, ['A50', 'A51', 'A52'] specifies three hotspot residues in the Chain A, at positions 50, 51 and 52. In API, however, the amino acids are specified as a list of strings, such as 'A50,A51,A52'.

- `diffusion_steps (integer, null)`: Optional. Default is 50. RFdiffusion is a diffusion generative model; it was trained by diffusing (adding noise) to a training dataset. The generative process works by reversing the time steps (that is, denoising): starting from randomly placed atoms, and reverse-diffusing the positions to arrive at probable atom positions. The diffusion steps parameter tells RFdiffusion how many steps it will run the denoising process for. 1 is the minimum, 50 is the default.

- `random_seed (integer, null)`: Optional. RFdiffusion is a generative model. Its function is to generate novel and diverse proteins. Setting a random seed turns RFdiffusion into a deterministic model, where an input protein, a task and a fixed seed would always produce the same output. This argument is useful for development purposes, but otherwise should be unset.

### Outputs

- `output_pdb (string)`: Required. Output protein in PDB format.

- `elapsed_ms (integer)`: Required. Elapsed time on server side.

## Check Readiness

Endpoint path: `v1/health/ready`

### Input Parameters

None.

### Outputs

The output of the endpoint is a JSON response containing a value indicating the
readiness of the microservice. When NIM is ready, the following
response is returned: `{"status":"ready"}`.