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.
{
"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:
{
"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 | pending → parsing → scoring → searching → encoding → done |
/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 |