# BioModels API
> BioModels as an API, powered by EMBL-EBI — the world's largest repository of curated, published mathematical models of biological systems. BioModels collects computational models (mostly in SBML, the Systems Biology Markup Language) of metabolism, cell signalling, gene-regulatory networks, the cell cycle, disease processes and physiology, each linked to the peer-reviewed publication it comes from. /v1/search?query=glycolysis searches the repository and returns each matching model's id (such as BIOMD0000000012), name, format, submitter and submission/modification dates. /v1/model?id=BIOMD0000000012 returns a model's metadata — its name and description, the encoding format, the modelling approach (e.g. ordinary differential equation model), the curation status, the publication behind it (title, journal, year, authors) and the model files. Model ids look like BIOMD0000000012 for curated models or MODEL1234567890 for non-curated submissions; get them from the search endpoint. Ideal for systems-biology and computational-modelling tools, reproducible-research and model-reuse workflows, and teaching. Data from EMBL-EBI BioModels (CC0). This is a systems-biology / computational-model repository — distinct from sequence (UniProt, ENA), structure (PDB, AlphaFold), pathway and variant (ClinVar) databases.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/biomodels-api/..."
```

## Pricing
- **Free** (Free) — 2,250 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 48,500 calls/Mo, 5 req/s
- **Pro** ($21/Mo) — 216,000 calls/Mo, 12 req/s
- **Mega** ($55/Mo) — 782,000 calls/Mo, 35 req/s

## Endpoints

### Models

#### `GET /v1/model` — A model metadata

**Parameters:**
- `id` (query, required, string) — BioModels id (from /v1/search), e.g. BIOMD0000000012 Example: `BIOMD0000000012`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/biomodels-api/v1/model?id=BIOMD0000000012"
```

**Response:**
```json
{
    "data": {
        "model": {
            "id": "BIOMD0000000012",
            "url": "https://www.ebi.ac.uk/biomodels/BIOMD0000000012",
            "name": "Elowitz2000 - Repressilator",
            "files": [
                "BIOMD0000000012_url.xml"
            ],
            "format": "SBML",
            "description": "<notes xmlns=\"http://www.sbml.org/sbml/level2/version3\"> <body xmlns=\"http://www.w3.org/1999/xhtml\"> <div class=\"dc:title\">Elowitz2000 - Repressilator</div> <div class=\"dc:description\"> <p>This model describes the deterministic version of the repressilator system.</p> <p>The authors of this model (see reference) use three transcriptional repressor systems that are not part of any natural biological clock to build an oscillating network that they called the repressilator. The model system was induced in Escherichia coli.</p> <p>In this system, LacI (variable X is the mRNA, variable PX is the protein) inhibits the tetracycline-resistance transposon tetR (Y, PY describe mRNA and protein). Protein tetR inhibits the gene Cl from phage Lambda (Z, PZ: mRNA, protein),and protein Cl inhibits lacI expression. With the appropriate parameter values this system oscillates.</p> </div> <div class=\"dc:bibliographicCitation\"> <p>This model is described in the article:</p> <div class=\"bibo:title\"> <a href=\"http://identifiers.org/pubmed/10659856\" title=\"Access to this publication\">A synthetic oscillatory network of transcriptional regulators.</a> </div> 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Search the model repository

**Parameters:**
- `q` (query, required, string) — Search text, e.g. glycolysis Example: `glycolysis`
- `limit` (query, optional, string) — Max results (1-100)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/biomodels-api/v1/search?q=glycolysis"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "glycolysis",
        "total": 108,
        "models": [
            {
                "id": "BIOMD0000000471",
                "url": "https://www.biomodels.org/BIOMD0000000471",
                "name": "Smallbone2013 - Yeast metabolic model with linlog rate law",
                "format": "SBML",
                "submitted": "2013-02-14T00:00:00Z",
                "submitter": "Kieran Smallbone",
                "last_modified": null
            },
            {
                "id": "BIOMD0000000472",
                "url": "https://www.biomodels.org/BIOMD0000000472",
                "name": "Smallbone2013 - Yeast metabolic model with modular rate law",
                "format": "SBML",
                "submitted": "2013-02-14T00:00:00Z",
                "submitter": "Kieran Smallbone",
                "last_modified": null
            },
            {
                "id": "BIOMD0000000473",
                "url": "https://www.biomodels.org/BIOMD0000000473",
                "name": "Smallbone2013 - Yeast metabolic model with modular rate law, merged with Pritchard 2002",
                "format": "SBML",
                "submitted": "2013-02-14T00:00:00Z",
                "submitter": "Kieran Smallbone",
                "last_modified": null
            },
            {
                "id": "BIOMD0000000469",
                "url": "https://www.biomodels.org/BIOMD0000000469",
                "name": "Smallbone2013 - E.
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Usage notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/biomodels-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "BioModels is EMBL-EBI's repository of curated, published mathematical models of biological systems — metabolism, cell signalling, gene-regulatory networks, disease and physiology — mostly encoded in SBML. /v1/search?q=glycolysis = search the repository, returning each matching model's id (e.g. BIOMD0000000012), name, format, submitter and dates; /v1/model?id=BIOMD0000000012 = a model's metadata — name, description, format, modelling approach, curation status, the publication it comes from (title, journal, year, authors) and the model files. Model ids look like BIOMD0000000012 (curated) or MODEL1234567890 (non-curated). Data from EMBL-EBI BioModels (CC0). A systems-biology / computational-model repository — distinct from sequence (UniProt, ENA), structure (PDB, AlphaFold) and variant (ClinVar) databases. Ideal for systems-biology, modelling and reproducible-research tools.",
        "source": "EMBL-EBI BioModels (ebi.ac.uk/biomodels)",
        "endpoints": [
            "/v1/search",
            "/v1/model",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T16:23:22.131Z",
        "request_id": "d35400b4-f8e8-4034-8bd5-e965d98841d2"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/biomodels-api
OpenAPI spec: https://www.oanor.com/api/biomodels-api/openapi.json
