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.
OpenAPI document
-
Post the inputs
curl -X POST https://athanortools.com/api/rdkit/ \ -H 'Content-Type: application/json' \ -d '{ "task": "molecule", "input_mode": "text", "job_name": "rdkit-demo", "smiles": "CC(=O)OC1=CC=CC=C1C(=O)O aspirin\nCN1C=NC2=C1C(=O)N(C)C(=O)N2C caffeine\nCC(C)Cc1ccc(cc1)C(C)C(=O)O ibuprofen\nCC(=O)Nc1ccc(O)cc1 paracetamol\n", "descriptor_set": "common", "standardize": false, "include_inchi": false, "hashes": false, "murcko_scaffold": false, "ring_analysis": false, "stereo": false, "substructure_smarts": "", "find_mcs": false, "mcs_timeout": 20, "fingerprint": "none", "fingerprint_bits": 2048, "fingerprint_radius": 2 }' -
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://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": "…" } } }
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. Some tool presets also supply bio-tools:// references to their bundled input assets. |
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 unique polymer,
ligand, or ion entity. Tools that expose native IDs accept id
in each entry; older contracts without it continue to receive chain
letters (A, B, C, …) in entry order.
| Key | Meaning |
|---|---|
type |
Which of the field's molecule types this entry is. |
id |
A chain/entity ID, or a list of IDs for identical copies. Tools with configurable IDs expose this inside each molecule box. CatPred, whose boxes are not chains of one structure, uses it for the enzyme's sequence ID (its pdbpath, which must name exactly one sequence) and for a substrate's optional label. |
count |
The number of identical copies. Used by tools whose native schema represents copy count separately from IDs. |
sequence |
The residues, for a protein, dna, or rna entry. |
ligand |
A SMILES string or a CCD_ code, for a ligand entry. CatPred resolves no CCD codes and takes SMILES only. |
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": <integer>, "residue": "<CCD code>"} objects. Position indexing follows the tool: ESMFold2 uses zero-based positions; the other molecule-builder tools use one-based positions. |
msa |
A tool-native MSA for supported protein/RNA entities. Boltz-2: an absolute .a3m/.csv path, or empty for single-sequence; omit it to generate one with the MSA server. ESMFold2: an absolute .a3m path, a serialized MSA, or a {"sequences": [...]} object. |
paired_msa_path |
An OpenDDE or Protenix protein paired-MSA path. |
unpaired_msa_path |
An OpenDDE or Protenix protein or RNA unpaired-MSA path. |
templates_path |
An OpenDDE or Protenix protein template-hits path. |
Every tool
35 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 | Expensive (min or hours) | Permissive | Open ↗ |
| Boltz-2 | /api/boltz2/ |
Structure prediction · Property prediction | Expensive (min or hours) | Permissive | Open ↗ |
| Chai-1 | /api/chai1/ |
Structure prediction | Expensive (min or hours) | Permissive | Open ↗ |
| Protenix-v2 | /api/protenix/ |
Structure prediction | Expensive (min or hours) | Permissive | Open ↗ |
| ESMFold 2 | /api/esmfold2/ |
Structure prediction | Expensive (min or hours) | Permissive | Open ↗ |
| ESMC | /api/esmc/ |
Sequence analysis · Property prediction | 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 | Expensive (min or hours) | Non-commercial | 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/ |
Protein Design · Sequence prediction | Moderate (s) | Permissive | Open ↗ |
| LigandMPNN | /api/ligandmpnn/ |
Protein Design · Sequence prediction | Moderate (s) | Permissive | Open ↗ |
| ProteinMPNN-ddG | /api/proteinmpnn_ddg/ |
Property prediction | Moderate (s) | Permissive | Open ↗ |
| RFdiffusion3 | /api/rfd3/ |
Protein Design · Backbone 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 ↗ |
| 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/ |
Protein Design · Structure prediction | Moderate (s) | Permissive | Open ↗ |