Skip to content
API Reference

Novo REST API.

Base URL, authentication, the live tool catalog, async patterns, errors, and rate limits — everything to call the engine from your code. The machine-readable spec is OpenAPI 3.1 at api.novomcp.com/openapi.json.

Quickstart

Your first call.

Base URL is https://api.novomcp.com/v1. Every tool is POST /tools/{name} with a JSON arguments body and a Bearer key.

curl
curl -s https://api.novomcp.com/v1/tools/validate_target \
  -H "Authorization: Bearer $NOVOMCP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"arguments": {"target": "EGFR", "disease": "lung cancer"}}'
python
import os, requests
r = requests.post(
    "https://api.novomcp.com/v1/tools/validate_target",
    headers={"Authorization": f"Bearer {os.environ['NOVOMCP_API_KEY']}"},
    json={"arguments": {"target": "EGFR", "disease": "lung cancer"}},
)
r.raise_for_status()
print(r.json()["result"], r.json()["usage"])
javascript
const res = await fetch("https://api.novomcp.com/v1/tools/validate_target", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.NOVOMCP_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ arguments: { target: "EGFR", disease: "lung cancer" } }),
});
const { result, usage } = await res.json();
Response shape
json
{
  "result": { /* tool-specific payload */ },
  "usage": {
    "tool": "validate_target",
    "credits": 8,
    "credits_remaining": 742,
    "credit_status": "ok"
  }
}
Authentication

One Bearer key.

Create and revoke keys in the dashboard — app.novomcp.com → API Keys.

Keys look like nmcp_… (Novo) or ncmcp_… (Novo Compute). For the REST API, either prefix works — what you can call is set by your plan tier, not the prefix. Send it as Authorization: Bearer … (or X-API-Key). Treat keys as secrets; revocation is immediate.

Compute tools (docking, MD, FEP, QM, NNP, structure prediction — x-compute: true in the spec) require a paid plan; a free-tier key calling one returns 403 paid_plan_required.

Tool catalog

69 tools, one call pattern.

Core tools run on any tier; compute tools need a paid plan. Each tool's full input schema lives in the spec.

Novo — core tools

41 tools · all tiers
audit_systemAudit Systemfree
batch_profileBatch Profile Molecules10 cr
calculate_propertiesCalculate Properties10 cr
check_complianceCheck Compliance3 cr
compare_candidatesCompare Candidates5 cr
drill_into_clusterDrill Into Cluster3 cr
explore_chemical_spaceExplore Chemical Space3 cr
filter_moleculesFilter Molecules5 cr
generate_upload_urlGenerate File Upload URLfree
get_credit_usageGet Credit Usagefree
get_file_statusGet File Statusfree
get_funnel_auditGet Funnel Audit Logfree
get_funnel_contextGet Funnel Contextfree
get_molecule_infoGet Molecule Info1 cr
get_molecule_profileGet Molecule Profile2 cr
get_pipeline_auditGet Pipeline Audit Logfree
get_platform_infoGet Platform Infofree
lead_optimizationLead Optimization150 cr
list_filesList Uploaded Filesfree
list_funnelsList Discovery Funnelsfree
optimize_moleculeOptimize Molecule25 cr
predict_admetPredict ADMET20 cr
predict_clinical_outcomesPredict Clinical Outcomes25 cr
pull_from_sourcePull from Source5 cr
push_to_destinationPush to Destination5 cr
run_novo_ag'Novo AG' / '/agm' → Autonomous Mode Triggerfree
save_funnel_contextSave Funnel Contextfree
save_funnel_memorySave Funnel Memory (terminal summary)free
save_funnel_stageSave Funnel Stagefree
screen_libraryScreen Library50 cr
search_biorxivSearch bioRxiv3 cr
search_chemblSearch ChEMBL5 cr
search_clinical_trialsSearch Clinical Trials3 cr
search_literatureSearch Literature5 cr
search_patentsSearch Patents5 cr
search_prior_runsSearch Prior Discovery Runsfree
search_similarSearch Similar Molecules5 cr
stratify_patientsPatient Stratification & Pharmacogenomics15 cr
target_discoveryOmics-Driven Target Discovery10 cr
validate_targetAdversarial Target Validation8 cr
vector_searchVector Similarity Search5 cr

Novo Compute — GPU & quantum

28 tools · paid plan
cancel_jobCancel Async Jobfreecompute
compute_energyCompute Energy (Neural Potential)5 crcompute
dock_moleculesDock Molecules10 crcompute
dock_with_strainStrain-Corrected Docking Score15 crcompute
find_transition_stateTransition State Search (NEB)80 crcompute
generate_dynamicsGenerate Conformational Dynamics25 crcompute
get_3d_propertiesGet 3D Properties15 crcompute
get_job_statusGet Job Statusfreecompute
get_protein_structureGet Protein Structure5 crcompute
get_structure_resultGet Structure Result (Deprecated)freecompute
list_jobsList Pipeline Jobsfreecompute
optimize_geometry_nnpGeometry Optimization (Neural Potential)10 crcompute
parameterize_metalParameterize Metal Site50 crcompute
predict_bdePredict Bond Dissociation Energy15 crcompute
predict_frontier_orbitalsFrontier Orbital Analysis (OLED/Optoelectronics)20 crcompute
predict_pkaPredict pKa10 crcompute
predict_reaction_thermodynamicsReaction Thermodynamics (ΔG, ΔH, K_eq)60 crcompute
predict_redox_potentialElectrolyte Redox Potential Screening50 crcompute
predict_solubilityPredict Aqueous Solubility10 crcompute
predict_structurePredict Protein Structure100 crcompute
run_conformer_searchConformer Search25 crcompute
run_excited_statesExcited State Calculation (sTDA-xTB)25 crcompute
run_fep_checkRelative Binding Free Energy (FEP)150 crcompute
run_fep_screenFEP Library Screen150 crcompute
run_molecular_dynamicsRun Molecular Dynamics250 crcompute
run_qm_calculationRun QM Calculation20 crcompute
run_qm_hessianVibrational Frequencies & Thermochemistry30 crcompute
search_materials_projectSearch Materials Project Database5 crcompute

Rendered live from api.novomcp.com/openapi.json — each tool carries its full input schema, credit cost (x-credits), and required tier (x-tier) in the spec.

Long-running tools

Three async patterns.

Async jobs

MD, dynamics, structure prediction return a job_id; poll get_job_status every 30–60s until status is completed.

Two-phase confirmation

Batch docking and FEP first return a cost estimate + confirmation_token (no credits spent); call again with the token to execute.

File upload

generate_upload_url returns a presigned URL; PUT your file (QM logs, PDBs, trajectories) and reference the returned file_id in later calls.

Rate limits & credits

Usage-based.

Per API key — current limits, subject to change. Every successful call deducts credits and echoes your remaining balance.

TierReq / minReq / day
Free1010
Core601,000
Team30010,000
Enterprise1,000effectively unlimited

Over the limit → 429 with retry_after. Depleted credits → 402 with upgrade options. See pricing.

Errors

Status codes.

CodeMeaning
400Bad request, tool execution error, or insufficient credits for an estimate
401Missing or invalid API key
402Trial expired or credits depleted (body has upgrade_url)
403Paid plan required (compute tool on a non-paid key) or tier too low
404Unknown tool
429Rate limit exceeded (retry_after, reset_at)

Bodies return { detail } — a string or a structured object with error plus actionable fields.

Bring your own AI agent

The engine, not the reasoner.

You supply the model. Let it call POST /v1/tools/{name} in its loop, with live schemas from GET /v1/tools or generated from openapi.json.

python
def call_novomcp(tool, arguments):
    r = requests.post(f"https://api.novomcp.com/v1/tools/{tool}",
                      headers={"Authorization": f"Bearer {KEY}"},
                      json={"arguments": arguments})
    return r.json()
# Use GET /v1/tools to give your model the live tool list + input schemas.
Get started

Mint a key and make your first call.

Using an AI assistant instead of your own code? Add Novo as an MCP connector — same account, same credits.