descendants: Get all descendants of a term

API: ac.uk:embl-ebi-ontology-lookup-service-ols-api
Endpoint: /ontologies/{ontologyId}/terms/{iri}/descendants
Response format: text/html
Charset: utf-8
Auth: none
Method: GET
Last Status: 400
Latency: 217ms

Description

Returns a paginated list of all descendant terms (transitive subclasses) of a specific term.

Parameters (2)

iri (string, path, required)

URL-encoded IRI of the term

ontologyId (string, path, required)

The ontology ID

Examples (3)

Get descendants of GO biological_process term curl
curl 'https://www.ebi.ac.uk/ols4/api/ontologies/go/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FGO_0008150/descendants' \
  -d '"<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"'
import requests

resp = requests.get(
    "https://www.ebi.ac.uk/ols4/api/ontologies/go/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FGO_0008150/descendants",
    json="<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>",
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("embl-ebi-ontology-lookup-service-ols")
result = api.fetch("ontologies/{ontologyId}/terms/{iri}/descendants")

for item in result:
    print(item)
const body = "<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>";

const resp = await fetch("https://www.ebi.ac.uk/ols4/api/ontologies/go/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FGO_0008150/descendants", {
  body: JSON.stringify(body),
});
const data = await resp.json();
Get descendants of HP Phenotypic abnormality term curl
curl 'https://www.ebi.ac.uk/ols4/api/ontologies/hp/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FHP_0000118/descendants' \
  -d '"<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"'
import requests

resp = requests.get(
    "https://www.ebi.ac.uk/ols4/api/ontologies/hp/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FHP_0000118/descendants",
    json="<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>",
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("embl-ebi-ontology-lookup-service-ols")
result = api.fetch("ontologies/{ontologyId}/terms/{iri}/descendants")

for item in result:
    print(item)
const body = "<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>";

const resp = await fetch("https://www.ebi.ac.uk/ols4/api/ontologies/hp/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FHP_0000118/descendants", {
  body: JSON.stringify(body),
});
const data = await resp.json();
Get descendants of MONDO disease root term curl
curl 'https://www.ebi.ac.uk/ols4/api/ontologies/mondo/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FMONDO_0000001/descendants' \
  -d '"<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"'
import requests

resp = requests.get(
    "https://www.ebi.ac.uk/ols4/api/ontologies/mondo/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FMONDO_0000001/descendants",
    json="<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>",
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("embl-ebi-ontology-lookup-service-ols")
result = api.fetch("ontologies/{ontologyId}/terms/{iri}/descendants")

for item in result:
    print(item)
const body = "<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>";

const resp = await fetch("https://www.ebi.ac.uk/ols4/api/ontologies/mondo/terms/http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FMONDO_0000001/descendants", {
  body: JSON.stringify(body),
});
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 01:20:59.472101 400 217ms
2026-04-16 01:01:14.155955 400 208ms
2026-04-16 00:15:16.024130 400 239ms
2026-04-15 01:41:31.665877 400 258ms
2026-04-15 01:28:20.994912 400 244ms
2026-04-15 00:06:56.017624 400 219ms
2026-04-14 03:06:32.345590 400 208ms
2026-04-14 01:05:11.824082 400 226ms
2026-04-14 01:00:53.780928 400 231ms
2026-04-12 16:51:01.147089 400 199ms
2026-04-12 13:13:05.487720 400 193ms
2026-04-12 12:41:22.210562 400 191ms
2026-04-10 04:16:55.647304 400 196ms
2026-04-10 01:27:26.822900 400 334ms
2026-04-10 01:04:50.939973 400 136ms
2026-04-09 02:04:44.737912 400 246ms
2026-04-09 01:51:04.506694 400 1046ms
2026-04-09 00:34:19.770554 400 277ms
2026-04-08 07:45:04.196461 400 208ms
2026-04-08 07:07:20.494007 400 198ms
2026-04-08 00:22:19.864758 400 250ms
2026-04-07 00:38:08.548916 400 210ms
2026-04-07 00:30:55.016995 400 227ms
2026-04-07 00:26:18.030247 400 209ms
2026-04-05 21:04:00.651589 400 379ms
2026-04-05 20:04:31.962374 400 333ms
2026-04-05 19:34:52.956779 400 225ms
2026-03-23 10:22:38.164446 400 145ms
2026-03-23 10:21:37.318007 400 154ms
2026-03-23 09:12:00.077616 400 134ms