Domains
A domain is the top, broadest level of OpenAlex’s four-level classification hierarchy: 4 domains → 26 fields → 252 subfields → 4,516 topics. There are only four domains — Life Sciences, Social Sciences, Physical Sciences, and Health Sciences — and each gathers a set of fields beneath it. A domain’s OpenAlex ID is a single digit, e.g. 1 for Life Sciences; fetch one at api.openalex.org/domains/1. Domains are the coarsest of OpenAlex’s aboutness signals — highly familiar, low granularity — see that page to choose the right level for your question.
How we build it
Domains aren’t classified on their own — they’re the top level of the same hierarchy topics are built from. Each of the ~4,500 topics maps up through a subfield and field to one of the four domains, following Scopus’s ASJC categories, and a work “belongs to” a domain through the topics assigned to it. The four domain labels are standardized, but a work lands in one only because a machine-learning model inferred its topic from the work’s text — which is why domains, like the rest of the hierarchy, live under Aboutness rather than Vocabulary. See Topics → How we build it for the full pipeline.
A work’s primary domain is the domain of its primary_topic. To find works in a domain, filter Works by topics.domain.id (any assigned topic’s domain) or primary_topic.domain.id (the primary only). Domains are the top of the tree — there’s no level above them; one level down is a set of fields.
Fields
This is the canonical dictionary of every field on a domain object. Fields shared with other entities (id, ids, display_name, works_count, cited_by_count, created_date, updated_date) are documented once on Common fields; domain-specific notes are below.
id
String. The OpenAlex ID for this domain, e.g. https://openalex.org/domains/1. Domains use a bare single-digit numeric ID (1–4), not the letter-prefixed scheme. See Common fields.
ids
Object. External identifiers for this domain, as URIs: openalex, plus wikidata and wikipedia where a matching article exists.
display_name
String. The domain’s name — one of “Life Sciences,” “Social Sciences,” “Physical Sciences,” or “Health Sciences.” See Common fields.
display_name_alternatives
List. Other names the domain is known by (e.g. “bioscience,” “biological science disciplines” for Life Sciences), for matching and search.
description
String. A short description of what the domain covers.
fields
List. The fields that belong to this domain (id, display_name) — the level directly below it in the hierarchy.
siblings
List. The other three domains (id, display_name), for navigating laterally across the classification.
works_count
Integer. How many works fall in this domain (through their assigned topics). See Common fields.
cited_by_count
Integer. Total citations across all works in this domain. See Common fields.
works_api_url
String. A ready-made Works API URL for every work in this domain, e.g. https://api.openalex.org/works?filter=topics.domain.id:1. A convenience link; work IDs aren’t stored on the domain object.
created_date
String. The date this domain was added to OpenAlex (YYYY-MM-DD). See Common fields.
updated_date
String. The ISO 8601 UTC timestamp of the last change to the domain object. See Common fields.
In the API
The Domains endpoint is at api.openalex.org/domains. Fetch a single domain by ID — /domains/1 — or a list; with only four domains, one unfiltered request returns them all. You can still filter, search, sort, group, and page over them.
You can filter and group domains by fields.id, and by works_count, cited_by_count, id, and display_name, all of which also sort. Full-text matching uses the search parameter (the older display_name.search filter is deprecated). To find works in a domain, use the Works endpoint: filter=primary_topic.domain.id:1 (primary only) or filter=topics.domain.id:1 (any assigned topic). See the Domains API reference and the endpoints index.