TuringDNA

Reference

API reference

Every endpoint the engine exposes, grouped by tool, with request and response shapes and the real default values. Reference material for reading network traffic, not a supported integration surface.

Updated 31 July 2026

All documentation
On this page

This is not a supported integration surface

There are no API keys. Authentication is the browser session token issued at sign-in, and the endpoints below are documented so you can read what the interface is doing and reason about the defaults — not as a contract. They change with the interface. If you need programmatic access, get in touch rather than building against this.

Base URL is the engine origin. Every response is JSON. Errors carry both an HTTP status and a kind; see Troubleshooting.

CRISPR

POST /api/crispr/design is the main entry point.

Input
{
  "sequence": "ATGGTGAGCAAGGGCGAGGAG...",
  "enzyme": "cas9",
  "mode": "knockout",
  "target_organism": "",
  "max_results": 50,
  "min_score": 0.0
}
Field Default Accepted
enzyme cas9 cas9, cas12a
mode knockout knockout, base_edit (SpCas9 only)
base_editor be4max be4max, be3, evocda_be4max, abe8e, abe7.10
max_results 50 clamped to 1–500
min_score 0.0 clamped to 0.0–1.0
target_organism "" (skip genome search) ecoli, yeast, worm, fly, human, mouse
gene_symbol "" up to 32 chars, for exon context
vector_id px459_v2 (Cas9), py094 (Cas12a) px330, px458, px459_v2, lenticrisprv2, plentiguide_puro, py094

The response wraps the guide list in run metadata — read genome_index_status before trusting the genome columns:

Output
{
  "input_length": 720,
  "n_guides": 42,
  "enzyme": "cas9",
  "mode": "knockout",
  "genome_organism": "ecoli",
  "genome_index_status": "ready",
  "genome_searched_top_n": 10,
  "calibrated": true,
  "guides": [ ... ]
}
Endpoint Method Purpose
/api/crispr/design POST Enumerate, score and rank guides
/api/crispr/methods GET How every number is computed. Public — no auth
/api/crispr/vectors?enzyme= GET Cloning vectors for that nuclease
/api/crispr/base-editors?kind= GET Editors, filtered to CBE or ABE
/api/crispr/resolve POST Gene symbol or accession → sequence
/api/crispr/structure POST Predicted structure for the target
/api/crispr/ip_radar POST Europe PMC and PatentsView prior art
/api/crispr/save, /designs, /designs/<id> POST, GET Saved designs
/api/crispr/download POST xlsx (default) or csv

Directed evolution

Asynchronous: preview, run, poll, fetch.

Endpoint Method Purpose
/api/preview POST Parse an upload or paste. Returns session_id and cds_options
/api/run POST Start the pipeline. Returns job_id
/api/status/<job_id> GET pendingparsingscoringsearchingencodingdone
/api/result/<job_id> GET Ranked variants. 409 before the job is done
/api/variants/<job_id>/<variant_id>/dna POST Edit one variant’s DNA in place
/api/download/<job_id>?format= GET csv, tsv, fasta, fasta-dna, gb, xlsx, json
/api/identify, /api/identify/<job_id> POST, GET NCBI BLAST identification
/api/de/outcomes POST, GET Log measured bench results
/api/de/round2 POST Re-rank against logged outcomes
/api/de/epistasis POST Pairwise interaction scan

Run settings and their real defaults:

Setting Default Bounds
model small (ESM-2 35M) small, medium, large — the last two are not yet available
percentile 85.0 0–100
k (variants) 30 1–500
min_mutations 2 1–50, and must not exceed max_mutations
max_mutations 5 1–50
restarts 8 1–100
steps 1200 50–50,000
host e_coli e_coli, yeast, human

The library defaults differ from the product defaults

The Python SearchConfig dataclass and the command-line entry point carry heavier defaults (k=100, max_mutations=8, restarts=12, steps=2000). The values above are what the server enforces, and they are what the interface actually uses.

Primers

Endpoint Method Purpose
/api/primers/analyze POST Score primers you supply against a template
/api/primers/design POST Propose primer pairs from a template
/api/primers/multiplex POST Cross-compatibility across a set
/api/primers/local-specificity POST Screen against a genome you upload
/api/primers/<job_id> GET Poll an NCBI scan
/api/primers/save, /analyses, /analyses/<id> POST, GET, DELETE Saved analyses
/api/primers/export POST csv or xlsx

Design defaults: product 100–1,000 bp, primer length 18–27 nt, Tm 57 / 60 / 63 °C (min / optimum / max), GC 40–60%, 5 pairs returned, organism human, and both scan_ncbi and strict_3p off.

Plasmid

Endpoint Method Purpose
/api/plasmid/import POST GenBank, FASTA, EMBL, SnapGene or raw DNA
/api/plasmid/restriction POST Scan the REBASE enzyme set
/api/plasmid/digest POST Simulate a digest and virtual gel
/api/plasmid/clone POST Gibson (default), Golden Gate or restriction-ligation
/api/plasmid/export POST genbank (default) or fasta
/api/plasmid/library, /library/<id> GET, DELETE Construct library
/api/align POST Pairwise alignment

Cloning defaults: method gibson, circular true, Golden Gate enzyme BsaI (also BbsI, BsmBI), restriction enzyme EcoRI.

Agent

Start a run, then poll it. Events arrive as user, text, tool_call, tool_result, ask, plan, compacted, checkpoint, error, done.

Endpoint Method Purpose
/api/orchestrator/start POST {message}{run_id}
/api/orchestrator/poll/<run_id>?after=<seq> GET Events since a sequence number
/api/orchestrator/<run_id>/reply POST Answer a question, or steer mid-run
/api/orchestrator/<run_id>/stop POST Halt the run
/api/orchestrator/runs GET Run history

Public and shared

Endpoint Method Purpose
/healthz GET Liveness
/api/atlas GET The mutation-priors commons
/api/benchmarks GET Benchmark run figures
/api/usage GET Plan: anonymous, free or pro
/api/structure POST Fold a sequence
/api/outcomes, /api/outcomes/<tool>/<design_id> POST, GET Bench outcome logging