Data
Everything in oncolabels is open. Query it from your own code with the JSON API, let an AI assistant look things up through the MCP server, or download the whole dataset. All free and read-only, with no sign-in and no key.
API
What it does
The JSON API answers the same questions as the site: it searches the indications by tumour, biomarker, line of therapy, setting or drug, lists what to test for a tumour, returns one drug or one entry with its label sentence, and says what changed since a date. Its address is https://oncolabels.com/api/v1.
Quick start
From the command line:
curl "https://oncolabels.com/api/v1/indications?q=HER2%20gastric&limit=3"
In JavaScript:
const params = new URLSearchParams({ tumour: "NSCLC", biomarker: "PD-L1", line: "1L" });
const res = await fetch(`https://oncolabels.com/api/v1/indications?${params}`);
const { total, entries } = await res.json();Reference
The API reference documents every endpoint with its parameters, an example and the fields it returns, and the limits that apply. Code generators and custom GPT actions can read the OpenAPI description.
MCP server
Address
For assistants that speak the Model Context Protocol. It uses Streamable HTTP, is read-only and needs no sign-in and no key.
https://oncolabels.com/mcp
Claude
In Claude on the web or in the desktop app, open Settings, then Connectors, and add a custom connector with this address and no sign-in. The free plan allows one custom connector. In Claude Code:
claude mcp add --transport http oncolabels https://oncolabels.com/mcp
ChatGPT
Add a custom MCP server with the address above and no authentication. Whether your plan offers custom MCP servers depends on OpenAI.
Cursor, VS Code, Codex and Gemini CLI
Cursor, in ~/.cursor/mcp.json:
{
"mcpServers": {
"oncolabels": {
"url": "https://oncolabels.com/mcp"
}
}
}VS Code, in .vscode/mcp.json:
{
"servers": {
"oncolabels": {
"type": "http",
"url": "https://oncolabels.com/mcp"
}
}
}Codex, in ~/.codex/config.toml:
[mcp_servers.oncolabels] url = "https://oncolabels.com/mcp"
Gemini CLI, in settings.json:
{
"mcpServers": {
"oncolabels": {
"httpUrl": "https://oncolabels.com/mcp"
}
}
}Tools
The assistant gets the same six lookups as the API, under the same names:
search_indicationssearch EU-approved indications by free text and filtersget_indicationone indication with its label sentencewhat_to_testbiomarkers to test for a tumourget_druga medicine's EU indications, target and linkswhats_newnew approvals and label changes since a datelist_valuesterms the search knows
Downloads
Files
- indications.csv: every entry, one row each, for spreadsheets.
- snapshot.json: every entry and product, with all fields.
- history.json: every change to the labels, from EMA's record of each procedure.
- changelog.json: what each update of oncolabels changed.
- trace.json: what every model read and decided, entry by entry.
Tables on the site
Every table of indications on the site can be downloaded as it is shown, after your search and filters, in the columns of indications.csv. What's new downloads the label changes of the period you chose.
Licence
The data is free to reuse under CC BY 4.0. Credit oncolabels and the European Medicines Agency, and say that the entries are generated by AI.
About the data
AI-generated
Every entry is generated by AI from the EU labels, and no person has reviewed them yet; the methods page shows how. oncolabels is a non-commercial reference for education and research and gives no medical advice; the current SmPC takes precedence. The MCP server asks an assistant to quote the label sentence and link the SmPC, but an assistant can still summarise wrongly. What you type goes to your assistant's provider, so leave out anything that identifies a patient.