CORE API R client

CORE API docs:

Get an API key at You’ll need one, so do this now if you haven’t yet. Once you have the key, you can pass it into the key parameter, or as a much better option store your key as an environment variable with the name CORE_KEY or an R option as core_key. See ?Startup for how to work with env vars and R options

About CORE

CORE’s tagline is: “Aggregating the world’s open access research papers”

CORE offers seamless access to millions of open access research papers, enrich the collected data for text-mining and provide unique services to the research community.

For more infos on CORE, see



Development version


high- vs. low-level interfaces

Each function has a higher level interface that does HTTP request for data and parses the JSON using jsonlite. This is meant for those who want everything done for them, but there’s a time penalty for as the parsing adds extra time. If you just want raw JSON unparsed text, you can use the low level interface.

The low level version of each function has _ at the end (e.g., core_search_), while the high level version doesn’t have the _ (e.g., core_search).

The high level version of each function uses the low level method, and the low level method does all the logic and HTTP requesting, whereas the high level simply parses the output.


core_articles(id = 21132995)
#> $status
#> [1] "OK"
#> $data
#> $data$id
#> [1] "21132995"
#> $data$authors
#> list()

Article history

core_articles_history(id = '21132995')
#> $status
#> [1] "OK"
#> $data
#>              datetime
#> 1 2016-08-03 00:13:41
#> 2 2014-10-22 16:42:14


core_journals(id = '2220-721X')

Get PDFs

The _ for these methods means that you get a file path back to the PDF, while the high level version without the _ parses the pdf to text for you.