EBI Ontology Lookup (OLS) Scraper avatar

EBI Ontology Lookup (OLS) Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
EBI Ontology Lookup (OLS) Scraper

EBI Ontology Lookup (OLS) Scraper

Scrape the EMBL-EBI Ontology Lookup Service (OLS4) - 280+ biomedical and scientific ontologies. List ontologies, browse terms, or search across concepts by keyword. Returns labels, definitions, IRIs, synonyms and identifiers as clean JSON.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Extract biomedical and scientific ontologies and terms from the EMBL-EBI Ontology Lookup Service (OLS4) as clean JSON. OLS aggregates 280+ ontologies — GO, EFO, MONDO, HP, CHEBI, UBERON, NCIT and many more — into one searchable index. No account, no API key, no login.

Ideal for bioinformatics pipelines, knowledge graphs, data annotation, term normalization, medical NLP dictionaries, and research tooling that needs authoritative controlled-vocabulary data.

What this actor does

  • List ontologies — get metadata for every ontology hosted on OLS (title, description, term counts, homepage, version).
  • Browse terms — page through all terms of a chosen ontology, optionally skipping obsolete ones.
  • Search terms — full-text search concepts across all ontologies (or a chosen subset) by keyword.
  • Every record comes with a live sourceUrl linking straight to the OLS4 page for that ontology or term.
  • Empty fields are always omitted — you never get nulls.

Modes

ModeWhat it returnsRequired input
listOntologiesMetadata for all 280+ ontologies
ontologyTermsTerms belonging to one ontologyontologyId (e.g. efo)
searchTermsConcepts matching a keyword across ontologiesquery (e.g. diabetes)

Output

Every record carries recordType, sourceUrl, and scrapedAt (UTC).

Ontology records (mode=listOntologies): ontologyId, title, description, namespace, preferredPrefix, homepage, version, versionIri, status, numberOfTerms, numberOfProperties, numberOfIndividuals, baseUris, languages, mailingList, tracker, loaded, updated.

Term records (mode=ontologyTerms): iri, label, description, ontologyName, ontologyPrefix, ontologyIri, shortForm, oboId, isObsolete, hasChildren, isRoot, isDefiningOntology, synonyms, subsets, crossReferences (each {database, id, url, description}).

Search records (mode=searchTerms): iri, label, description, ontologyName, ontologyPrefix, ontologyIri, shortForm, oboId, entityType, isDefiningOntology, synonyms, exactSynonyms, relatedSynonyms, subsets.

Input

FieldTypeDefaultDescription
modeselectlistOntologieslistOntologies, ontologyTerms, or searchTerms.
querystringdiabetesKeyword for searchTerms (e.g. diabetes, apoptosis).
ontologyIdstringOntology short ID for ontologyTerms (e.g. efo, go, hp, mondo, chebi, uberon, ncit).
ontologiesstringOptional comma-separated ontology IDs to restrict searchTerms (e.g. efo,mondo,hp).
entityTypeselectOptional searchTerms filter: class, property, or individual.
exactMatchbooleanfalsesearchTerms — only return exact label/synonym matches.
includeObsoleteInSearchbooleanfalsesearchTerms — set true to return obsolete/deprecated concepts (hidden by default).
localOnlybooleanfalsesearchTerms — set true to return only hits from the ontology that natively defines each concept.
includeObsoletebooleantrueontologyTerms — set false to skip obsolete terms.
maxItemsinteger25Hard cap on emitted records (1–250000).

Example: search disease concepts across all ontologies

{
"mode": "searchTerms",
"query": "diabetes",
"maxItems": 100
}

Example: search restricted to specific ontologies

{
"mode": "searchTerms",
"query": "diabetes",
"ontologies": "efo,mondo,hp",
"entityType": "class",
"maxItems": 100
}

Example: browse all non-obsolete terms of an ontology

{
"mode": "ontologyTerms",
"ontologyId": "hp",
"includeObsolete": false,
"maxItems": 500
}

Example: catalogue every ontology on OLS

{
"mode": "listOntologies",
"maxItems": 300
}

Example output (search term)

{
"recordType": "term",
"iri": "http://purl.obolibrary.org/obo/HP_0005978",
"label": "Type II diabetes mellitus",
"description": "A type of diabetes mellitus characterized by insulin resistance…",
"ontologyName": "hp",
"ontologyPrefix": "HP",
"shortForm": "HP_0005978",
"oboId": "HP:0005978",
"entityType": "class",
"isDefiningOntology": true,
"synonyms": ["Type 2 diabetes", "NIDDM", "Diabetes mellitus type 2"],
"exactSynonyms": ["Type 2 diabetes", "NIDDM"],
"sourceUrl": "https://www.ebi.ac.uk/ols4/ontologies/hp/classes/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FHP_0005978",
"scrapedAt": "2026-07-02T13:30:24.344658+00:00"
}

Use cases

  • Data annotation — normalize free-text disease/phenotype/anatomy labels to canonical ontology IRIs.
  • Knowledge graphs — ingest ontology terms, synonyms, and identifiers as graph nodes.
  • Medical NLP — build dictionaries and gazetteers from HP, MONDO, DOID and other clinical vocabularies.
  • Bioinformatics pipelines — resolve oboId accessions (e.g. GO:0008150) to labels and definitions.
  • Ontology discovery — catalogue every ontology on OLS with term counts and versions for research.
  • Term normalization — map synonyms to preferred labels across a chosen subset of ontologies.

FAQ

Do I need an account or API key? No. OLS is a free, public service from EMBL-EBI. The actor works out of the box.

Which ontologies are available? All 280+ hosted on OLS — including GO (Gene Ontology), EFO, MONDO, HP (Human Phenotype), CHEBI, UBERON, NCIT, DOID and many more. Run listOntologies to get the full list with IDs.

How do I get every term in an ontology? Use ontologyTerms with the ontologyId and raise maxItems. Large ontologies (e.g. EFO has 90k+ terms) can be capped with maxItems and paged in batches.

What is the oboId vs iri? iri is the full canonical concept URI. oboId (e.g. HP:0005978) is the compact OBO-style accession commonly used in datasets and papers.

Can I limit a search to specific ontologies? Yes — set ontologies to a comma-separated list (e.g. efo,mondo).

Are obsolete terms included? By default searchTerms excludes obsolete concepts; enable includeObsoleteInSearch to retrieve the deprecated ones. In ontologyTerms, set includeObsolete to false to skip obsolete terms.

Data source

This actor uses the public EMBL-EBI Ontology Lookup Service API at https://www.ebi.ac.uk/ols4/api. Ontology content is provided by EMBL-EBI and the individual ontology maintainers under their respective open licenses.