EBI Ontology Lookup (OLS) Scraper
Pricing
from $3.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
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
sourceUrllinking straight to the OLS4 page for that ontology or term. - Empty fields are always omitted — you never get
nulls.
Modes
| Mode | What it returns | Required input |
|---|---|---|
listOntologies | Metadata for all 280+ ontologies | — |
ontologyTerms | Terms belonging to one ontology | ontologyId (e.g. efo) |
searchTerms | Concepts matching a keyword across ontologies | query (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
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | listOntologies | listOntologies, ontologyTerms, or searchTerms. |
query | string | diabetes | Keyword for searchTerms (e.g. diabetes, apoptosis). |
ontologyId | string | – | Ontology short ID for ontologyTerms (e.g. efo, go, hp, mondo, chebi, uberon, ncit). |
ontologies | string | – | Optional comma-separated ontology IDs to restrict searchTerms (e.g. efo,mondo,hp). |
entityType | select | – | Optional searchTerms filter: class, property, or individual. |
exactMatch | boolean | false | searchTerms — only return exact label/synonym matches. |
includeObsoleteInSearch | boolean | false | searchTerms — set true to return obsolete/deprecated concepts (hidden by default). |
localOnly | boolean | false | searchTerms — set true to return only hits from the ontology that natively defines each concept. |
includeObsolete | boolean | true | ontologyTerms — set false to skip obsolete terms. |
maxItems | integer | 25 | Hard 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
oboIdaccessions (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.