openalexR (development version)
- Recorded OpenAlex’s new
apc_usd_by_yearfield for thesourcesentity inoa2df_coverage. It is listed as a known field thatoa2df()does not surface, soget_coverage("sources")no longer under-reports the API. - Dropped support for the
mailtopolite pool, which OpenAlex retired in February 2026 and now ignores.oa_email()and theopenalexR.mailtooption are gone, andmailtois no longer sent to the API. Themailtoargument ofoa_fetch(),oa_request()andoa_snowball()is kept as a deprecated no-op that warns – removing it outright would turnmailto =into a silent, bogus filter, sinceoa_fetch()collects filters via.... Useoptions(openalexR.apikey = )instead. -
show_works()andshow_authors()no longer fail withincorrect number of dimensionswhen givenNULL– which is whatoa_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 theRetry-Afterheader when the API sends one. Configure withoptions(openalexR.max_tries = )(default 3, max 10) andoptions(openalexR.max_wait = )(default 30 seconds), or the equivalentopenalexR.max_tries/openalexR.max_waitenvironment variables. SetopenalexR.max_tries = 1to disable retrying (#368). - Failed HTTP requests (429, 503, and other non-200 statuses) now emit a warning rather than a message, so they are no longer easy to miss in scripts, reports, and knitted documents. If you relied on
suppressMessages()to quiet these, usesuppressWarnings()instead (#368). -
oa_request()now warns when the API returns an empty body instead of quietly returning an empty list (#368). - Fixed HTTP error handling for paged requests: a 4xx/5xx or 503 response during paging previously raised an internal
jsonliteerror instead of the intended OpenAlex error message. - Fixed
oa_fetch()discarding results when the first chunk of a filter with more than 50 values came back empty. - The pkgdown articles are now precomputed from
.Rmd.origsources, so building the documentation site no longer calls the OpenAlex API. RunRscript data-raw/precompute-articles.R(or theprecompute-articlesGitHub Action) after editing an article (#368). -
sources2df()now includes the newis_preprint_repositoryfield returned by the OpenAlex sources endpoint.
openalexR 3.1.0
CRAN release: 2026-07-03
- New
oa_options()constructor for building theoptionsargument ofoa_fetch()andoa_query(). It provides argument autocompletion, defaults, and validation (e.g. catches misspelled options and out-of-rangesample/per_page), while a plainlist()is still accepted for backward compatibility (#182). - Paging parameters
per_page,paging, andpagesare now set throughoptions = oa_options(...). Passing them as top-level arguments tooa_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.
openalexR 3.0.0
CRAN release: 2026-01-10
- Updates for new OpenAlex Walden
data-version=2 - Add cli to Imports
openalexR 2.0.0
CRAN release: 2025-04-05
-
Breaking changes in column names in the output of
oa_fetch:- Works:
-
sois nowsource_display_name -
so_idis nowsource_id -
host_organizationnow contains the id of the host organization -
host_organization_namenow contains the name of the host organization -
abis nowabstract -
urlis nowlanding_page_url -
authoris nowauthorships - the nested columns under
authorsno longer have theauprefix - New columns:
fwci,referenced_works_count,keywords
-
- Authors:
-
affiliation*is removed - New columns:
last_known_institutions,2yr_mean_citedness,h_index,i10_index
-
- Works:
Removed
conceptsas an entityAdded
keywordsas an entityAdded
get_coverage()to track the oa2df-mapped columns of OpenAlex fieldsDeprecated
oa2bibliometrix(). Usebibliometrix::convert2df()(from the bibliometrix R package) instead.
openalexR 1.4.0
CRAN release: 2024-07-11
- “topics” are now a valid entity in oa_fetch
- The column “topics” replaces concepts in most entities’ returned dataframes
- For Works, “topics” and “concepts” are now returned as separate columns
openalexR 1.3.0
CRAN release: 2024-05-03
- Breaking change: two arguments in
oa_snowballare renamed:citing_filteris nowciting_params, andcited_by_filteris nowcited_by_params. - Introduced
oa_generate: A generator function to make request to OpenAlex API and returns one record at a time. - Fixed queries with
group_by. - Improved paging control: the user can now specify the
pagesthey want inoa_fetchoroa_request. - Improve
oa_snowballperformance. - Allowed the use of
options$samplewithsearch. - “venues” is no longer a valid value for
entity. Use “sources” instead.
openalexR 1.2.1
CRAN release: 2023-09-01
- many improvements in bibliometrix support
- solved issue with CRAN test
openalexR 1.2.0
CRAN release: 2023-08-08
- many improvements in oa_snowball
- added new openalex entities
- solved CRAN issue about packageVersion()
openalexR 1.1.0
CRAN release: 2023-05-04
- Basic paging is applied when using options$sample
- Bug fixes for rbind in oa2df
openalexR 1.0.2.9
CRAN release: 2023-04-01
- Breaking change: Reorder of the first two arguments in
oa_fetch:entitynow comes beforeidenfitifier. This should not affect your workflow too much unless you have been getting article information from OpenAlex IDs. - new arguments to
oa_fetch:sampleandseedallows the user to download a random subset of the entities instead of the entire set. -
oa_ngramsgets you N-grams of works -
abstractnow defaults to TRUE to avoid issues. - New argument to oa_fetch: api_key
- Arguments sample, seed, sort, and select are now grouped into
options. - Bug fixes
- Improved documentation: group functions in Reference, details on search, etc.
openalexR 1.0.0
CRAN release: 2022-10-06
- Breaking change: now uses a more canonical way to filter #7.
- In
oa_fetch,abstractnow defaults to FALSE to save compute/query time/space. You will need to setabstract = TRUEto retrieve abstracts for the articles. - Added website, hex.
- Added tests.
- Added R CMD CHECK as a GH Action
- Bug fixes.
- Added vignettes.
