Probably the oldest example of using an API to retrieve data from ScienceDirect / Scopus is that of federated search: integrating search results from different sources into a single user interface. For years, we facilitated this through a SOAP interface called FEDSRF, which we plan to start retiring in 2014. The RESTful APIs, however, provide a good alternative, and the below explains how to go about using them for this purpose.
Who is this information for?
Providers of federated search applications to subscribing ScienceDirect/Scopus customers, or customers who wish to integrate ScienceDirect/Scopus into their home-grown federated search system.
After registering for an API Key here
, contact us
for next steps: we may need to change some of your key settings and will probably want to co-ordinate some things about customer authentication. Also make sure that you read the content use policies
that explain what data you can use in your application.
Building search requests
After your API Key has been granted access to the ScienceDirect/Scopus search API, you can start sending requests. You'll have to pass in your APIKey either via X-ELS-APIKey
HTTP request header or as apiKey
query string parameter.
API search requests for ScienceDirect and Scopus are very similar:
[query] is the user's search query, mapped to ScienceDirect's or Scopus' search syntax.
By default, this request will return results in JSON; the other response format that is available is Atom/XML. Either format can be explicitly requested by modifying the 'Accept' HTTP header for the request:
Instead of passing in this parameters as a HTTP request header, you can also pass it in as an encoded URL parameter:
By default, the AP will return 25 responses. You can get up to 100 responses by adding a 'count' parameter:
Beware, however, that higher counts negatively affect response time.
By default, the API will return standard bibliographic data for each record. A more complete set of data can be retrieved by using the 'VIEW' parameter:
Requesting this view, especially in combination with requesting more than the standard 25 results, will negatively affect response time.
You can tailor the specific fields to be returned by using the 'fields' parameter. For example:
The available search fields are documented for ScienceDirect and Scopus.
By default, the API returns search results ordered by whatever the default sort order is on ScienceDirect/Scopus itself. However, it is also possible to force a sort order, e.g. descending (-) by date: