API reference
Every tool on this site is a pair of endpoints:
GET /api/<tool>/ returns the fields it accepts, and
POST /api/<tool>/ queues a run. The web form at
/tools/<tool>/ posts to exactly the same endpoint
with the same field names, so anything the form can do, a client can.
These pages are generated from the tool definitions themselves, so they describe the running server rather than a snapshot of it.
Submit a job, then poll it
RDKit needs no installation, so it is the easiest thing to try first.
-
Post the inputs
Send JSON or ordinary form data. No authentication, no CSRF token, no API key.
curl -X POST https://www.athanortools.com/api/rdkit/ \ -H 'Content-Type: application/json' \ -d '{ "operation": "descriptors", "smiles": "CC(=O)OC1=CC=CC=C1C(=O)O", "include_inchi": false }' -
Read the job back
The response is
202 Accepted. Nothing has run yet: one job executes at a time across the whole site, andpositioncounts how many are ahead of this one.{ "ok": true, "job": { "id": "9f1c8a2be5f0417d", "tool": "rdkit", "status": "queued", "status_url": "/api/jobs/9f1c8a2be5f0417d/", "submitted_at": "2026-01-01T00:00:00+00:00", "started_at": null, "finished_at": null, "position": 0 } } -
Poll
status_urluntil it settlesThat is
GET /api/jobs/%3Cjob_id%3E/, returned with the job so it never has to be assembled by hand. Poll every second or so. A finished job carries eitherresultorerror, and finished jobs are dropped once enough newer ones arrive, so collect the result rather than leaving it on the server.curl https://www.athanortools.com/api/jobs/9f1c8a2be5f0417d/{ "ok": true, "job": { "id": "9f1c8a2be5f0417d", "tool": "rdkit", "status": "succeeded", "finished_at": "2026-01-01T00:00:02+00:00", "result": { "…": "whatever the tool returned" }, "license": { "type": "…", "details": "…" } } }
What holds for every tool
Job statuses
| status | Meaning |
|---|---|
queued |
Accepted, waiting for the jobs ahead of it. `position` counts how many those are. |
running |
The tool is executing now. |
succeeded |
Finished; `result` holds the tool's output and `license` the terms it came under. |
failed |
Finished; `error` holds a code and a message. |
Error codes
Every error is {"ok": false, "error": {"code": …, "message": …}},
whether it comes back from the request itself or from a failed job's
error.
| code | Meaning |
|---|---|
invalid_input |
The client supplied invalid or incomplete input. |
tool_unavailable |
The requested third-party dependency is not available on this host. |
execution_failed |
A configured third-party process exited unsuccessfully. |
internal_error |
An adapter failed in a way it does not describe. The detail is in the server log, not the response. |
not_found |
No job has that id. Finished jobs are dropped eventually. |
How a field's kind is sent
Each tool's page lists its fields; this is what the kinds mean over HTTP.
| Kind | Send | Notes |
|---|---|---|
text |
string | A single line of text. |
textarea |
string | Free text. Line breaks are significant to the tools that read this as a file's contents. |
number |
number | A number, within the range given for the field. |
checkbox |
boolean | Either a JSON boolean, or one of the strings "1", "true", "yes", or "on" for true; anything else reads as false. |
select |
string | One of the field's option values. |
file |
string | The file's text, not a path and not a multipart upload. The web form reads the chosen file in the browser and posts its contents under this name; an API client sends the same text directly. |
molecule_builder |
string (JSON array) | A JSON array of molecule objects, serialized to a string -- the value is parsed as JSON after being read as text, so a bare array is rejected. |
Molecule entries
A molecule_builder field holds one entry per chain, ligand,
or ion. Chain letters (A, B, C, …) are assigned in the order the entries
appear, so a request never carries one.
| Key | Meaning |
|---|---|
type |
Which of the field's molecule types this entry is. |
sequence |
The residues, for a protein, dna, or rna entry. |
ligand |
A SMILES string or a CCD_ code, for a ligand entry. |
ion |
An ion code, for an ion entry. |
cyclic |
Whether a polymer chain is cyclic. Tools that cannot model one reject it rather than ignoring it. |
modifications |
Substitutions, as {"position": <1-indexed integer>, "residue": "<CCD code>"} objects. |
Every tool
36 tools, one reference page each.
| Tool | Endpoint | Category | Cost | License | Web form |
|---|---|---|---|---|---|
| RDKit | /api/rdkit/ |
Cheminformatics | Cheap (ms) | Permissive | Open ↗ |
| OpenDDE | /api/opendde/ |
Structure prediction · Protein Design | Expensive (min or hours) | Permissive | Open ↗ |
| Boltz-2 | /api/boltz2/ |
Structure prediction · Protein Design · Property prediction | Expensive (min or hours) | Permissive | Open ↗ |
| Chai-1 | /api/chai1/ |
Structure prediction · Protein Design | Expensive (min or hours) | Permissive | Open ↗ |
| Protenix-v2 | /api/protenix/ |
Structure prediction | Expensive (min or hours) | Permissive | Open ↗ |
| ESMFold 2 | /api/esmfold2/ |
Structure prediction · Protein Design | Expensive (min or hours) | Permissive | Open ↗ |
| ImmuneBuilder | /api/immunebuilder/ |
Structure prediction · Antibody design | Moderate (s) | Permissive | Open ↗ |
| HighFold | /api/highfold/ |
Structure prediction · Binder design | Expensive (min or hours) | Permissive | Open ↗ |
| BoltzGen | /api/boltzgen/ |
Binder design · Protein Design · Antibody design | Expensive (min or hours) | Permissive | Open ↗ |
| BindCraft | /api/bindcraft/ |
Binder design · Protein Design | Expensive (min or hours) | Non-commercial | Open ↗ |
| GROMACS | /api/gromacs/ |
Molecular simulation | Moderate (s) | Copyleft | Open ↗ |
| IgBLAST | /api/igblast/ |
Sequence analysis | Moderate (s) | Permissive | Open ↗ |
| BioPhi | /api/biophi/ |
Antibody design · Sequence analysis | Moderate (s) | Permissive | Open ↗ |
| AntiFold | /api/antifold/ |
Antibody design · Sequence prediction | Moderate (s) | Permissive | Open ↗ |
| AbMPNN | /api/abmpnn/ |
Antibody design · Sequence prediction | Moderate (s) | Permissive | Open ↗ |
| ProteinMPNN | /api/proteinmpnn/ |
Sequence prediction · Protein Design | Moderate (s) | Permissive | Open ↗ |
| LigandMPNN | /api/ligandmpnn/ |
Sequence prediction · Protein Design | Moderate (s) | Permissive | Open ↗ |
| ProteinMPNN-ddG | /api/proteinmpnn_ddg/ |
Property prediction | Moderate (s) | Permissive | Open ↗ |
| RFdiffusion | /api/rfdiffusion/ |
Protein Design · Binder design | Expensive (min or hours) | Permissive | Open ↗ |
| RFantibody | /api/rfantibody/ |
Antibody design · Protein Design | Expensive (min or hours) | Permissive | Open ↗ |
| Germinal | /api/germinal/ |
Antibody design · Protein Design · Binder design | Expensive (min or hours) | Non-commercial | Open ↗ |
| mBER | /api/mber/ |
Antibody design · Binder design · Protein Design | Expensive (min or hours) | Permissive | Open ↗ |
| IgDesign | /api/igdesign/ |
Antibody design · Sequence prediction · Protein Design | Expensive (min or hours) | Non-commercial | Open ↗ |
| ThermoMPNN | /api/thermompnn/ |
Property prediction · Protein Design | Moderate (s) | Permissive | Open ↗ |
| Boltz ADME | /api/boltz_adme/ |
Property prediction · Cheminformatics | Moderate (s) | Proprietary | Open ↗ |
| Genie 3 | /api/genie3/ |
Binder design · Protein Design | Expensive (min or hours) | Permissive | Open ↗ |
| DeepSP | /api/deepsp/ |
Property prediction · Antibody design | Moderate (s) | Permissive | Open ↗ |
| DeepImmuno | /api/deepimmuno/ |
Property prediction · Sequence analysis | Moderate (s) | Permissive | Open ↗ |
| TLimmuno2 | /api/tlimmuno/ |
Property prediction · Sequence analysis | Moderate (s) | Permissive | Open ↗ |
| NetSolP | /api/netsolp/ |
Property prediction · Sequence prediction | Expensive (min or hours) | Non-commercial | Open ↗ |
| DeepSTABp | /api/deepstabp/ |
Property prediction | Expensive (min or hours) | Permissive | Open ↗ |
| AggreScan3D | /api/aggrescan3d/ |
Property prediction | Expensive (min or hours) | Non-commercial | Open ↗ |
| DLKcat | /api/dlkcat/ |
Property prediction · Cheminformatics | Moderate (s) | Permissive | Open ↗ |
| CatPred | /api/catpred/ |
Property prediction · Cheminformatics | Expensive (min or hours) | Permissive | Open ↗ |
| Antibody Annotator | /api/antibody_annotator/ |
Sequence analysis · Antibody design | Moderate (s) | Permissive | Open ↗ |
| PLACER | /api/placer/ |
Structure prediction · Cheminformatics | Moderate (s) | Permissive | Open ↗ |