API
The data behind every page of the Atlas, as JSON. Each relation in the pathway model comes with the claim it makes, the conditions it was measured under, how confident the curation is, and the studies that support or contradict it. No key, no sign-up, CC BY 4.0.
Current state: API 1.0.0 · dataset 2.0.0 · corpus snapshot · 428 studies · 162 entities · 121 relations · 15 questions.
How it works
- Same data as the website. The JSON files are built in the same step as the HTML pages, from the same source. The API cannot show something the site does not.
- Static files. There are no query parameters and no search endpoint. Lists are small (the largest is a few hundred kB); download one and filter it locally.
- Every response says what it was computed from. The
metablock carries the dataset version, the corpus snapshot date and the source commit, so an analysis can state exactly which Atlas it used. - Caching. The host sends
ETagandLast-Modified; a conditional request returns304 Not Modifiedwhen nothing has changed. - Stable within v1. Fields may be added. A field is never renamed or removed
inside
/api/v1/; a breaking change gets a new version path.
Endpoints
Base URL: https://mtor-atlas.org/api/v1 · machine-readable description:
openapi.json (OpenAPI 3.1)
meta.json | Dataset version, corpus snapshot, counts, evidence-code legend, endpoint list /api/v1/meta.json |
studies.json | All 428 studies as summary records (no abstracts) /api/v1/studies.json |
studies/{sid}.json | One study, with its entities, the relations it supports or contradicts, and open questions it bears on /api/v1/studies/SAB1994.json |
entities.json | All 162 entities: genes, complexes, drugs, diseases, processes, outcomes /api/v1/entities.json |
entities/{id}.json | One entity, with its studies and every pathway relation it takes part in /api/v1/entities/mtorc1.json |
relations.json | All 121 evidence-linked pathway relations (8 marked contested) /api/v1/relations.json |
relations/{id}.json | One relation: the claim, its mechanism, conditions, confidence and the studies behind it /api/v1/relations/RHEB-MTORC1.json |
questions.json | All 15 open and frontier questions /api/v1/questions.json |
questions/{id}.json | One question: the gap, what changed, what is still open, how it could be tested /api/v1/questions/H1.json |
Evidence codes
Every study carries a code for the kind of study behind the finding. The code is not a grade: a careful molecular study is not "worse" than a human one, it answers a different question. Each response repeats this note next to the code, so the code never travels alone.
| S | Synthesis of human data |
| H | Human study |
| A | Animal model |
| M | Molecular — cells, biochemistry, structure |
| PP | Preprint, not peer-reviewed |
| RT | Registered trial, no results yet |
| R | Review — secondary literature, not a new result |
Example: one relation
Relations are the core of the API. evidence.supporting and
evidence.conflicting are study IDs you can resolve with /studies/{sid}.json;
source.entity and target.entity are entity IDs, or null where
a pathway node has no entity record.
{
"meta": {
"api_version": "1.0.0",
"dataset_version": "2.0.0",
"corpus_snapshot": "2026-10-01T12:09:45+0200",
"source_commit": "e61f726ea6be2e24f0c6f115316e870e19e5c98f",
"license": "CC-BY-4.0",
"cite": "Barton O. Oliver's mTOR Atlas. doi:10.5281/zenodo.22059963",
"docs": "https://mtor-atlas.org/api/"
},
"data": {
"id": "RHEB-MTORC1",
"claim": "Rheb activates mTORC1",
"source": {
"name": "Rheb",
"entity": "rheb"
},
"target": {
"name": "mTORC1",
"entity": "mtorc1"
},
"effect": "activates",
"type": "allosteric-activation",
"directness": "direct",
"timescale": "seconds",
"compartment": "lyso",
"species": [
"mammalian cells"
],
"mechanism": "GTP-loaded Rheb binds mTORC1 at the lysosome and physically re-shapes its active site into the working conformation.",
"mechanism_beginner": "Switched-on Rheb docks onto mTORC1 and physically reshapes it into its working form – the actual \"on\" switch.",
"context": "Rheb must be GTP-loaded and co-located with mTORC1. Rheb is also distributed across the ER and Golgi, and which pool supplies the activating Rheb is unresolved.",
"boundary": null,
"note": "Convergence point: the amino-acid route delivers mTORC1 here, the growth-factor route delivers Rheb. Both required.",
"contested": false,
"confidence": {
"mechanistic": "high",
"human_relevance": "plausible",
"consensus": "established"
},
"evidence": {
"kind": "Structural",
"strongest": {
"code": "M",
"label": "Molecular — cells, biochemistry, structure"
},
"supporting": [
"INOK2003",
"SAU2003",
"YAN2017"
],
"conflicting": []
},
"reviewed": "2026-07-29",
"updated": "2026-07-29",
"api_url": "https://mtor-atlas.org/api/v1/relations/RHEB-MTORC1.json"
}
} Quick start
curl
curl -s https://mtor-atlas.org/api/v1/studies/SAB1994.json | jq '.data | {sid, title, evidence, relations}' Python
import requests
BASE = "https://mtor-atlas.org/api/v1"
rels = requests.get(f"{BASE}/relations.json").json()
print("dataset", rels["meta"]["dataset_version"], "snapshot", rels["meta"]["corpus_snapshot"])
# Every relation that touches Rheb, with the studies behind it
for r in rels["data"]:
if "Rheb" in (r["source"]["name"], r["target"]["name"]):
best = r["evidence"]["strongest"] or {}
print(r["claim"], "|", best.get("code"), "|", ", ".join(r["evidence"]["supporting"])) JavaScript
const BASE = "https://mtor-atlas.org/api/v1";
const { data } = await (await fetch(`${BASE}/entities/mtorc1.json`)).json();
const contested = data.relations.filter(r => r.contested);
console.log(data.name, data.study_count, "studies,", contested.length, "contested relations"); Use it from an AI assistant (MCP)
The same data is available to Claude Desktop, Claude Code, Cursor and other assistants that can run a local Model Context Protocol server. Add this to the assistant's MCP configuration:
{
"mcpServers": {
"mtor-atlas": {
"command": "npx",
"args": [
"-y",
"mtor-atlas-mcp"
]
}
}
} Claude Code: claude mcp add mtor-atlas -- npx -y mtor-atlas-mcp
The assistant can then search studies by evidence code, look up the evidence for a pathway claim with both the supporting and the contradicting studies, and list contested claims and open questions. Every answer carries the dataset version and snapshot date, so it can be cited. Package: mtor-atlas-mcp · source: GitHub (MIT).
What is deliberately not here
- Full abstracts. A study record carries the same abstract excerpt as its page, plus DOI and PMID. The full abstract is on PubMed.
- Unreviewed extraction as fact.
extracted_findingsholds the AI-assisted extraction shown on study pages under "Extracted findings". Curated fields (finding,model_system,evidence) take precedence where they differ. - Search and filtering. These would need a server; the lists are small enough to filter where you use them.
- Write access. The API is read-only. The corpus is curated, and every record enters it through review, not through an upload.
Bulk data and citation
Complete CSV/JSON exports and versioned snapshots are on Data & citation.
If you use the Atlas in published work, cite the dataset (concept DOI
10.5281/zenodo.22059963) and give the dataset version and
corpus snapshot date from the meta block.