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

Quick start
  1. 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
    }'
  2. Read the job back

    The response is 202 Accepted. Nothing has run yet: one job executes at a time across the whole site, and position counts 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
      }
    }
  3. Poll status_url until it settles

    That 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 either result or error, 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": "…" }
      }
    }
Field types

How a field's kind is sent

Each tool's page lists its fields; this is what the kinds mean over HTTP.

KindSendNotes
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.

KeyMeaning
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.
Endpoints

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 ↗