BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://mydisease.info/v1/disease/MONDO:0016575?fields=mondo'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://mydisease.info/v1/disease/MONDO:0016575?fields=mondo", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "_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

ParameterTypeRequiredDescription
idpath segmentRequiredDisease identifier — MONDO, DOID, OMIM or Orphanet CURIEs all resolve. MONDO:0016575
fieldsqueryOptionalComma-separated source blocks to return. Without it you get every source, which is large. mondo
qqueryOptionalOn the `/query` endpoint, a search string or Lucene-style expression. marfan
sizequeryOptionalNumber of hits from `/query`. Defaults to 10. 10
dotfieldqueryOptionalSet 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

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.