Skip to content
API Reference

Novo REST API.

One call pattern for every tool — POST /v1/tools/{name} with a Bearer key. Base URL, authentication, the live tool catalog, async patterns, errors, and limits, all here. 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 MCP tools + 1 API-only.

Most tools are shared with the MCP connectors; a few are REST-API only. Compute tools need a paid plan. Each tool's full input schema lives in the live spec.

MCP tools

69 · also on the MCP connectors
audit_systemAudit Systemfree
batch_profileBatch Profile Molecules10 cr
calculate_propertiesCalculate Properties10 cr
cancel_jobCancel Async Jobfreecompute
check_complianceCheck Compliance3 cr
compare_candidatesCompare Candidates5 cr
compute_energyCompute Energy (Neural Potential)5 crcompute
dock_moleculesDock Molecules10 crcompute
dock_with_strainStrain-Corrected Docking Score15 crcompute
drill_into_clusterDrill Into Cluster3 cr
explore_chemical_spaceExplore Chemical Space3 cr
filter_moleculesFilter Molecules5 cr
find_transition_stateTransition State Search (NEB)80 crcompute
generate_dynamicsGenerate Conformational Dynamics25 crcompute
generate_upload_urlGenerate File Upload URLfree
get_3d_propertiesGet 3D Properties15 crcompute
get_credit_usageGet Credit Usagefree
get_file_statusGet File Statusfree
get_funnel_auditGet Funnel Audit Logfree
get_funnel_contextGet Funnel Contextfree
get_job_statusGet Job Statusfreecompute
get_molecule_infoGet Molecule Info1 cr
get_molecule_profileGet Molecule Profile2 cr
get_pipeline_auditGet Pipeline Audit Logfree
get_platform_infoGet Platform Infofree
get_protein_structureGet Protein Structure5 crcompute
get_structure_resultGet Structure Result (Deprecated)freecompute
lead_optimizationLead Optimization150 cr
list_filesList Uploaded Filesfree
list_funnelsList Discovery Funnelsfree
list_jobsList Pipeline Jobsfreecompute
optimize_geometry_nnpGeometry Optimization (Neural Potential)10 crcompute
optimize_moleculeOptimize Molecule25 cr
parameterize_metalParameterize Metal Site50 crcompute
predict_admetPredict ADMET20 cr
predict_bdePredict Bond Dissociation Energy15 crcompute
predict_clinical_outcomesPredict Clinical Outcomes25 cr
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
pull_from_sourcePull from Source5 cr
push_to_destinationPush to Destination5 cr
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_novo_ag'Novo AG' / '/agm' → Autonomous Mode Triggerfree
run_qm_calculationRun QM Calculation20 crcompute
run_qm_hessianVibrational Frequencies & Thermochemistry30 crcompute
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_materials_projectSearch Materials Project Database5 crcompute
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

API-only tools

1 · REST API only
developability_reportAssemble a structured developability-signal report (canonical catalog-shape route).dynamic

Compute tools (badged) require a paid plan. Rendered live from api.novomcp.com/openapi.json — each tool carries its full input schema, credit cost (x-credits), and 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.