Filter works

It's easy to filter works with the filter parameter:

In this example the filter is publication_year and the value is 2020.

It's best to read about filters before trying these out. It will show you how to combine filters and build an AND, OR, or negation query.

/works attribute filters

You can filter using these attributes of the Work object (click each one to view their documentation on the Work object page):

The host_venue and alternate_host_venues properties have been deprecated in favor of primary_location and locations. The attributes host_venue and alternate_host_venues are no longer available in the Work object, and trying to access them in filters or group-bys will return an error.

Want to filter by the display_name of an associated entity (author, institution, source, etc.)? See here.

/works convenience filters

These filters aren't attributes of the Work object, but they're handy for solving some common use cases:

abstract.search

Text search using abstracts

Value: a search string

Returns: works whose abstract includes the given string. See the search page for details on the search algorithm used.

authors_count

Number of authors for a work

Value: an Integer

Returns: works with the chosen number of authorships objects (authors). You can use the inequality filter to select a range, such as authors_count:>5.

authorships.institutions.continent (alias: institutions.continent)

Value: a String with a valid continent filter

Returns: works where at least one of the author's institutions is in the chosen continent.

authorships.institutions.is_global_south (alias: institutions.is_global_south)

Value: a Boolean (true or false)

Returns: works where at least one of the author's institutions is in the Global South (read more).

best_open_version

Value: a String with one of the following values:

  • any: This means that best_oa_location.version = submittedVersion, acceptedVersion, or publishedVersion

  • acceptedOrPublished: This means that best_oa_location.version can be acceptedVersion or publishedVersion

  • published: This means that best_oa_location.version = publishedVersion

Returns: works that meet the above criteria for best_oa_location.

cited_by

Value: the OpenAlex ID for a given work

Returns: works found in the given work's referenced_works section. You can think of this as outgoing citations.

cites

Value: the OpenAlex ID for a given work

Returns: works that cite the given work. This is works that have the given OpenAlex ID in the referenced_works section. You can think of this as incoming citations.

The number of results returned by this filter may be slightly higher than the work'scited_by_countdue to a timing lag in updating that field.

concepts_count

Value: an Integer

Returns: works with the chosen number of concepts.

default.search

Text search across titles, abstracts, and full text of works

Value: a search string

This works the same as using the search parameter for Works.

display_name.search (alias: title.search)

Text search across titles for works

Value: a search string

Returns: works whosedisplay_name (title) includes the given string; see the search page for details.

For most cases, you should use the search parameter instead of this filter, because it uses a better search algorithm and searches over abstracts as well as titles.

from_created_date

Value: a date, formatted as yyyy-mm-dd

Returns: works with created_date greater than or equal to the given date.

This field requires an OpenAlex Premium subscription to access. Click here to learn more.

from_publication_date

Value: a date, formatted as yyyy-mm-dd

Returns: works with publication_date greater than or equal to the given date.

Filtering by publication date is not a reliable way to retrieve recently updated and created works, due to the way publishers assign publication dates. Use from_created_date or from_updated_date to get the latest changes in OpenAlex.

from_updated_date

Value: a date, formatted as an ISO 8601 date or date-time string (for example: "2020-05-17", "2020-05-17T15:30", or "2020-01-02T00:22:35.180390").

Returns: works with updated_date greater than or equal to the given date.

This field requires an OpenAlex Premium subscription to access. Click here to learn more.

Learn more about using this filter to get the freshest data possible with our Premium How-To.

fulltext.search

Value: a search string

Returns: works whose fulltext includes the given string. Fulltext search is available for a subset of works, obtained either from PDFs or n-grams, see Work.has_fulltext for more details.

We combined some n-grams before storing them in our search database, so querying for an exact phrase using quotes does not always work well.

has_abstract

Works that have an abstract available

Value: a Boolean (true or false)

Returns: works that have or lack an abstract, depending on the given value.

has_doi

Value: a Boolean (true or false)

Returns: works that have or lack a DOI, depending on the given value. It's especially useful for grouping.

has_oa_accepted_or_published_version

Value: a Boolean (true or false)

Returns: works with at least one of the locations has is_oa= true and version is acceptedVersion or publishedVersion. For Works that undergo peer review, like journal articles, this means there is a peer-reviewed OA copy somewhere. For some items, like books, a published version doesn't imply peer review, so they aren't quite synonymous.

has_oa_submitted_version

Value: a Boolean (true or false)

Returns: works with at least one of the locations has is_oa= true and version is submittedVersion. This is useful for finding works with preprints deposited somewhere.

has_orcid

Value: a Boolean (true or false)

Returns: if true it returns works where at least one author or has an ORCID ID. If false, it returns works where no authors have an ORCID ID. This is based on the orcid field within authorships.author. Note that, sometimes, we assign ORCID using author disambiguation, so this does not necessarily mean that the work itself has ORCID information.

has_pmcid

Value: a Boolean (true or false)

Returns: works that have or lack a PubMed Central identifier (pmcid) depending on the given value.

has_pmid

Value: a Boolean (true or false)

Returns: works that have or lack a PubMed identifier (pmid), depending on the given value.

has_ngrams (DEPRECATED)

Works that have n-grams available to enable full-text search in OpenAlex.

This filter has been deprecated. See instead: has_fulltext.

Value: a Boolean (true or false)

Returns: works for which n-grams are available or unavailable, depending on the given value. N-grams power fulltext searches through the fulltext.search filter and the search parameter.

has_references

Value: a Boolean (true or false)

Returns: works that have or lack referenced_works, depending on the given value.

journal

Value: the OpenAlex ID for a given source, where the source is type: journal

Returns: works where the chosen source ID is the primary_location.source.

locations.source.host_institution_lineage

Value: the OpenAlex ID for an Institution

Returns: works where the given institution ID is in locations.source.host_organization_lineage

locations.source.publisher_lineage

Value: the OpenAlex ID for a Publisher

Returns: works where the given publisher ID is in locations.source.host_organization_lineage

mag_only

Value: a Boolean (true or false)

Returns: works which came from MAG (Microsoft Academic Graph), and no other data sources.

MAG was a project by Microsoft Research to catalog all of the scholarly content on the internet. When it was discontinued in 2021, OpenAlex built upon the data MAG had accumulated, connecting and expanding it using a variety of other source. The methods that MAG used to identify and aggregate scholarly content were quite different from most of our other sources, and so the content inherited from MAG, especially works that we did not connect with data from other sources, can look different from other works. While it's great to have these MAG-only works available, you may not always want to include them in your results or analyses. This filter allows you to include or exclude any works that came from MAG and only MAG.

primary_location.source.has_issn

Value: a Boolean (true or false)

Returns: works where the primary_location has at least one ISSN assigned.

primary_location.source.publisher_lineage

Value: the OpenAlex ID for a Publisher

Returns: works where the given publisher ID is in primary_location.source.host_organization_lineage

raw_affiliation_strings.search

This filter used to be named raw_affiliation_string.search, but it is now raw_affiliation_strings.search (i.e., plural, with an 's').

Value: a search string

Returns: works that have at least one raw_affiliation_strings which includes the given string. See the search page for details on the search algorithm used.

Value: the OpenAlex ID for a given work

Returns: works found in the given work's related_works section.

repository

Value: the OpenAlex ID for a given source, where the source is type: repository

Returns: works where the chosen source ID exists within the locations.

You can use this to find works where authors are associated with your university, but the work is not part of the university's repository. 👏

You can also use this as a group_by to learn things about repositories:

title_and_abstract.search

Text search across titles and abstracts for works

Value: a search string

Returns: works whose display_name (title) or abstract includes the given string; see the search page for details.

to_publication_date

Value: a date, formatted as yyyy-mm-dd

Returns: works with publication_date less than or equal to the given date.

to_updated_date

Value: a date, formatted as an ISO 8601 date or date-time string (for example: "2020-05-17", "2020-05-17T15:30", or "2020-01-02T00:22:35.180390").

Returns: works with updated_date less than or equal to the given date.

This field requires an OpenAlex Premium subscription to access. Click here to learn more.

version

Value: a String with value publishedVersion, submittedVersion, acceptedVersion, or null

Returns: works where the chosen version exists within the locations. If null, it returns works where no version is found in any of the locations.

Last updated