In the modern world, the sheer volume of information available to us on the internet sometimes makes it difficult to quickly and easily gather the data we're really looking for. Luckily, a number of scholarly publishers and vendors offer APIs that can allow users with basic programming skills to successfully parse large volumes of information into a more usable format.
What is an API?
API stands for application program interface. An API is a set of guidelines that allows a user to interface with and request data from a third party application. Scholarly APIs offer valuable "back end" access to data that might not be easy--or even possible--to gather from the normal user interface. APIs are particularly useful when you want to extract a large amount of data programmatically.
Interested in using scholarly APIs, but not sure how to get started? Check out this how-to guide for instructions on how to begin, even if you don't have a background in programming.
What is text data mining?
Text data mining refers to the process of extracting useful and brief information from large volumes of text. Because of the sheer number of articles that are available to us on the internet, we rely on computers to extract relevant information from their contents.
Often we rely on APIs in order to extract the data that we want to mine. Because of the licensing agreements Purdue has with various publishers, using text scrapers or crawlers is typically prohibited, and users must employ the publisher's API in order to access this information.
|arXiv||Provides access to metadata and article abstracts for the e-prints hosted on arXiv.org.||HTTP GET||Atom 1.0||30,000 results per call; 2,000 items in Atom||none||arXiv help|
|CrossRef||Provides access to metadata records with CrossRef DOIs, covering about 75 million scholarly works from around 5000 publishers.||HTTP GET||JSON||no specific limitations, however they reserve the right to limit or block disruptive use||none||CrossRef support|
|Digital Public Library of America||Provides metadata on items and collections indexed by the DPLA. Also includes partner data from Harvard, New York Public Library, ARTstor, and others.||HTTP GET||JSON-LD||no specific limitations, however they reserve the right to limit or block disruptive use||key firstname.lastname@example.org|
|HathiTrust (Bibliographic API)||Provides bibliographic and rights information for items in the HathiTrust Digital Library. Please note that this API is not intended for bulk-retrieval of records.||HTTP GET||MARC-XML, JSON||no specific limitations, however only intended for small numbers of email@example.com|
|HathiTrust (Data API)||Provides access to HathiTrust and Google digitized texts of public domain works.||rsync||XML, JSON||no specific limits, however please see their policies on data use||key firstname.lastname@example.org|
|IEEE Xplore||Provides metadata for IEEE Xplore articles.||HTTP GET||XML||200 results per query||key required; must subscribe to or be a member of an institution that subscribes to IEEE Xploreemail@example.com|
|JSTOR||Not a true API, but provides access to full text of documents available on JSTOR for computational purposes.||Web Interface||CSV||25,000 documents per dataset; users requiring more may contact JSTOR directly||on-site registration firstname.lastname@example.org|
|National Library of Medicine||NLM offers 29 separate APIs for accessing a wide variety of content from various NLM databases.||varies||varies||varies||varies||varies|
|OECD||Provides access to a selection of OECD datasets.||HTTP GET||SDMX-JSON||1,000,000 results per query; URL length of 1,000 characters||none||OECD.Stats help|
|PubMed||Provides access to the information stored in 38 NCBI databases.||HTTP GET||XML||3 requests per second||none required, but registration is email@example.com|
|ScienceDirect and Scopus||Provides access to full-text content from ScienceDirect and Scopus, as well as seven other APIs with various functionalities.||varies||varies||no specific limits, however please see their policies on data use||key firstname.lastname@example.org|
|Springer Nature Metadata API||Provides access to metadata for online Springer Nature documents.||HTTP GET||JSON, Prism Aggregate (PAM)||no specific limitations, however they request that downloads be kept to a reasonable rate||key email@example.com|
|Springer Nature Open Access API||Provides access to both metadata and full-text content for open access Springer Nature documents||HTTP GET||JSON, Prism Aggregate (PAM)||no specific limitations, however they request that downloads be kept to a reasonable rate||key firstname.lastname@example.org|
|UN Comtrade||Provides access to data and metadata from the UN Comtrade database.||HTTP GET||SDMX||1 query per second; 100 queries per hour; 100,000 records per query||some access is IP-authenticated; IP address must be associated with a subscribing email@example.com|
|Web of Science||Provides access to metadata and record information within the Web of Science Core Collection.||SOAP||XML||depends on host institution's subscriptions||must subscribe or be associated with an institution with a subscription||Web of Science support|
The information in this table was partially adapted from MIT's APIs for Scholarly Resources LibGuide by Mark Clemente.