show_works() now combines multiple first or last author
names into one string instead of failing during simplification.study_designs and
sustainable_development_goals_aurora), authors
(observed_orcids), and topics
(legacy_keywords), and sources (listed_in).
These fields are recorded as known API fields that oa2df()
does not surface.ids,
primary_topic, topics, and
display_name_alternatives) as list columns, keeping one row
per keyword with the current OpenAlex response format.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.