API Reference
Base URL: https://api.fermvyne.com. All requests require an Authorization: Bearer <key> header.
Authentication
API keys are prefixed with fvyn_. Generate keys from your dashboard. Pass keys in the Authorization header:
Authorization: Bearer fvyn_your_api_key
POST /v1/design
Submit an enzyme design request. Returns a job ID for async polling or direct results for small requests.
Request body (JSON):
{
"substrate": "string (SMILES, required)",
"product": "string (SMILES, required)",
"ec_number": "string (optional, e.g. '1.1.1.1')",
"targets": {
"tm_min": 60, // minimum Tm in °C (optional)
"host": "ecoli", // ecoli | pichia | bacillus
"cofactor": "NADPH", // cofactor preference (optional)
"n_candidates": 12 // 1-20, default 5
}
}
Response (JSON):
{
"job_id": "j_8xkp42",
"status": "complete",
"candidates": [
{
"rank": 1,
"fasta": "MKVLSGEDK...",
"tm_estimate": 67.4,
"expression_score": "high", // high | medium | low
"solubility_prob": 0.91,
"confidence_flag": null // or string if low-confidence
}
]
}
GET /v1/results/{job_id}
Retrieve results for a previously submitted job. Use this for polling when the design request returns "status": "running".
Returns the same response schema as POST /v1/design with updated status: running | complete | failed.
POST /v1/pathway
Co-design multiple enzymes across a metabolic route simultaneously. Available on Lab plan. Checks cofactor stoichiometry across the full route.
Request body (JSON):
{
"steps": [
{
"substrate": "SMILES",
"product": "SMILES",
"cofactor": "NADPH"
}
],
"host": "ecoli",
"cofactor_balance": true
}
Biophysical Scoring
Each candidate sequence ships with three prediction scores:
- tm_estimate — thermostability melting point estimate in °C, validated for E. coli, Pichia, and Bacillus hosts
- expression_score — categorical:
high/medium/lowfor the specified expression host - solubility_prob — probability 0.0–1.0 that the protein will be found in the soluble fraction at standard expression conditions
If a request falls outside the model's training distribution, a confidence_flag string is returned explaining the limitation. See the Science page for stated scope boundaries.
Rate Limits
Rate limits by plan:
- Free: 10 designs/month, 1 concurrent job
- Pro: unlimited designs, 5 concurrent jobs, priority queue
- Lab: unlimited designs, 20 concurrent jobs, dedicated queue
Integrations
The Python SDK supports Benchling ELN integration via the fermvyne.integrations.benchling module. Configure your Benchling API key once and push design results directly to a specified notebook entry.
from fermvyne.integrations import benchling
benchling.push_results(
result=result,
benchling_api_key=os.environ["BENCHLING_KEY"],
notebook_entry_id="etr_abc123"
)