Article DOI/PMID/ID Lookup Endpoint Quick Start Guide (LibKey)
The LibKey API lets developers integrate LibKey's full-text linking into any application via a simple RESTful GET request. This guide covers the basics and best practices; see the Article DOI/PMID Lookup Endpoint Reference Guide for full detail.
If you are using a Universal Key, please use Library ID 1390 which emulates a large academic library with a broad collection of entitlements to test your application so as not to inadvertently drive usage at partner institutions.
Overview
In short, the interaction between your application and the LibKey API is a RESTful interaction featuring a simple GET request to the API with three required parameters plus one optional:
DOI/PMID (for identifying the article you are interested in learning about)
Library ID (for identifying for which library the links are intended)
API Key (unique to the library ID)
(optional) an “include” statement which allows you to receive journal-level information as well
In return, you get:
bestIntegratorLink - the pre-calculated best URL to full text for that organization
OA Status - for defining if the article is OpenAccess. You might use this to display some sort of “open access” icon in your interface, for example.
Article in context link (browzineWebLink) if you would like to provide a link to see the article in its originally published context within the BrowZine interface (all LibKey subscribers have access to BrowZine web as well which is needed for this link to appear/work).
Detailed breakdown of all available links (with the “best” one already pre-calculated in the aforementioned “bestIntegratorLink” value)
(If using the optional include) Information about the journal including a link to the journal in BrowZine and link to the cover image asset for inclusion in your interface as well as the SJR value of the journal.
The User Experience
So what happens when a user clicks a LibKey.io link that the API returns for “Download PDF” or “Article Link?” These are the content links designed to get the user directly to the content in an authorized way via their institution. While all LibKey links have a similar syntax they wind up forwarding to completely different URL’s based on the outcome of the LibKey link calculations. The most common user workflow however looks like this:
Click the LibKey Link → Organization’s SSO → Content
If the user already has an active SSO session, a "Download PDF" link can deliver content in a single click.
Examples
If you haven’t done so already, contact support@thirdiron.com to confirm your Library_ID and API_KEY which you need to try the following examples.
To setup a query, using your API Key use this kind of structure for DOIs:
https://public-api.thirdiron.com/public/v1/libraries/{Library_ID}/articles/doi/{DOI}?access_token={API_KEY}
… and this kind of structure for PMIDs:
https://public-api.thirdiron.com/public/v1/libraries/{Library_ID}/articles/pmid/{PMID}?access_token={API_KEY}
… and this kind of structure for Third Iron Article IDs:
https://public-api.thirdiron.com/public/v1/libraries/{Library_ID}/articles/id/{ArticleId}?access_token={API_KEY}
Note: ArticleIds can shift over time, so its recommended not to persistently store these in your application and only to use them in conjunction with other endpoints where articleId may surface to ensure they are “fresh” when they are used. Most commonly this would be used in conjunction with Third Iron API++/Data Service endpoints.
All query types return JSON like the following. You can test this using the open access example below (substitute your own API Key):
https://public-api.thirdiron.com/public/v1/libraries/{Library_ID}/articles/doi/10.1186/s12862-023-02104-2?access_token={API_KEY}
You should JSON that looks something like this:
{
"data": {
"id": 573087326,
"type": "articles",
"title": "Reducing Boolean networks with backward equivalence",
"date": "2023-05-23",
"authors": "Argyris, Georgios A.; Lluch Lafuente, Alberto; Tribastone, Mirco; Tschaikowski, Max; Vandin, Andrea",
"inPress": false,
"abandoned": false,
"doi": "10.1186/s12859-023-05326-9",
"linkResolverOpenUrl": "http://um9mh3ku7s.search.serialssolutions.com/?genre=article&aulast=Argyris&issn=1471-2105&title=BMC%20Bioinformatics&atitle=Reducing%20Boolean%20networks%20with%20backward%20equivalence&volume=24&issue=S1&spage=212&epage=&date=2023&doi=10.1186%2Fs12859-023-05326-9&sid=LibKey",
"pmid": "37221494",
"openAccess": true,
"unpaywallUsable": true,
"fullTextFile": "https://libkey.io/libraries/222/articles/573087326/full-text-file?utm_source=api_2049&allow_speedbump=true",
"contentLocation": "https://libkey.io/libraries/222/articles/573087326/content-location?utm_source=api_2049&allow_speedbump=true",
"availableThroughBrowzine": true,
"hasSecondOrderRetractions": false,
"startPage": "212",
"endPage": "",
"browzineWebLink": "https://browzine.com/libraries/222/journals/74/issues/520079562?showArticleInContext=doi:10.1186%2Fs12859-023-05326-9&utm_source=api_2049",
"bestIntegratorLink": {
"bestLink": "https://libkey.io/libraries/222/articles/573087326/full-text-file?utm_source=api_2049&allow_speedbump=true",
"linkType": "fullTextFile",
"linkCategory": "link",
"recommendedLinkText": "Download PDF"
}
}
}bestIntegratorLink
The full response is documented in the reference guide, but we recommend all integrators start with bestIntegratorLink.
bestLink - The recommended URL to show users based on the priority order discussed in detail in the table below
linkType - The type which then corresponds to the same element in the more verbose response that appears before bestIntegratorLink.
linkCategory - Presently, only two types: “alert” means it is warning the user of something about the article before presenting the user linking options. All of the links in this category will result in a detail page at the LibKey.io domain as shown in the examples below. “link” means the link will forward the user to where the content can be accessed or requested.
recommendedLinkText - This is the recommended English-language text for this experience. This text aligns as the default text for thousands of customers in other Third Iron produced products. This can be customized if this text conflicts with your product/service’s general design.
Third Iron may enhance this bestIntegratorLink response from time to time with NEW linkType values. For this reason, we recommend setting up your application to fully ingest and process all potential values, using our recommendedLinkText to inform what to display to users as well as the linkCategory to decide on appropriate UX for your application.
Below is a table defining the current different link types, categories and recommended text and the order in which they are presented as the “bestLink”. (e.g. If fullTextFile is available, then this will be presented but if it is not and contentLocation is available, then contentLocation will appear as the linkType).
Priority Order Number | linkType | linkCategory | Description and Sample Screenshot of user experience (Assuming the user is ALREADY authenticated. If not, depending on the article, the user may first account an SSO login or prompt to turn on VPN, etc. for their organization) | recommendedLinkText |
|---|---|---|---|---|
1 | retractionNoticeUrl | alert | A notification that the article has been retracted Retraction information landing page within LibKey. Further links are presented to learn more or access full text. | Retracted Article |
2 | expressionOfConcernNoticeUrl | alert | A notification that the article has an expression of concern on it Expression of Concern information landing page within LibKey. Further links are presented to learn more or access full text. | Expression of Concern |
3 | problematicJournalArticleNoticeUrl* | alert | A notification that the article is associated with a journal produced by a publisher that Third Iron has assessed as problematic. Problematic Journal information landing page within LibKey. Further links are presented to learn more or access full text. | Problematic Journal |
4 | fullTextFile | link | A link to the PDF file Most often a PDF will appear directly in the browser window. Some publishers instead initiate an automatic download of the file instead of showing it in the browser. This is a publisher’s server configuration. Uncommonly, some publishers will display the PDF within a branded frame set but the PDF will still be immediately viewable. | Download PDF |
5 | contentLocation | link | A link to the landing page for this article Typically, a PDF is one click away and/or the HTML of the text is visible. | View Article |
6 | documentDeliveryFulfillmentUrl* | link | A link to the library’s unmediated document delivery provider A two-step process of landing on Article Galaxy Scholar and inputting your email to receive a copy as well as immediately be shown a copy of the paper. | Request PDF |
7 | linkResolverOpenUrl | link | A link to the library’s Link Resolver URL for this article Resulting link screenshot example: Exact UI will be different based on library link resolver provider and settings within LibKey but typically will present routes to view print holdings, access ILL and document delivery services or perform other actions. | Access Options |
“*” - problematicPublishersNoticeUrl and documentDeliveryFulfillmentUrl are elements that only appear when that LibKey subscribing library subscribes to these services (Third Iron’s Problematic Publishers service and Research Solutions Article Galaxy Scholar, respectively).
Optional Include to get Journal Information
You can optionally do an include (e.g. “include=journal”) to get journal information including the cover image for the journal. For the above example you would tweak the call to look like this:
https://public-api.thirdiron.com/public/v1/libraries/{Library_ID}/articles/doi/10.1186/s12859-023-05326-9?include=journal&access_token={API_KEY}
Now, you can see the response looks like this:
{
"data": {
"id": 573087326,
"type": "articles",
"title": "Reducing Boolean networks with backward equivalence",
"date": "2023-05-23",
"authors": "Argyris, Georgios A.; Lluch Lafuente, Alberto; Tribastone, Mirco; Tschaikowski, Max; Vandin, Andrea",
"inPress": false,
"abandoned": false,
"doi": "10.1186/s12859-023-05326-9",
"linkResolverOpenUrl": "http://um9mh3ku7s.search.serialssolutions.com/?genre=article&aulast=Argyris&issn=1471-2105&title=BMC%20Bioinformatics&atitle=Reducing%20Boolean%20networks%20with%20backward%20equivalence&volume=24&issue=S1&spage=212&epage=&date=2023&doi=10.1186%2Fs12859-023-05326-9&sid=LibKey",
"pmid": "37221494",
"openAccess": true,
"unpaywallUsable": true,
"fullTextFile": "https://libkey.io/libraries/222/articles/573087326/full-text-file?utm_source=api_2049&allow_speedbump=true",
"contentLocation": "https://libkey.io/libraries/222/articles/573087326/content-location?utm_source=api_2049&allow_speedbump=true",
"availableThroughBrowzine": true,
"hasSecondOrderRetractions": false,
"startPage": "212",
"endPage": "",
"browzineWebLink": "https://browzine.com/libraries/222/journals/74/issues/520079562?showArticleInContext=doi:10.1186%2Fs12859-023-05326-9&utm_source=api_2049",
"relationships": {
"journal": {
"data": {
"type": "journals",
"id": 74
}
}
},
"bestIntegratorLink": {
"bestLink": "https://libkey.io/libraries/222/articles/573087326/full-text-file?utm_source=api_2049&allow_speedbump=true",
"linkType": "fullTextFile",
"linkCategory": "link",
"recommendedLinkText": "Download PDF"
}
},
"included": [
{
"id": 74,
"type": "journals",
"title": "BMC Bioinformatics",
"issn": "14712105",
"sjrValue": 1.19,
"coverImageUrl": "https://s3.amazonaws.com/thirdiron-assets/images/covers/1471-2105.png",
"browzineEnabled": true,
"browzineWebLink": "https://browzine.com/libraries/222/journals/74?utm_source=api_2049"
}
]
}Importantly are these two elements for implementation consideration:
Property | Type | Description | Optional |
|---|---|---|---|
sjrValue | number | The SJR (Scimago Journal Rank) value of the journal. Utilize to display this value in your interface to show the general prestige of this journal. | Yes |
coverImageUrl | URL | The link to the cover image. Use this element to feature a representative cover image of the title in your interface. | Yes |
Questions? Email us at support@thirdiron.com for further assistance.