MyDisease.info API
Free MyDisease.info API with no key: disease annotation aggregated from MONDO, Disease Ontology, HPO, DisGeNET and more, with field selection and batch queries.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the MyDisease.info API?
MyDisease.info is a free, key-free API that merges disease annotation from MONDO, Disease Ontology, Orphanet, HPO, DisGeNET, CTD and other sources into one document per disease, addressable by MONDO, DOID, OMIM or Orphanet identifier.
Where Monarch models a knowledge graph, MyDisease takes the flatter approach: one JSON document per disease, assembled from every source that has something to say about it, retrievable in a single request. That suits annotation pipelines well — hand it an identifier, name the fields you want, get a predictable document back, and use the POST endpoint to do a thousand at once.
The `mondo` block carries the ontology structure, and the `ancestors` and `children` arrays are what most callers actually need: the example's inherited-disorder record lists 11 ancestors and more than 50 children, which is how you roll a specific diagnosis up to a category or expand a category into its members. Licensing is the thing to watch, because the sources are not uniformly open — DisGeNET in particular has historically been non-commercial, so a document assembled from many sources can mix licences within a single response. Request only the source blocks you intend to use, and check that source's terms rather than assuming the aggregator's convenience implies permission.
Quick facts
- Base URL
https://mydisease.info/v1- Authentication
- No API key or account. The service is free, but the aggregated content keeps the licence of each upstream source and those differ — several are non-commercial. Check the terms for any source block you redistribute.
- Rate limit
- No hard published limit. The maintainers ask for a few requests per second and provide a POST batch endpoint accepting up to 1000 identifiers per call.
- Pricing
- Free to query. Redistribution rights depend on which source blocks you use.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the MyDisease.info API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch the MONDO annotation block for an inherited disorder
GET https://mydisease.info/v1/disease/MONDO:0016575?fields=mondo
curl 'https://mydisease.info/v1/disease/MONDO:0016575?fields=mondo'const res = await fetch("https://mydisease.info/v1/disease/MONDO:0016575?fields=mondo");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://mydisease.info/v1/disease/MONDO:0016575?fields=mondo", timeout=20)
res.raise_for_status()
print(res.json()){
"_id": "MONDO:0016575",
"_version": 1,
"mondo": {
"ancestors": [
"MONDO:0700096",
"MONDO:0005308",
"MONDO:0005087",
"MONDO:7770006",
"MONDO:7770011",
"MONDO:7770007",
"MONDO:7770009",
"MONDO:7770008",
"MONDO:0000001",
"MONDO:0002254",
"MONDO:0003847"
],
"children": [
"MONDO:0008984",
"MONDO:0008985",
"MONDO:0009449",
"MONDO:0009450",
"MONDO:0009477",
"MONDO:0009484",
"MONDO:0010517",
"MONDO:0011718",
"MONDO:0012085",
"MONDO:0012087",
"MONDO:0012088",
"MONDO:0012571",
"MONDO:0012748",
"MONDO:0012844",
"MONDO:0012906",
"MONDO:0012918",
"MONDO:0012978",
"MONDO:0012979",
"MONDO:0013174",
"MONDO:0013434",
"MONDO:0013435",
"MONDO:0013525",
"MONDO:0013854",
"MONDO:0013940",
"MONDO:0013979",
"MONDO:0014030",
"MONDO:0014123",
"MONDO:0014192",
"MONDO:0014193",
"MONDO:0014202",
"MONDO:0014203",
"MONDO:0014211",
"MONDO:0014215",
"MONDO:0014216",
"MONDO:0014378",
"MONDO:0014465",
"MONDO:0014657",
"MONDO:0014750",
"MONDO:0014909",
"MONDO:0014910",
"MONDO:0030332",
"MONDO:0030346",
"MONDO:0031054",
"MONDO:0032637",
"MONDO:0032664",
"MONDO:0032757",
"MONDO:0032872",
"MONDO:0032874",
"MONDO:0032914",
"MONDO:0032924",
"MONDO:0033204",
"MONDO:0054843",
"MONDO:0100607",
"MONDO:0859353",Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | path segment | Required | Disease identifier — MONDO, DOID, OMIM or Orphanet CURIEs all resolve. MONDO:0016575 |
fields | query | Optional | Comma-separated source blocks to return. Without it you get every source, which is large. mondo |
q | query | Optional | On the `/query` endpoint, a search string or Lucene-style expression. marfan |
size | query | Optional | Number of hits from `/query`. Defaults to 10. 10 |
dotfield | query | Optional | Set to `false` to keep nested objects nested rather than flattening to dotted keys. false |
Response fields
_idstring- Primary identifier for the document, normally the MONDO CURIE.
_versioninteger- Internal document version, incremented when the aggregator rebuilds the record.
mondoobject- The MONDO ontology block — definition, synonyms, cross-references and hierarchy.
mondo.ancestors[]array- Every MONDO term above this one, for rolling a specific diagnosis up to a category.
mondo.children[]array- Direct child terms. The example lists over fifty, which is typical for a disease grouping.
(other source blocks)object- Blocks such as `disease_ontology`, `hpo`, `disgenet` and `ctd` appear as siblings when requested. Each carries its own upstream licence.
What you can build with the MyDisease.info API
- Annotate a disease list with definitions and cross-references in one batch
- Expand a disease category into every specific term beneath it
- Roll specific diagnoses up to a broader classification for analysis
- Resolve OMIM or Orphanet identifiers to MONDO terms
- Enrich a variant interpretation pipeline with disease context
Common errors and how to fix them
404
The identifier is not indexed under that prefix.
Fix: Prefixes are case-sensitive. Try the `/query` endpoint with the disease name if a direct lookup misses.
Very large response
No `fields` parameter was sent.
Fix: A full document merges every source and can be enormous. Always name the blocks you want.
429
Too many single-document requests.
Fix: POST to `/v1/disease` with up to 1000 ids and a `fields` list; one call replaces a thousand.
Licence mismatch across one document
Sources are aggregated but not relicensed.
Fix: A single response can contain openly licensed and non-commercial content side by side. Track which block each value came from before redistributing.
MyDisease.info API — frequently asked questions
Is MyDisease.info free?
The service is free with no key or registration. The data is another matter: each source block keeps its upstream licence, and several are non-commercial, so check the terms of the specific sources you use rather than assuming the whole document is open.
How do I annotate many diseases at once?
POST to the `/v1/disease` endpoint with `ids` as a comma-separated list of up to 1000 identifiers plus a `fields` parameter. Looping over single lookups is what triggers throttling.
What is the difference between this and MyGene.info?
They are siblings built on the same BioThings platform with identical query mechanics. MyGene aggregates gene annotation; MyDisease aggregates disease annotation. If you know one, you already know how to use the other.
Can I use the ancestors and children arrays to classify diseases?
Yes, that is their purpose. Ancestors let you roll a specific diagnosis up to a broader category and children let you expand a category to its members — both standard operations when normalising disease labels across datasets.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
MyDisease.info is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.