One API, every tool
Inspect a tool, then run it with the same request shape. Folding, docking, and validation all share one job model.
ProteinIQ 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.
A small, predictable API surface for notebooks, services, and lab systems.
Inspect a tool, then run it with the same request shape. Folding, docking, and validation all share one job model.
Submission returns instantly. Poll for status or stream server-sent events until the job finishes.
Results return structured output plus a manifest of signed download URLs for PDBs, CSVs, and reports.
Estimate credits with a quote, then cap spend per job with a reserved-credit budget. No surprises.
A machine-readable OpenAPI document describes every route, so you can generate typed clients.
Send an idempotency key and retries reuse the same job instead of creating duplicates.
Submit a job, poll until it finishes, download the files. The same steps in any language.
Full quickstart# 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-filePoint Codex, Claude Desktop, Cursor, or another MCP client at the remote endpoint. The same API key authorizes agent calls.
Agents can inspect tools, submit jobs with submit_job, poll status, fetch results, and read JSON resources with resources/read.
{
"mcpServers": {
"proteiniq": {
"type": "http",
"url": "https://proteiniq.io/mcp",
"headers": {
"Authorization": "Bearer ${PROTEINIQ_API_KEY}"
}
}
}
}Six route groups cover the full lifecycle, from inspecting a tool to downloading results.
GET /api/v1/accountRead workspace credits, concurrency, rate-limit policy, and key metadata.
GET /api/v1/toolsList available tools and inspect input contracts, settings, and credit models.
POST /api/v1/jobsSubmit work, list jobs, poll status, or cancel queued runs.
GET /api/v1/jobs/{id}/eventsStream server-sent job status updates instead of polling.
GET /api/v1/results/{id}Fetch structured output and signed file download URLs.
GET /api/v1/openapi.jsonPull the machine-readable contract to generate typed clients.
Create a key from a paid workspace and run your first job in minutes. No installs, no GPU setup.