Research with thebioinformatics API
Run 100+ bioinformatics tools from code. One endpoint, async jobs, and signed result files, ready for your pipeline.
curl -X POST https://proteiniq.io/api/v1/jobs \
-H "Authorization: Bearer $PROTEINIQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tool": "esmfold",
"name": "Lysozyme ESMFold run",
"input": {
"inputs": [{
"id": "seqs_1",
"slotId": "protein",
"kind": "protein",
"format": "fasta",
"content": ">lysozyme\nKVFGRCELAAAMKRHGLDNYRGYSLG",
"source": { "type": "text" }
}]
},
"settings": {}
}'Tools, one contract
Every tool runs through the same submit, poll, and result loop.
GPU-backed compute
Jobs run on NVIDIA B200, H200, and A100 GPUs. Minutes, not days.
No SDK required
Plain HTTP and JSON with a bearer token. Use any language.
Built for production pipelines
A small, predictable API surface for notebooks, services, and lab systems.
One API, every tool
Inspect a tool, then run it with the same request shape. Folding, docking, and validation all share one job model.
Async jobs and live events
Submission returns instantly. Poll for status or stream server-sent events until the job finishes.
Structured results and files
Results return structured output plus a manifest of signed download URLs for PDBs, CSVs, and reports.
Quote before you run
Estimate credits with a quote, then cap spend per job with a reserved-credit budget. No surprises.
OpenAPI and typed clients
A machine-readable OpenAPI document describes every route, so you can generate typed clients.
Safe retries
Send an idempotency key and retries reuse the same job instead of creating duplicates.
Quickstart
From request to result
Submit a job, poll until it finishes, download the files. The same steps in any language.
# 1. Submit a job
JOB_ID=$(curl -s -X POST \
-H "Authorization: Bearer $PROTEINIQ_API_KEY" \
-H "Content-Type: application/json" \
https://proteiniq.io/api/v1/jobs \
-d '{"tool":"esmfold","name":"Fold","input":{"inputs":[{"id":"seqs_1","slotId":"protein","kind":"protein","format":"fasta","content":">s\nMKT...","source":{"type":"text"}}]},"settings":{}}' \
| jq -r '.id')
# 2. Poll until the job reaches a terminal status
curl -s -H "Authorization: Bearer $PROTEINIQ_API_KEY" \
https://proteiniq.io/api/v1/jobs/$JOB_ID/status
# 3. Fetch the result and download the first file
curl -s -H "Authorization: Bearer $PROTEINIQ_API_KEY" \
https://proteiniq.io/api/v1/results/$JOB_ID -o result.json
curl -L "$(jq -r '.files[0].url' result.json)" -o result-fileReference
A small, stable surface
Six route groups cover the full lifecycle, from inspecting a tool to downloading results.
Account
GET /api/v1/accountRead workspace credits, concurrency, rate-limit policy, and key metadata.
Tools
GET /api/v1/toolsList available tools and inspect input contracts, settings, and credit models.
Jobs
POST /api/v1/jobsSubmit work, list jobs, poll status, or cancel queued runs.
Events
GET /api/v1/jobs/{id}/eventsStream server-sent job status updates instead of polling.
Results
GET /api/v1/results/{id}Fetch structured output and signed file download URLs.
OpenAPI
GET /api/v1/openapi.jsonPull the machine-readable contract to generate typed clients.