Skip to main content
Before diving into the API, it helps to understand a few core concepts that underpin everything in OpenAlex.

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.
Each entity type has its own API endpoint (e.g., /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:
  1. Base: Always https://openalex.org/
  2. Key: A letter prefix + numeric ID (e.g., W2741809807)
The letter prefix indicates the entity type: IDs are case-insensitive: W2741809807 and w2741809807 are equivalent.

Using IDs in the API

You can use just the key portion when making API calls:

Resolve IDs

Don’t filter by names directly. Entity names are ambiguous—“MIT” could match multiple institutions, “Smith” matches thousands of authors. Always resolve names to IDs first.
When you want to find works by a specific author, institution, journal, or topic, use the two-step pattern:
  1. Search for the entity to get its OpenAlex ID
  2. Filter works using that ID
This avoids hallucinated filters and ensures you get the right entity.

The Two-Step Pattern

Step 1: Search for the Entity Use the search endpoint for the entity type:
The response includes IDs you can use:
Step 2: Filter Works by ID Use the ID to filter works:

Common Lookups

Find Works by Author Name
Find Works by Institution Name
Find Works by Journal Name
Find Works by Topic

When 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

Handling Ambiguous Results

When searching returns multiple matches, you need to pick the right one: Use Additional Filters Narrow down the search:
Check Display Name and Metadata Look at 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

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:

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:
Most HTTP clients handle this automatically.

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’s authorships field contains dehydrated Author objects:
To get the full entity, make a separate request using the ID:

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

Add include_xpac=true to any works endpoint:

Filtering by XPAC

Each work has an is_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?