Before diving into the API, it helps to understand a few core concepts that underpin everything in OpenAlex.Documentation Index
Fetch the complete documentation index at: https://developers.openalex.org/llms.txt
Use this file to discover all available pages before exploring further.
Entity Types
OpenAlex describes scholarly research as a graph of interconnected entities. There are eight entity types:Counts are approximate and change as new data is added. Use
/works?per_page=1 (etc.) for current counts.| Entity | Description | Approx. Count |
|---|---|---|
| Works | Scholarly documents (articles, books, datasets, theses) | hundreds of millions |
| Authors | Researchers who create works | tens of millions |
| Sources | Where works are hosted (journals, repositories, conferences) | 250K+ |
| Institutions | Organizations where authors are affiliated | 110K+ |
| Topics | Subject classifications (4-level hierarchy) | 4.5K |
| Publishers | Organizations that distribute works | 10K+ |
| Funders | Organizations that fund research | 35K+ |
| Countries | Geographic information (countries, continents) | — |
/works, /authors).
Topic Hierarchy
Topics are organized in a four-level hierarchy:
Every work is assigned a
primary_topic which includes the full hierarchy path. You can filter by any level: filter=primary_topic.domain.id:1, filter=primary_topic.field.id:17, etc.
OpenAlex IDs
Every entity in OpenAlex has a unique OpenAlex ID. It’s a URL formatted like this:ID Structure
The ID has two parts:- Base: Always
https://openalex.org/ - Key: A letter prefix + numeric ID (e.g.,
W2741809807)
| Prefix | Entity |
|---|---|
| W | Work |
| A | Author |
| S | Source |
| I | Institution |
| T | Topic |
| K | Keyword |
| P | Publisher |
| F | Funder |
| G | Award (Grant) |
| C | Concept (deprecated) |
W2741809807 and w2741809807 are equivalent.
Using IDs in the API
You can use just the key portion when making API calls:Resolve IDs
When you want to find works by a specific author, institution, journal, or topic, use the two-step pattern:- Search for the entity to get its OpenAlex ID
- Filter works using that ID
The Two-Step Pattern
Step 1: Search for the Entity Use the search endpoint for the entity type:Common Lookups
Find Works by Author NameWhen You Have External IDs
If you already have an external identifier (DOI, ORCID, ROR, ISSN), you can skip the search step and use the ID directly:Decision Guide
| Input Type | What to Do |
|---|---|
| Name (ambiguous) | Search first, then filter by ID |
| ORCID | Use directly: authorships.author.id:https://orcid.org/... |
| ROR | Use directly: authorships.institutions.id:https://ror.org/... |
| DOI | Get work directly: /works/https://doi.org/... |
| ISSN | Get source by ISSN, then filter by source ID |
| OpenAlex ID | Use directly: authorships.author.id:A123456 |
Handling Ambiguous Results
When searching returns multiple matches, you need to pick the right one: Use Additional Filters Narrow down the search:display_name, works_count, cited_by_count, and institutional affiliations to identify the right entity.
Use Autocomplete for Interactive UIs
The autocomplete endpoint is fast and returns ranked results:
Filter Field Reference
| To find works by… | Filter field |
|---|---|
| Author | authorships.author.id |
| Author’s institution | authorships.institutions.id |
| Primary source (journal) | primary_location.source.id |
| Any source | locations.source.id |
| Topic | topics.id or primary_topic.id |
| Publisher | primary_location.source.host_organization |
| Funder | funders.id |
Example: Complete Workflow
Find highly-cited papers about machine learning from MIT in the last 3 years:External IDs
You can also retrieve entities using external IDs like DOIs, ORCIDs, and RORs:Canonical External IDs
Each entity type has a “canonical” external ID—the most widely adopted identifier for that type:| Entity | Canonical ID |
|---|---|
| Works | DOI |
| Authors | ORCID |
| Sources | ISSN-L |
| Institutions | ROR |
| Topics | Wikidata ID |
| Publishers | Wikidata ID |
Merged IDs
Sometimes we merge duplicate entities (e.g., two author records for the same person). If you request a merged ID, you’ll be redirected to the new ID:Dehydrated Objects
When entities are nested inside other entities, they’re often returned in dehydrated form—a stripped-down version with only essential fields. For example, a Work’sauthorships field contains dehydrated Author objects:
XPAC (Expansion Pack)
In November 2025, OpenAlex added 190+ million new works as part of an expansion called XPAC (part of the Walden rewrite). This includes:- All of DataCite
- Thousands of institutional and subject-area repositories
- Primarily datasets and repository records
Why XPAC Works Are Excluded by Default
XPAC works have lower data quality on average (improving over time). To avoid surprising users with sudden changes in result counts and quality, XPAC works are excluded by default.Including XPAC Works
Addinclude_xpac=true to any works endpoint:
Filtering by XPAC
Each work has anis_xpac boolean field:
Query Parameter Naming
OpenAlex uses snake_case for all query parameters:
filter, sort, group_by, per_page, api_key, etc.What’s Next?
- Filtering — Filter results by any field
- Searching — Full-text and semantic search
- Authentication — API keys and pricing