Jobs¶
Predictions, designs and embeddings all create a job. This is how you track it, read its output, and clean it up. All job endpoints are keyless; you can only reach jobs you own (see Authentication).
The Job object¶
{
"object": "job",
"id": "6f1069cb2d665cb939f8baaa3cd261a6",
"kind": "predict", // "predict" | "design" | "embed"
"status": "running", // queued | running | succeeded | failed | canceled
"name": "myprotein",
"model": "boltz2", // null for designs
"protocol": null, // set for designs
"progress": 0.5, // 0..1, or null when indeterminate
"stage": "msa", // human-readable current step
"done": 0, "total": 1, // sub-units completed / total
"params": {}, // the params the job was submitted with
"error": null, // set when status=failed
"created_at": "2026-07-09T12:16:06Z",
"started_at": "...",
"finished_at": null,
"results_ready": false,
"links": { "self": "...", "results": "...", "archive": "...", "logs": "..." }
}
Poll one job¶
Add Prefer: wait=<seconds> to block until the job finishes instead of returning
immediately (see
Predictions):
A simple poll loop:
until curl -s https://api.japanfold.com/v1/jobs/$JOB \
| grep -qE '"status":"(succeeded|failed|canceled)"'; do sleep 5; done
List your jobs¶
Paginated (cursor-based). limit defaults to 20 (max 100).
Pass next_cursor back as ?cursor=... to fetch the next page.
Cancel, delete¶
curl -s -X POST https://api.japanfold.com/v1/jobs/$JOB/cancel # stop a queued/running job
curl -s -X DELETE https://api.japanfold.com/v1/jobs/$JOB # delete the job and its data
Results¶
Once results_ready (or status is succeeded), read the scores and the list
of downloadable artifacts:
Ask earlier and you get {"object":"results","job_id":"...","ready":false,"status":"running"},
so ready is safe to poll on directly.
A prediction result:
{
"object": "results",
"job_id": "...",
"kind": "predict",
"ready": true,
"rows": [
{ "id": "target_1", "status": "ok", "n_chains": 1, "n_residues": 33,
"samples": 1, "msa": false, "plddt": 0.6675, "ptm": 0.3226,
"runtime_s": 28.3 }
],
"artifacts": [
{ "path": "target_1.cif", "target": "target_1", "type": "structure",
"url": "/v1/jobs/.../artifacts/target_1.cif" }
],
"archive_url": "/v1/jobs/.../archive"
}
rows: one row per target, with confidence scores. Fields depend on the model and inputs:plddt/complex_plddt,ptm/iptm, and on Boltz-2 affinity runs the affinity fields. A rough read: interfaceiptm> 0.5, foldcomplex_plddt> 0.7.- A design result carries
designsinstead ofrows, ranked for BoltzGen and unranked for RFdiffusion3. An embed result carriessequences; see Embeddings → Results. artifacts[].urlandarchive_urlare paths under the base URL. Prefix them withhttps://api.japanfold.com.
Download artifacts¶
One file:
Everything as a zip:
curl -s https://api.japanfold.com/v1/jobs/$JOB/archive -o results.zip
unzip -oq results.zip -d results
Logs¶
Plain-text run log, useful while a job runs or to debug a failure: