predictions

Predict the 3D structure (and affinity) of a protein/complex.

Provide sequence (single chain), input (one fasta/yaml string), or targets (a list). Returns a job to poll.

post/v1/predictions

Request

  • Base URL: https://api.japanfold.aiand.com
  • URL: https://api.japanfold.aiand.com/v1/predictions
  • Auth: one of:
    • none
    • HTTP bearer

Headers

Idempotency-Keystring

Resend a submit with the same key and body to get the first job back instead of a second one to pay for. The same key with a different body is a 422. Keys are remembered on the account for good, so make each new submission's key unique (a UUID), not a readable name you might reuse.

Request body

inputstring

One FASTA or YAML input. FASTA headers can be plain names or UniProt headers, on every model: a record whose id the model can't hold (Boltz-2 takes 5 characters, OpenFold3 and OpenBind-0 4, ESMFold-2 16) or that repeats one is named A, B, ... with its type read from the sequence, and the job's warnings say which record became which chain.

model'boltz2' | 'esmfold2' | 'esmfold2-fast' | 'openfold3' | 'openbind' | 'rf3' | 'opendde' | 'opendde-abag' | 'af2ig'
namestring
paramsobject

Model params: use_msa_server, fast, recycling_steps, sampling_steps, diffusion_samples, output_format, seed, write_pae, use_tfg_guidance. Not every model takes every one, and a param the chosen model cannot honour is a 400 naming the model and the param rather than a value accepted and ignored: fast only on models whose caps list it, use_msa_server only on models with the msa cap, and neither recycling_steps on OpenFold3/OpenBind-0 nor sampling_steps on RoseTTAFold3 (their engine resolves those when it loads the model, not per job). ESMFold-2 always runs fast on this hardware, so its job reports fast: true whatever you send. Fast mode is off unless you send fast: true (higher throughput, may be slightly less accurate); the workbench turns it on for you, the API does not. Omitted params take the default GET /v1/models advertises for that model, and an explicit null means omitted. The two exceptions are recycling_steps and sampling_steps: leave them out and each model uses its own recommended value (recycling: Boltz-2, OpenFold3, OpenBind-0 and AF2-IG 3, the others 10; diffusion steps: ESMFold-2 100, RoseTTAFold3 50, the others 200). A number outside the advertised range is clamped to the nearest bound; a value that is not a number at all is a 400. The accepted values are on the job's params, including the seed the fold ran with (0 unless you send one). write_pae, on a model whose caps list pae, adds <name>_pae.npz to the artifacts: the predicted aligned error matrix of the top-ranked structure, which is what Adaptyv's ipSAE pipeline reads.

sequencestring

Single protein chain (convenience).

Response

Job

artifactsobject[]

Present on a succeeded job read by its id (not in the list), when it has at most 20 files: the same entries as artifacts in its results. A job with more files lists them only in its results.

attemptinteger

Present only when the job's structure is on its second run, because the box running it stopped answering (hung, or its agent died); its progress started over. A job of several structures carries it on the retried entry of targets. Billed once.

created_atstring date-time nullable
doneinteger
downloadstring

Present on a succeeded job read by its id: one shell command that fetches every result file into the current directory, reading the key from JAPANFOLD_API_KEY. Past 20 files it fetches and unzips the archive instead.

email_when_doneboolean

Present once POST /v1/jobs/{id}/notify has been asked.

errorstring nullable

Why the job failed; on a succeeded job, what it could not deliver (see partial).

finished_atstring date-time nullable
idstring required
kind'predict' | 'design' | 'embed' required
linksobject
modelstring nullable
namestring
object'job' required
progressnumber nullable

0..1, or null when indeterminate

protocolstring nullable
results_readyboolean
stagestring nullable
started_atstring date-time nullable
status'queued' | 'running' | 'succeeded' | 'failed' | 'canceled' required
totalinteger
waiting_for_deviceboolean

Present and true only while the job has been accepted but no processor is free for it yet. The job is queued, not stalled.

Changes

No recorded changes to this operation across all 1 revision of this API.