Human Phenotype Ontology through GeneFoundry
Resolve phenotype terminology and explore the Human Phenotype Ontology hierarchy and curated associations.
- Research area
- Ontologies
- Namespace
hpo- Listed tools
- 17
- Upstream source
- Human Phenotype Ontology
Research tasks
- Resolve a phenotype label or synonym to an HP identifier
- Explore parent and descendant terms
- Review disease and gene associations separately from ontology definitions
Start with tool discovery
The catalog lists hpo_resolve_term as a representative tool. After connecting your client, inspect the tools and input requirements returned by the service before submitting a query.
Identifiers to prepare
- Phenotype label or synonym
- HP:NNNNNNN identifier
- External ontology CURIE supported by the resolver
All available tools (17)
The router surfaces these tools namespaced under hpo_*:
get_server_capabilitiesReturn the hpo-link discovery surface: identity/build/HPO release, the tool list WITH call signatures, response modes, recommended workflows, the xref prefixes, the error taxonomy, and limits. detail='full' adds the full policy notes. Call this first in a cold session, or read hpo://tools / hpo://capabilities. Signature: get_server_capabilities(detail=).
Return the hpo-link discovery surface: identity/build/HPO release, the tool list WITH call signatures, response modes, recommended workflows, the xref prefixes, the error taxonomy, and limits. detail='full' adds the full policy notes. Call this first in a cold session, or read hpo://tools / hpo://capabilities. Signature: get_server_capabilities(detail=).
Input parameters
detail(string) — summary (default, light) or full (adds policy notes).
get_diagnosticsReport the local HPO index status: whether the data is built, the loaded HPO and HPOA release versions, term/obsolete/closure/xref/annotation counts, when it was built, and a runtime block (request/error counts and latency percentiles p50/p95/p99). Use this to confirm freshness or diagnose an upstream_unavailable error (an unbuilt/unavailable local index). Signature: get_diagnostics().
Report the local HPO index status: whether the data is built, the loaded HPO and HPOA release versions, term/obsolete/closure/xref/annotation counts, when it was built, and a runtime block (request/error counts and latency percentiles p50/p95/p99). Use this to confirm freshness or diagnose an upstream_unavailable error (an unbuilt/unavailable local index). Signature: get_diagnostics().
resolve_termResolve a phenotype label, synonym, HP id (HP:0000118), or external cross-reference CURIE (UMLS:C0000737, SNOMEDCT_US:263681008, ...) to the canonical HPO term {hpo_id, name, match_type}. An ambiguous label returns ambiguous_query with candidates (each {hpo_id, name}); an obsolete HP id resolves with success:true, obsolete:true, and its successor in replaced_by. This is the recommended first step — resolve any query to a canonical HP id before calling get_term. Signature: resolve_term(query, response_mode=).
Resolve a phenotype label, synonym, HP id (HP:0000118), or external cross-reference CURIE (UMLS:C0000737, SNOMEDCT_US:263681008, ...) to the canonical HPO term {hpo_id, name, match_type}. An ambiguous label returns ambiguous_query with candidates (each {hpo_id, name}); an obsolete HP id resolves with success:true, obsolete:true, and its successor in replaced_by. This is the recommended first step — resolve any query to a canonical HP id before calling get_term. Signature: resolve_term(query, response_mode=).
Input parameters
query(string) [required] — A phenotype label, synonym, HP id (HP:0000118), or external xref CURIE (UMLS:C0036572, SNOMEDCT_US:263681008, ...).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
search_termsFull-text search over HPO phenotype term names, synonyms, and definitions (FTS, relevance-ranked). Returns {hpo_id, name, score} -- compact adds a short definition_snippet; standard/full add the complete definition -- plus a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset advanced) and a widen step. Obsolete terms are excluded unless include_obsolete=true. Signature: search_terms(query, limit=, offset=, include_obsolete=, response_mode=).
Full-text search over HPO phenotype term names, synonyms, and definitions (FTS, relevance-ranked). Returns {hpo_id, name, score} -- compact adds a short definition_snippet; standard/full add the complete definition -- plus a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset advanced) and a widen step. Obsolete terms are excluded unless include_obsolete=true. Signature: search_terms(query, limit=, offset=, include_obsolete=, response_mode=).
Input parameters
include_obsolete(boolean) — Include obsolete terms (default false).limit(integer) — Max hits (default 25).offset(integer) — Rows to skip for forward paging (default 0).query(string) [required] — A phenotype label, synonym, HP id (HP:0000118), or external xref CURIE (UMLS:C0036572, SNOMEDCT_US:263681008, ...).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_termReturn an HPO phenotype term record: definition, synonyms (exact/related/broad/narrow), alt_ids, subsets, comments, cross-references, direct parents and children, and obsolescence (replaced_by). The term accepts an HP id, a label/synonym, or an external xref CURIE (resolved first). Pass fields=['synonyms', 'definition'] for a sparse projection. Note on synonyms shape: compact (default) returns synonyms as plain strings; standard/full return {text, scope} objects. Signature: get_term(hpo_id, response_mode=, fields=).
Return an HPO phenotype term record: definition, synonyms (exact/related/broad/narrow), alt_ids, subsets, comments, cross-references, direct parents and children, and obsolescence (replaced_by). The term accepts an HP id, a label/synonym, or an external xref CURIE (resolved first). Pass fields=['synonyms', 'definition'] for a sparse projection. Note on synonyms shape: compact (default) returns synonyms as plain strings; standard/full return {text, scope} objects. Signature: get_term(hpo_id, response_mode=, fields=).
Input parameters
fields(any) — Sparse fieldset: return ONLY these top-level keys (for map_cross_ontology, dot into the grouped object, e.g. 'mappings.UMLS'). Identity anchors (hpo_id, name, hpo_version) are always included. An unrecognised field is rejected with invalid_input. Omit for the full payload.hpo_id(string) [required] — Canonical HP id for the resolved HPO term (HP:0000118). Legacy `term` arguments are accepted as an alias.response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_term_ancestorsReturn all transitive is_a ancestors (broader phenotype terms) of an HPO term via the precomputed closure, with a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset) so you can walk a >limit closure without re-sending rows. Use get_term_parents for only the immediate parents. Signature: get_term_ancestors(hpo_id, limit=, offset=, response_mode=).
Return all transitive is_a ancestors (broader phenotype terms) of an HPO term via the precomputed closure, with a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset) so you can walk a >limit closure without re-sending rows. Use get_term_parents for only the immediate parents. Signature: get_term_ancestors(hpo_id, limit=, offset=, response_mode=).
Input parameters
hpo_id(string) [required] — Canonical HP id for the resolved HPO term (HP:0000118). Legacy `term` arguments are accepted as an alias.limit(integer) — Max rows returned (default 50).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_term_descendantsReturn all transitive is_a descendants (more specific phenotype terms) of an HPO term via the precomputed closure, with a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset) so you can walk a >limit closure without re-sending rows. Use get_term_children for only the immediate children. Signature: get_term_descendants(hpo_id, limit=, offset=, response_mode=).
Return all transitive is_a descendants (more specific phenotype terms) of an HPO term via the precomputed closure, with a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset) so you can walk a >limit closure without re-sending rows. Use get_term_children for only the immediate children. Signature: get_term_descendants(hpo_id, limit=, offset=, response_mode=).
Input parameters
hpo_id(string) [required] — Canonical HP id for the resolved HPO term (HP:0000118). Legacy `term` arguments are accepted as an alias.limit(integer) — Max rows returned (default 50).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_term_parentsReturn the direct is_a parents (immediate broader phenotype terms) of an HPO term. Use get_term_ancestors for the full transitive set. Signature: get_term_parents(hpo_id, response_mode=).
Return the direct is_a parents (immediate broader phenotype terms) of an HPO term. Use get_term_ancestors for the full transitive set. Signature: get_term_parents(hpo_id, response_mode=).
Input parameters
hpo_id(string) [required] — Canonical HP id for the resolved HPO term (HP:0000118). Legacy `term` arguments are accepted as an alias.response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_term_childrenReturn the direct is_a children (immediate more-specific phenotype terms) of an HPO term. Use get_term_descendants for the full transitive set. Signature: get_term_children(hpo_id, response_mode=).
Return the direct is_a children (immediate more-specific phenotype terms) of an HPO term. Use get_term_descendants for the full transitive set. Signature: get_term_children(hpo_id, response_mode=).
Input parameters
hpo_id(string) [required] — Canonical HP id for the resolved HPO term (HP:0000118). Legacy `term` arguments are accepted as an alias.response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
resolve_xrefResolve an external cross-reference CURIE (UMLS/SNOMEDCT_US/NCIT/MEDDRA/ICD-10/ICD-9/MONDO/DOID/ORPHA) back to the HPO term(s) that cross-reference it. Returns matches[] plus a pagination block {total, returned, limit, offset, truncated, next_offset}; when truncated, next_commands carries a forward-page step (offset). Signature: resolve_xref(xref_id, limit=, offset=, response_mode=).
Resolve an external cross-reference CURIE (UMLS/SNOMEDCT_US/NCIT/MEDDRA/ICD-10/ICD-9/MONDO/DOID/ORPHA) back to the HPO term(s) that cross-reference it. Returns matches[] plus a pagination block {total, returned, limit, offset, truncated, next_offset}; when truncated, next_commands carries a forward-page step (offset). Signature: resolve_xref(xref_id, limit=, offset=, response_mode=).
Input parameters
limit(integer) — Max matches (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).xref_id(string) [required] — An external cross-reference CURIE (prefix:local), e.g. UMLS/SNOMED/NCIT/MEDDRA, to resolve back to the HPO term(s) that cross-reference it.
map_cross_ontologyList an HPO term's cross-references to other ontologies/vocabularies, grouped by target prefix (UMLS/SNOMEDCT_US/NCIT/MEDDRA/ICD-10/ICD-9/MONDO/DOID/ORPHA/EFO/MSH/MESH). Optionally restrict to a subset of prefixes. Signature: map_cross_ontology(hpo_id, prefixes=, response_mode=, fields=).
List an HPO term's cross-references to other ontologies/vocabularies, grouped by target prefix (UMLS/SNOMEDCT_US/NCIT/MEDDRA/ICD-10/ICD-9/MONDO/DOID/ORPHA/EFO/MSH/MESH). Optionally restrict to a subset of prefixes. Signature: map_cross_ontology(hpo_id, prefixes=, response_mode=, fields=).
Input parameters
fields(any) — Sparse fieldset: return ONLY these top-level keys (for map_cross_ontology, dot into the grouped object, e.g. 'mappings.UMLS'). Identity anchors (hpo_id, name, hpo_version) are always included. An unrecognised field is rejected with invalid_input. Omit for the full payload.hpo_id(string) [required] — Canonical HP id for the resolved HPO term (HP:0000118). Legacy `term` arguments are accepted as an alias.prefixes(any) — Restrict to these target prefixes, e.g. ['UMLS','SNOMEDCT_US'].response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_phenotypes_for_geneReturn the HPO phenotype terms annotated to a gene (symbol or NCBI id). Signature: get_phenotypes_for_gene(gene, limit=, offset=, response_mode=).
Return the HPO phenotype terms annotated to a gene (symbol or NCBI id). Signature: get_phenotypes_for_gene(gene, limit=, offset=, response_mode=).
Input parameters
gene(string) [required] — A gene symbol (e.g. 'PAX6') or NCBI gene CURIE (e.g. 'NCBIGene:5080'). Bare NCBI numeric ids (e.g. '5080') are also accepted.limit(integer) — Max phenotypes to return (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_genes_for_phenotypeReturn the genes annotated to an HPO phenotype term, optionally expanded to include descendants. Signature: get_genes_for_phenotype(hpo_id, include_descendants=, limit=, offset=, response_mode=).
Return the genes annotated to an HPO phenotype term, optionally expanded to include descendants. Signature: get_genes_for_phenotype(hpo_id, include_descendants=, limit=, offset=, response_mode=).
Input parameters
hpo_id(string) [required] — Canonical HP id for the resolved HPO phenotype (HP:0000118). Legacy `term` arguments are accepted as an alias.include_descendants(boolean) — When true, unions the term's transitive descendants so genes annotated to any child term are included (default false).limit(integer) — Max genes to return (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_phenotypes_for_diseaseReturn the HPO phenotype terms annotated to a disease CURIE (e.g. OMIM:106210, ORPHA:550). Signature: get_phenotypes_for_disease(disease_id, limit=, offset=, response_mode=).
Return the HPO phenotype terms annotated to a disease CURIE (e.g. OMIM:106210, ORPHA:550). Signature: get_phenotypes_for_disease(disease_id, limit=, offset=, response_mode=).
Input parameters
disease_id(string) [required] — A disease CURIE, e.g. 'OMIM:106210' (MIM Morbid) or 'ORPHA:550' (Orphanet). The prefix is case-sensitive.limit(integer) — Max phenotypes to return (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_diseases_for_phenotypeReturn diseases annotated to an HPO phenotype term, optionally expanded to include descendants. Signature: get_diseases_for_phenotype(hpo_id, include_descendants=, limit=, offset=, response_mode=).
Return diseases annotated to an HPO phenotype term, optionally expanded to include descendants. Signature: get_diseases_for_phenotype(hpo_id, include_descendants=, limit=, offset=, response_mode=).
Input parameters
hpo_id(string) [required] — Canonical HP id for the resolved HPO phenotype (HP:0000118). Legacy `term` arguments are accepted as an alias.include_descendants(boolean) — When true, unions the term's transitive descendants so diseases annotated to any child term are included (default false).limit(integer) — Max diseases to return (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_genes_for_diseaseReturn genes associated with a disease CURIE (e.g. OMIM:106210, ORPHA:550). Signature: get_genes_for_disease(disease_id, limit=, offset=, response_mode=).
Return genes associated with a disease CURIE (e.g. OMIM:106210, ORPHA:550). Signature: get_genes_for_disease(disease_id, limit=, offset=, response_mode=).
Input parameters
disease_id(string) [required] — A disease CURIE, e.g. 'OMIM:106210' (MIM Morbid) or 'ORPHA:550' (Orphanet). The prefix is case-sensitive.limit(integer) — Max genes to return (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
get_diseases_for_geneReturn diseases associated with a gene (symbol or NCBI id). Signature: get_diseases_for_gene(gene, limit=, offset=, response_mode=).
Return diseases associated with a gene (symbol or NCBI id). Signature: get_diseases_for_gene(gene, limit=, offset=, response_mode=).
Input parameters
gene(string) [required] — A gene symbol (e.g. 'PAX6') or NCBI gene CURIE (e.g. 'NCBIGene:5080'). Bare NCBI numeric ids (e.g. '5080') are also accepted.limit(integer) — Max diseases to return (default 25).offset(integer) — Rows to skip for forward paging (default 0).response_mode(string) — Verbosity: minimal|compact|standard|full (default compact).
Database & release provenance
- Data mode
external-reference- Attestation
- attested-reference
- Data release tag
db-v2026-06-23- Release version
v0.4.6
sha256:d677a96efd8c274045241934c33b25dfb6fc9a6414c27bed7ae3334d05d4c9f6ghcr.io/berntpopp/hpo-link@sha256:ecd703a96a43737b2b601b1de14561d79ae56bf8125a9ff9cabe63999feaff5dReview the response
Keep the source record link and submitted identifiers with your notes. Record the dataset version and retrieval date when available. This page does not contain a captured Human Phenotype Ontology response.