Developer APIOverview

Developer API

The Developer API runs versioned Hub labs as durable managed jobs. You use it through the same MIT-licensed biosimulant Python package you use for local simulation. If you’re new, start with the quickstart.

The Developer API and the Biosimulant MCP server are one service. Every MCP tool except the agent grant tools has a /v1 route that runs the same operation, with the same scopes. Both return only the signed-in account’s own work, so a run started in either place appears in both. Use the API from code and scripts, and MCP from an AI assistant.

Not sure this is the surface you want? Which surface do I want? compares all five and says which credential each needs.

Local versus managed execution

BioWorld.run() stays local, open source and free. Client and AsyncClient send work to https://api.biosimulant.com/v1. Nothing you run locally moves to hosted infrastructure unless you use them. To pull a pinned Hub lab into a local world instead, use HubComposition.

Both use the same runtime, package refs and results format. The difference is where the work runs and what the platform handles for you:

Local: BioWorld.run()Managed: Client / AsyncClient
Where it runsYour machine or CIapi.biosimulant.com/v1
Entry pointworld.run(duration=…), run_package(…), CLIclient.run(ref, inputs=…)
Installpip install biosimulantSame package, plus an API key
CostMIT, freePrepaid compute
ComputeYour own CPU or GPUManaged CPU and GPU profiles
DurabilityEnds with your processServer job that outlives client timeouts
Provenance and artifactsYou store themAttached to every run
DeliveryReturns when donePoll the run or receive webhooks
Best forDevelopment, tests, offline work, CILong or GPU-heavy runs, shared results, automation

The same lab, run each way:

# Runs on your machine. Pulls the ref if needed.
biosimulant labs run demi/microbiology-hello-world-growth@1.0.0 \
  --run-input-file inputs.json \
  --results-file results.json

Managed runs are always asynchronous on the server; client.run() just waits for you. Runs and results covers timeouts, cancelling and parallel runs.

This release runs accessible, versioned Hub labs. Uploading an arbitrary BioWorld or a private local lab through the SDK isn’t supported yet.

For direct HTTP calls, use the REST reference. The Python API page lists every public import.