<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>REST API on Crossref</title><link>https://www-crossref-org.pluma.sjfc.edu/categories/rest-api/</link><description>Recent content in REST API on Crossref</description><generator>Hugo 0.139.4</generator><language>en-us</language><managingEditor>support@crossref.org (Crossref/Cazinc/Benoît Benedetti)</managingEditor><webMaster>support@crossref.org (Crossref/Cazinc/Benoît Benedetti)</webMaster><lastBuildDate>Wed, 29 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www-crossref-org.pluma.sjfc.edu/categories/rest-api/" rel="self" type="application/rss+xml"/><item><title>Retraction Watch retractions now in the Crossref API</title><link>https://www-crossref-org.pluma.sjfc.edu/blog/retraction-watch-retractions-now-in-the-crossref-api/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><author>Martyn Rittman</author><guid>https://www-crossref-org.pluma.sjfc.edu/blog/retraction-watch-retractions-now-in-the-crossref-api/</guid><description>&lt;p>Retractions and corrections from Retraction Watch are now available in Crossref’s REST API. Back in September 2023, we announced the acquisition of the Retraction Watch database with an ongoing shared service. Since then, they have sent us regular updates, which are publicly available as a &lt;a href="https://gitlab.com/crossref/retraction-watch-data" target="_blank">csv file&lt;/a>. Our aim has always been to better integrate these retractions with our existing metadata, and today we’ve met that goal.&lt;/p>
&lt;p>This is the first time we have supplemented our metadata with a third-party data source. Until now, our APIs have included metadata provided by Crossref members along with outputs from our internal enrichment workflows, such as matches found for bibliographic reference matching and funders. Third party metadata has been gathered in Event Data, but this has been stored and delivered separately.&lt;/p>
&lt;p>Knowing when work has been retracted is critical for assessing the integrity of research, and this enhancement of the data will be a great benefit to the community.&lt;/p>
&lt;h2 id="where-does-the-data-come-from">Where does the data come from?&lt;/h2>
&lt;p>Retraction Watch carefully curates retractions, pulling them from several non-Crossref sources, including PubMed and publisher websites. Each entry is manually checked and annotated before being added to the database. The high level of curation and broad coverage is what made a partnership between Crossref and Retraction Watch attractive, and our shared goal of making changes to metadata more visible.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Our goal with the Retraction Watch Database has always been for it to be as useful to as many people as possible, and available from as many sources as possible,” says Ivan Oransky, co-founder of Retraction Watch and executive director of The Center For Scientific Integrity, its parent nonprofit organisation. “Integration with Crossref’s REST API is a huge step in that direction.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="where-can-i-see-the-retractions">Where can I see the retractions?&lt;/h2>
&lt;p>If you use a service that collects Crossref metadata, you will start to see the Retraction Watch retractions as they are picked up. To access the data directly, you can find retractions from both Crossref members and Retraction Watch in our REST API, for example with the following request for all retractions:&lt;/p>
&lt;p>&lt;a href="https://api-crossref-org.pluma.sjfc.edu/v1/works?filter=update-type:retraction" target="_blank">https://api-crossref-org.pluma.sjfc.edu/v1/works?filter=update-type:retraction&lt;/a>&lt;/p>
&lt;p>Or for an individual record:&lt;/p>
&lt;p>&lt;a href="https://api-crossref-org.pluma.sjfc.edu/v1/works/10.1177/17588359231172420" target="_blank">https://api-crossref-org.pluma.sjfc.edu/v1/works/10.1177/17588359231172420&lt;/a>&lt;/p>
&lt;p>In the results here you will see an &lt;code>update-to&lt;/code> field:&lt;/p>
&lt;pre tabindex="0">&lt;code>&amp;#34;update-to&amp;#34;: [
{
&amp;#34;updated&amp;#34;: {
&amp;#34;date-parts&amp;#34;: [
[2023,4,22]
],
&amp;#34;date-time&amp;#34;: &amp;#34;2023-04-22T00:00:00Z&amp;#34;,
&amp;#34;timestamp&amp;#34;: 1682121600000
},
&amp;#34;DOI&amp;#34;: &amp;#34;10.1177/1758835920922055&amp;#34;,
&amp;#34;type&amp;#34;: &amp;#34;retraction&amp;#34;,
&amp;#34;source&amp;#34;: &amp;#34;publisher&amp;#34;,
&amp;#34;label&amp;#34;: &amp;#34;Retraction&amp;#34;
},
{
&amp;#34;updated&amp;#34;: {
&amp;#34;date-parts&amp;#34;: [
[2023,4,22]
],
&amp;#34;date-time&amp;#34;: &amp;#34;2023-04-22T00:00:00Z&amp;#34;,
&amp;#34;timestamp&amp;#34;: 1682121600000
},
&amp;#34;DOI&amp;#34;: 10.1177/17588359231172420&amp;#34;,
&amp;#34;type&amp;#34;: &amp;#34;retraction&amp;#34;,
&amp;#34;source&amp;#34;: &amp;#34;retraction-watch&amp;#34;,
&amp;#34;label&amp;#34;: &amp;#34;Retraction&amp;#34;,
&amp;#34;record-id&amp;#34;: 44124
}
]
&lt;/code>&lt;/pre>&lt;p>The &lt;code>source&lt;/code> field states where the retraction came from. Currently, it can have two values: &lt;code>publisher&lt;/code> or &lt;code>retraction-watch&lt;/code>. Note that the same retraction may be included multiple times from different sources.&lt;/p>
&lt;p>Retraction Watch retractions will remain available &lt;a href="https://gitlab.com/crossref/retraction-watch-data" target="_blank">on Gitlab in csv format&lt;/a> and be updated on working days. The &lt;code>record-id&lt;/code> refers to the entry in the csv file with further details, such as the reason for retraction.&lt;/p>
&lt;p>There is &lt;a href="https://api-crossref-org.pluma.sjfc.edu/swagger-ui/index.html" target="_blank">full documentation available for the Crossref REST API&lt;/a> and if you are new to REST APIs, see our &lt;a href="https://www-crossref-org.pluma.sjfc.edu/learning/" target="_blank">learning hub&lt;/a> to get started which includes &lt;a href="https://crossref.gitlab.io/tutorials/get-rw-metadata/" target="_blank">a tutorial&lt;/a> about accessing retractions.&lt;/p>
&lt;h2 id="what-can-i-do-with-the-retractions">What can I do with the retractions?&lt;/h2>
&lt;p>Like the rest of our metadata, the retractions are freely available. If you use or operate a tool that ingests retractions, the new entries will start to be picked up immediately. The Retraction Watch database includes a larger number of retractions than the Crossref database, so you should see an increase in the total.&lt;/p>
&lt;p>We have heard from organisations that would like to build new research integrity tools based on this data. We look forward to seeing the benefits brought by wider availability of the Retraction Watch retractions, and how they can provide better context to research outputs.&lt;/p>
&lt;p>While Crossref metadata is freely available to reuse without a license, if you make use of the Retraction Watch retraction metadata in a published work, we kindly request that you provide a citation to the source.&lt;/p>
&lt;p>If you have questions or comments, please head over to the &lt;a href="https://community-crossref-org.pluma.sjfc.edu/c/strategy/research-integrity/46" target="_blank">section of our forum&lt;/a> dedicated to integrity of the scholarly record.&lt;/p></description></item><item><title>Behind the scenes improvements to the REST API</title><link>https://www-crossref-org.pluma.sjfc.edu/blog/behind-the-scenes-improvements-to-the-rest-api/</link><pubDate>Tue, 06 Jul 2021 00:00:00 +0000</pubDate><author>Patrick Polischuk</author><guid>https://www-crossref-org.pluma.sjfc.edu/blog/behind-the-scenes-improvements-to-the-rest-api/</guid><description>&lt;p>UPDATE, 24 August 2021: All pools have been migrated to the new Elasticsearch-backed API, which already appears to be more stable and performant than the outgoing Solr API. Please report any issues via our &lt;a href="https://gitlab.com/crossref/issues" target="_blank">Crossref issue repository in Gitlab&lt;/a>.&lt;/p>
&lt;p>UPDATE, 9 August 2021: The cutovers for the polite and Plus pools are delayed again. We&amp;rsquo;re still working to ensure acceptable performance and stability before serving responses from the new application and infrastructure. Each cutover is currently delayed by one more week&amp;ndash;the polite pool is scheduled for 2021 August 17 and the Plus pool is scheduled for 2021 August 24.&lt;/p>
&lt;p>UPDATE, 2 August 2021: The cutovers for the polite and Plus pools are delayed. We&amp;rsquo;ve been mirroring traffic to the new polite pool and want to ensure acceptable performance and stability before serving responses from the new application and infrastructure. Each cutover is currently delayed by one week&amp;ndash;the polite pool is scheduled for 2021 August 10 and the Plus pool is scheduled for 2021 August 17.&lt;/p>
&lt;p>UPDATE, 13 July 2021: The first stage of the cutover is complete, so requests to the public pool are now being served by the new REST API. We took a slightly different approach to performing the cutover, so the &amp;ldquo;&lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/nxwqn-x9m73#documentation" target="_blank">Documentation&lt;/a>&amp;rdquo; and &amp;ldquo;&lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/nxwqn-x9m73#temporary-domain" target="_blank">Temporary domain&lt;/a>&amp;rdquo; sections below have been updated.&lt;/p>
&lt;hr>
&lt;p>Our &lt;a href="https://api-crossref-org.pluma.sjfc.edu" target="_blank">REST API&lt;/a> is the primary interface for anybody to fetch the metadata of content registered with us, and we&amp;rsquo;ve been working hard on a more robust REST API service that&amp;rsquo;s about to go live.&lt;/p>
&lt;p>The REST API is free to use and it gets around 300 million requests each month (we encourage users to adhere to our &lt;a href="https://github.com/CrossRef/rest-api-doc#etiquette" target="_blank">etiquette guidelines&lt;/a> to keep things running smoothly). It is used for &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/3gpwy-1qd71" target="_blank">bibliometric studies&lt;/a>, by &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/ggq0z-30r05" target="_blank">platforms like Dimensions&lt;/a>, by &lt;a href="https://doi-org.pluma.sjfc.edu/10.64000/49mpx-hpr56" target="_blank">organisations like the National Library of Sweden&lt;/a>, and to support &lt;a href="https://www-crossref-org.pluma.sjfc.edu/services/metadata-retrieval/user-stories/">countless other efforts&lt;/a>.&lt;/p>
&lt;p>We also offer enhanced access to our APIs and other services with &lt;a href="https://www-crossref-org.pluma.sjfc.edu/services/metadata-retrieval/metadata-plus/">Metadata Plus&lt;/a>, and we recommend it for production services and others that benefit from guaranteed up-time, a higher rate limit, and priority support from our helpful staff.&lt;/p>
&lt;p>For a while now, we&amp;rsquo;ve been working to migrate the REST API from &lt;a href="https://solr.apache.org/" target="_blank">Solr&lt;/a> to &lt;a href="https://www.elastic.co/" target="_blank">Elasticsearch&lt;/a> and from our datacenter to a cloud platform in order to address issues of scalability and extensibility.&lt;/p>
&lt;p>We&amp;rsquo;re pleased to announce that we&amp;rsquo;ll be cutting over to the Elasticsearch-backed version of the REST API over the next few weeks, beginning July 13. This cutover will occur one pool at a time&amp;ndash;the public pool will be migrated first, followed by the polite pool on August 3, and the Plus pool on August 10 (see &amp;rsquo;etiquette&amp;rsquo; link above if you&amp;rsquo;re unfamiliar with our different pools). &lt;em>Please note updates at the top of this post for changes to the original schedule.&lt;/em>&lt;/p>
&lt;p>We&amp;rsquo;ve thoroughly tested the functionality and performance of the new REST API, and we&amp;rsquo;d like to invite you to test it out before we move production traffic to the new service. Try out your favorite API queries at &lt;a href="https://api-production-crossref-org.pluma.sjfc.edu" target="_blank">https://api-production-crossref-org.pluma.sjfc.edu/&lt;/a>. &lt;/p>
&lt;h2 id="feature-parity-but-note-a-few-differences">Feature parity, but note a few differences&lt;/h2>
&lt;p>One of our primary objectives was to maintain feature parity between the old and new services, avoiding any breaking changes that might cause problems for existing services integrating with the REST API. We implemented a regression test suite which has given us the confidence to make such a foundational change. During the course of this project, we found it necessary and a good opportunity to make a few modifications. In each case, we analyzed usage and aimed to avoid making any breaking changes. We hope these represent improvements to the behavior and consistency of the REST API.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>The &lt;code>group-title&lt;/code> filter uses exact matching. This filter previously worked but was undocumented and unsupported.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;code>directory&lt;/code> filter is deprecated. This was meant to be an experimental, unsupported filter, and the data has not met the standard we require.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;code>affiliation&lt;/code> facet returns counts of affiliation strings rather than counts of terms within affiliation fields (thus resolving &lt;a href="https://github.com/CrossRef/rest-api-doc/issues/405" target="_blank">this Github issue&lt;/a>).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Cursors may be used to page through results from the /members, /funders, and /journals routes, in addition to /works.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>While we suggest that everyone use cursors for pagination, we still support the &lt;code>offset&lt;/code> functionality. We have introduced a limit of 80000 for offset values for the /members /funders and /journals routes&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>offset&lt;/code> behavior is slightly changed, now applying to the sum of rows and offsets rather than just offsets.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;code>published&lt;/code> field is now present in API responses.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;code>/licenses&lt;/code> route returns paged results.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Sorting by &lt;code>submitted&lt;/code> is no longer supported. This was never officially supported or documented.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;code>/quality&lt;/code> route has been removed. This was an undocumented, experimental feature.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Funder name in &lt;code>/works&lt;/code> metadata is the name provided by the publisher.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Empty &lt;code>relation&lt;/code> fields correctly return an empty object.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Only &lt;code>ISBN&lt;/code> and &lt;code>isbn-type&lt;/code> for a record will be returned. ISBNs for associated volumes will be omitted.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;code>institution&lt;/code> field is a list.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>query&lt;/code> uses different &lt;a href="https://en.wikipedia.org/wiki/Stop_word" target="_blank">stop word&lt;/a> defaults, though we expect querying to remain roughly the same.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>API responses may feature slightly different scores, as they come from different backends.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="some-technical-notes-on-the-cutover">Some technical notes on the cutover&lt;/h2>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;p>The above changes are documented in our new REST API documentation, which is now automatically generated via Swagger, resulting in more comprehensive coverage and more efficient feature development. During the cutover, the right documentation for you will depend on which pool you are using. The documentation for the new API can be found by visiting the &lt;a href="https://api-crossref-org.pluma.sjfc.edu" target="_blank">API in a browser&lt;/a>, or by navigating to &lt;a href="https://api-crossref-org.pluma.sjfc.edu/help" target="_blank">https://api-crossref-org.pluma.sjfc.edu/help&lt;/a>; and the docs for the old API remain here: &lt;a href="https://github.com/CrossRef/rest-api-doc" target="_blank">https://github.com/CrossRef/rest-api-doc&lt;/a>. The Github-hosted documentation will be deprecated once the cutover is complete.&lt;/p>
&lt;p>This may not come as news, but bears repeating as we mentioned GitHub. We have moved our source code repositories from GitHub to &lt;a href="https://gitlab.com/crossref" target="_blank">GitLab&lt;/a>, including all of our issue tracking.&lt;/p>
&lt;h3 id="temporary-domain">Temporary domain &lt;/h3>
&lt;p>UPDATE: We ended up performing the public pool cutover via reverse proxies instead of redirects&amp;ndash;please disregard the note about temporary domains below. The &lt;code>api.crossref.org&lt;/code> domain will remain the domain regardless of which pool you&amp;rsquo;re using or where we are in the cutover process.&lt;/p>
&lt;p>&lt;del>Please note that the &lt;code>api.production.crossref.org&lt;/code> domain is a temporary domain we are using during this cutover period. Traffic will be redirected to the new service one pool at a time via a &lt;code>307&lt;/code> http redirect. Once the cutover is complete, we will go back to using the &lt;code>api.crossref.org&lt;/code> domain. Do not update any software, scripts, libraries, tools, etc. to use the temporary domain.&lt;/del>&lt;/p>
&lt;h3 id="differences-in-query-results">Differences in query results&lt;/h3>
&lt;p>Due to inherent differences in how Solr and Elasticsearch perform queries and rank results, you may see slightly different results when comparing the old and new services. If for whatever reason your workflow involves using multiple API pools (which we don&amp;rsquo;t recommend), you may see inconsistent results. &lt;/p>
&lt;h3 id="cursor-behavior">Cursor behavior&lt;/h3>
&lt;p>&lt;a href="https://github.com/CrossRef/rest-api-doc#deep-paging-with-cursors" target="_blank">Cursors&lt;/a> may break if your script is paging through results at the exact moment the cutover is performed, and you should retry your request once the release is complete. We will post the precise maintenance window to &lt;a href="https://status-crossref-org.pluma.sjfc.edu/" target="_blank">https://status-crossref-org.pluma.sjfc.edu/&lt;/a>.&lt;/p>
&lt;h3 id="filing-issues">Filing issues&lt;/h3>
&lt;p>Feature requests and bug reports should be filed into the &lt;a href="https://gitlab.com/crossref/issues" target="_blank">Crossref issue repository in Gitlab&lt;/a> during this testing phase and once the new Elasticsearch-backed API is live in production.&lt;/p>
&lt;h2 id="coming-next">Coming next&lt;/h2>
&lt;p>While we hope the benefits of improved stability and extensibility are as exciting to you as they are to us, &amp;ldquo;feature parity&amp;rdquo; may not be the most thrilling message for our API users. In truth, one of the more exciting aspects of completing this migration is the end of the code freeze we instituted at the start of this effort. Now, we can work on new feature development and a continuous stream of bug fixes. We also improved the automatic test coverage as part of the work, meaning we can deliver features with greater confidence.&lt;/p>
&lt;p>The first new feature we&amp;rsquo;ll be delivering via the REST API will be support for the &amp;ldquo;grants&amp;rdquo; record type, allowing for the retrieval of metadata for &lt;a href="https://www-crossref-org.pluma.sjfc.edu/community/grants/">grants that have been registered with us&lt;/a>, now numbering over 20,000 from 8 different funder members. This work is well underway and will be released once we are confident that the new REST API is stable in production. From there, we&amp;rsquo;ll continue to select the highest priority issues from our &lt;a href="https://gitlab.com/groups/crossref/-/boards/1270983?scope=all&amp;amp;utf8=%E2%9C%93&amp;amp;label_name[]=Planning%3A%3ABacklog&amp;amp;label_name[]=Service%3A%3AREST%20API" target="_blank">REST API backlog&lt;/a>.&lt;/p>
&lt;p>As always, should you have any questions about our REST API, check out the &lt;a href="https://www-crossref-org.pluma.sjfc.edu/services/metadata-retrieval/">metadata retrieval section&lt;/a> of our website, start a &lt;a href="https://community-crossref-org.pluma.sjfc.edu/c/metadata-retrieval/27" target="_blank">discussion on our community forum&lt;/a>, file a Gitlab issue as mentioned above, or you can contact us via &lt;a href="mailto:support@crossref.org">support@crossref.org&lt;/a>.&lt;/p></description></item></channel></rss>