apc_usd_by_year field for the sources entity in
oa2df_coverage. It is listed as a known field that oa2df() does not
surface, so get_coverage("sources") no longer under-reports the API.mailto polite pool, which OpenAlex retired in
February 2026 and now ignores. oa_email() and the openalexR.mailto
option are gone, and mailto is no longer sent to the API. The mailto
argument of oa_fetch(), oa_request() and oa_snowball() is kept as a
deprecated no-op that warns -- removing it outright would turn mailto =
into a silent, bogus filter, since oa_fetch() collects filters via ....
Use options(openalexR.apikey = ) instead.show_works() and show_authors() no longer fail with
incorrect number of dimensions when given NULL -- which is what
oa_fetch() returns when a query matches no records or a request fails. They
now warn and return a zero-row tibble, and give an informative error for input
that is not a data frame or is missing required columns (#368).oa_fetch() and friends now retry transient HTTP responses -- 429 (Too Many
Requests) and the 502/503/504 gateway errors -- with exponential backoff,
honoring the Retry-After header when the API sends one. Configure with
options(openalexR.max_tries = ) (default 3, max 10) and
options(openalexR.max_wait = ) (default 30 seconds), or the equivalent
openalexR.max_tries / openalexR.max_wait environment variables. Set
openalexR.max_tries = 1 to disable retrying (#368).suppressMessages()
to quiet these, use suppressWarnings() instead (#368).oa_request() now warns when the API returns an empty body instead of quietly
returning an empty list (#368).jsonlite error instead of the intended
OpenAlex error message.oa_fetch() discarding results when the first chunk of a filter with
more than 50 values came back empty..Rmd.orig sources, so building
the documentation site no longer calls the OpenAlex API. Run
Rscript data-raw/precompute-articles.R (or the precompute-articles GitHub
Action) after editing an article (#368).sources2df() now includes the new is_preprint_repository field returned by
the OpenAlex sources endpoint.oa_options() constructor for building the options argument of
oa_fetch() and oa_query(). It provides argument autocompletion, defaults,
and validation (e.g. catches misspelled options and out-of-range
sample/per_page),
while a plain list() is still accepted for backward compatibility (#182).per_page, paging, and pages are now set through
options = oa_options(...). Passing them as top-level arguments to
oa_fetch() is deprecated but still works (with a warning).oa_fetch() now errors when more than one filter has over 50 values, since
only one such filter can be chunked per call.data-version=2Breaking changes in column names in the output of oa_fetch:
so is now source_display_nameso_id is now source_idhost_organization now contains the id of the host organizationhost_organization_name now contains the name of the host organizationab is now abstracturl is now landing_page_urlauthor is now authorshipsauthors no longer have the au prefixfwci, referenced_works_count, keywordsaffiliation* is removedlast_known_institutions, 2yr_mean_citedness, h_index, i10_indexRemoved concepts as an entity
Added keywords as an entity
Added get_coverage() to track the oa2df-mapped columns of OpenAlex fields
Deprecated oa2bibliometrix(). Use bibliometrix::convert2df()
(from the bibliometrix R package) instead.
oa_snowball are renamed:
citing_filter is now citing_params,
and cited_by_filter is now cited_by_params.oa_generate: A generator function to make request to OpenAlex API
and returns one record at a time.group_by.pages they want in
oa_fetch or oa_request.oa_snowball performance.options$sample with search.entity. Use "sources" instead.oa_fetch: entity now comes before idenfitifier.
This should not affect your workflow too much unless you have been getting article information from OpenAlex IDs.oa_fetch: sample and seed allows the user to download a random subset of the entities instead of the entire set.oa_ngrams gets you N-grams of worksabstract now defaults to TRUE to avoid issues.options.snowball #9.NEWS.md file to track changes to the package.oa_fetch, abstract now defaults to FALSE to save compute/query time/space. You will need to set abstract = TRUE to retrieve abstracts for the articles.