APIs, short for application programming interface, are tools used to share content and data between software applications. APIs are used in a variety of contexts, but some examples include embedding content from one website into another, dynamically posting content from one application to display in another application, or extracting data from a database in a more programmatic way than a regular user interface might allow, such as bulk collection for text mining.
A growing list of scholarly publishers and database vendors offer APIs to allow users with programming skills to more powerfully extract data to serve a variety of research purposes. With an API, users might create programmatic searches of a citation database, or extract statistical data.
Below is a list of commonly used scholarly resources and databases that make their APIs available for use. If you have programming skills and would like to use APIs in your research, use the table below to get an overview of the resources. If you are new to programming, there are many sites, such as Codecademy and Google, that offer "getting started with the [X] API" tutorials.
This guide is not a comprehensive list of available APIs. APIs are also available for popular non-scholarly web resources such as Google Maps, and social media sites such as Twitter. These may be addressed in a future Library Guide. If you have any questions or know of an API you would like to see include in this list, please contact Larry Milliken.
API | What it does |
How is it accessed |
Result format | Registration | Limitations (record numbers, fields accessible) | Contact for technical questions |
arXiv API | Gives programmatic access to all of the arXiv data, search and linking facilities | API calls are made using any web-enabled client (e.g. a web browser) to make an HTTP GET or POST request to an appropriate url. API users can use the programming language of their choice. | Atom | Free to use, no registration or API key required. | No stated limitations, but high-volume users should contact arXiv at http://arxiv.org/help/contact | arXiv Google Group |
BioMed Central API | Retrieves: 1) BMC Latest Articles; 2) BMC Editors picks; 3) Data on article subscription and access; 4) Bibliographic search data | RESTful interface, queries are made as HTTP GET requests | JSON | Free to access, no registration required. | No limitations at present. | info@biomedcentral.com |
Caselaw Access Project | Retrieves: text from more than 6 million law cases published in books beginning 1658CE in text, XML, or HTML formats. | HTTPS GET | JSON. Fulltext in text, XML, or HTML | No authorization needed for most queries, see access limits section for details | No limits for whitelisted jurisdictions, all metadata plus 500 fulltext cases/person/day limit for registered users in non-whitelisted jurisdictions. No limits for registered researchers. | https://case.law/contact/ |
DVN (Dataverse Network) API for Data Sharing | Allows programmatic access to data and metadata in the Dataverse Network and data deposited in other Dataverse Network repositories. Two modules exist: Metadata/Search and Data Access. | HTTPS. A Dataverse community-written software program can also be used to access the API via an RCurl package. | XML; Byte Stream for Data Access requests | Metada access does not require registration. Data set downloads require a user account and agreement to terms of use; users interested in data sets should contact DVN support. Access to restricted data sets requires approval by data owners. | No limitations on public data set downloads after agreeing to terms of use. No limitations on restricted data set downloads after access is granted by data owners. | dvn_support@help.hmdc.harvard.edu; Questions can also be posted in https://groups.google.com/forum/#!forum/dataverse-community |
Digital Public Library of America (DPLA) API | Allows programmatic access to metadata in DPLA collections, including partner data from Harvard, New York Public Library, ARTstor, and others. | RESTful interface | Structured JSON-LD objects | Free to use; API key needed | No limitations at present | codex@dp.la; Users can also submit issues to DPLA's Issue Tracker |
Allows users to download a public domain corpus of non-Google digitized volumes or Google volumes (with agreement). |
Contact form or rsync |
METS XML and txt page files |
Free to use; Contact to request dataset. feedback@issues.hathitrust.org |
Limited to public domain volumes. Agreement needed for certain volumes. |
Contact feedback@issues.hathitrust.org with questions. |
|
IEEE Xplore XML Search API | Allows IEEE customers and 3rd parties such as federated search vendors to query the IEEE Xplore content repository and retrieve results for manipulation and presentation on local web interfaces | HTTP requests using structured URL queries | XML | Must be an IEEE customer (i.e. belong to an institution that subscribes to IEEE Xplore). Contact onlinesupport@ieee.org to receive API user guide. | Maximum of 200 results may be retrieved in a single query. A query term can only contain a maximum of 10 words. | onlinesupport@ieee.org |
JSTOR Data for Research | Not a true API, but allows computational analysis and selection of JSTOR's scholarly journal and primary resource collections Includes tools for faceted searching and filtering, text analysis, topic modeling, data extraction, and visualization. | Web interface | CSV, varies depending on tool used | Free to access, registration is required to obtain results. No institutional affiliation is required. | Datasets are capped by default at 1,000 articles; users seeking larger results are asked to contact JSTOR Data for Research. | http://about.jstor.org/contact |
Nature Blogs API | Blog tracking and indexing service; tracks Nature blogs and other third-party science blogs | RESTful interface, queries are made as HTTP GET requests | Default is JSON, some queries return Atom/RSS, CSV | Free to register, developer account and API key needed; see here. | 2 calls per second; 5,000 calls per day; RSS results are limited to 100 items maximum | developers@nature.com |
Nature OpenSearch API | Bibliographic search service for Nature content | REST API with two interfaces: 1) OpenSearch standard interface using keyword searches; 2) SRU search interface using CQL structed queries | RSS, JSON, ATOM, SRU XML, TURTLE, depending on interface used | Free to register, developer account and API key needed; see here. | 2 calls per second; 5,000 calls per day | developers@nature.com |
NLM APIs | NLM offers 21 different APIs for accessing various NLM databases. | Varies depending on API. | Varies depending on API. | Varies depending on API. | Varies depending on API. | Varies depending on API. |
ORCID API | Queries and searches the ORCID researcher identifier system and obtain researcher profile data |
RESTful interface | HTML, XML, or JSON | Two options: 1) Users can access the Public API,which only returns data marked as "public"; 2) Become an Orcid member to receive API credentials: see here. | Data retrieved through Public API is limited | http://about.orcid.org/help/contact-us |
PLoS Article-Level Metrics API | Retrieves article-level metrics (including usage statistics, citation counts, and social networking activity) for articles published in PLOS journals and articles added to PLOS Hubs: Biodiversity | RESTful interface, queries are made as HTTP GET requests | XML, JSON, CS | Free to register. API key needed. Go to http://api.plos.org/registration/. | Max is 1000 requests a day. Users should wait 5 seconds for each query to return results. High-volume users should contact api@plos.org. API users are limited to no more than five concurrent connections from a single IP address | api@plos.org; Questions can also be posted in PLoS API Google Group |
PLoS Search API | Allows PLoS content to be queried using the 23 terms in the PLoS search, for integration into web, desktop, or mobile applications | RESTful interface, queries are made as HTTP GET requests | XML | Free to register. API key needed. Go to http://api.plos.org/registration/. | Max is 7200 requests a day, 300 per hour, 10 per minute. Users should wait 5 seconds for each query to return results. Requests should not return more than 100 rows. High-volume users should contact api@plos.org. API users are limited to no more than five concurrent connections from a single IP address. | api@plos.org; Questions can also be posted in PLoS API Google Group |
PubMed E-Utilities API | Set of 8 server-side programs for searching 38 NCBI Entrez databases of biomedical literature and data | To access data, a piece of software posts an URL using a fixed sytax to NCBI's E-Utilities server, then retrieves and processes data. Users can use any programming langauge that can send the URL and interpret the XML response (e.g. Perl, Python, Java, C++, etc.) | XML | Free to register; registration is not necessary but strongly encouraged. | 3 URL requests per second; large jobs should be limited to weekends or business hours | eutilities@ncbi.nlm.nih.gov |
ScienceDirect | Supports multiple use cases, including text mining of full-text content, search widgets, displaying journal or book level data, federated searching, and indexing. | Various depending on use case. | Varies depending on use case. | Free to register, visit contact us page to receive an API key. | Varies depending on use case. | http://www.developers.elsevier.com/action/contactus |
Scopus | Supports multiple use cases, including displaying publications on a website, showing cited-by counts on a website, federated searching, populating repositories with metadata, populating VIVO profiles, and others. | Various depending on use case. | Varies depending on use case. | Free to register, visit contact us page to request an API key. | Varies depending on use case. | http://www.developers.elsevier.com/action/contactus |
Springer Images API | Provides images and related text for over 300,000 free images available on Springer Images. | RESTful interface, using structured URL requests | XML, JSON, JSONP | Free to register. API key needed. | No stated limitations. High-volume users should contact Springer. | support.api@springer.com |
Springer Metadata API | Provides metadata for over 5 million online documents (e.g. journal articles, book chapters, protocols). | RESTful interface, using structured URL requests | XML in PRISM Aggregator message format, JSON, JSONP | Free to register. API key needed. | No stated limitations. High-volume users should contact Springer. | support.api@springer.com |
Springer Open Access API | Provides metadata, full-text content, and images for over 80,000 open access articles from BioMed Central and SpringerOpen journals. | RESTful interface, using structured URL requests | XML in Springer's A++ format, JSON | Free to register. API key needed. | No stated limitations. High-volume users should contact Springer. | support.api@springer.com |
STAT!Ref OpenSearch API | Bibliographic search service for displaying syndicated results on a website. | Uses OpenSearch specifications. | RSS, ATOM, HTML | Free to register for users at subscribing host institution. | Limits exist but are not specified; high-volume users should contact STAT!Ref. | support@tetondata.org |
Web of Science Web Services | Bibliographic search service. Allows automatic, real-time querying of records. Primarly for populating an institutional repository. | Uses SOAP protocol to access | XML | Free to register if you are affiliated with a host institution that subscribes to Web of Science. | Extractable data is limited to particular fields, databses, and filedepths, also depends on host institution's subscription. | https://developer.clarivate.com/#getStarted |
World Bank Indicators | Provides access to nine World Bank statistical databases: | RESTful interface | XML, JSON | Free to use, no registration or API key required. | Requests volume, while not specified, should be "reasonable" | data@worldbank.org |
World Bank Projects | Provides access to data on all closed, active, and planned World Bank projects | RESTful interface | XML, JSON, Atom | Free to use, no registration or API key required. | Requests volume, while not specified, should be "reasonable" | data@worldbank.org |
World Bank Finances | Provides access to the data on the World Bank’s loans, credits, financial statements and other data related to the financial operations | RESTful interface | XML, JSON and RDF | Free to use, no registration or API key required. | Requests volume, while not specified, should be "reasonable" | data@worldbank.org |
This guide is adapted, with permission, from one by Mark Clemente of MIT Libraries.