search parameter finds results matching a given text search. Search requests cost **0.10 per 1,000 for list/filter requests). See pricing.
What gets searched
Each entity type searches different fields:| Entity | Searchable fields |
|---|---|
| Works | title, abstract, fulltext |
| Authors | display_name, display_name_alternatives |
| Sources | display_name, alternate_titles, abbreviated_title |
| Institutions | display_name, display_name_alternatives, display_name_acronyms |
| Topics/Keywords | display_name, description |
Text processing
OpenAlex uses stemming and removes stop words to improve results:- Words like “the” and “an” are removed
- A search for “possums” also returns “possum”
- Searches match whole words only (“lun” won’t match “lunar”)
Exact (unstemmed) search
Usesearch.exact to search without stemming:
Only one search parameter is allowed per request:
search, search.exact, or search.semantic.Boolean search
UseAND, OR, NOT (uppercase) for complex queries. Surround phrases with double quotes for exact matching:
Words not separated by boolean operators are treated as
AND.Phrase and proximity search
Phrase matching
Use double quotes to search for an exact phrase. Multi-word searches without quotes rank results higher when words appear close together.Proximity search
Append~N to a quoted phrase to find the words within N positions of each other, without requiring an exact match:
Wildcards and fuzzy search
Wildcards
Use* to match zero or more characters and ? to match exactly one character:
- Trailing wildcard:
machin*matches “machine”, “machines”, “machinery” - Single-character wildcard:
wom?nmatches “woman” and “women”
*ology) are not supported.
Fuzzy search
Append~N to a term to allow up to N character edits (insertions, deletions, or substitutions). The edit distance N can be 0, 1, or 2:
~. This is useful for catching typos and spelling variations.
Relevance score
Search results include arelevance_score property and are sorted by it (descending) by default. The score is based on:
- Text similarity to your search term
- Citation count (more cited = higher score)
Keyword vs. semantic search
| Use keyword search when… | Use semantic search when… |
|---|---|
| You know the exact terms | You want conceptually related works |
| You need filters/sorting | You’re exploring a new research area |
| You want specific fields | Your query is a sentence or paragraph |
Legacy: filter-based search
The.search filter suffix searches a specific field rather than all searchable fields at once:
default.search filter is equivalent to the search query parameter. Variants like .search.exact (unstemmed) and .search.no_stem also exist for some fields.
These filter-based searches cost the same $1 per 1,000 requests. For autocomplete use cases, use the autocomplete endpoint instead.