Skip to Main Content
It looks like you're using Internet Explorer 11 or older. This website works best with modern browsers such as the latest versions of Chrome, Firefox, Safari, and Edge. If you continue with this browser, you may see unexpected results.

APIs for Scholarly Resources

A list of commonly-used APIs for scholarly resources

Elsevier API

The Elsevier API access is available to all current University of Calgary faculty, staff, and students. Please note, the API access is restricted to University of Calgary Libraries' subscription, which includes ScienceDirect and Scopus. To get the full functionality of this API, you will need an API key and Institutional token.

How to get an API Key:

  1. Go to Elsevier Developer Portal.
  2. Click on "My API Key" on the top menu
  3. You will be prompted to sign in. Enter your University of Calgary email (don't choose the second link to sign in via your institution). If you have no account yet, you will be prompted to register and create a password.
  4. Once you've signed in, click on "Create API Key". You can create multiple API keys if you wish.

How to get an Institutional token:

  • You can request an institutional token by emailing datasupport@elsevier.com.
    • Be sure to include your API Key, and send the request from your University of Calgary email as a proof that you are a student/staff/faculty at the University of Calgary.
    • Please note that the institutional token will be tied to your API key.

Restrictions when using the institutional token:

  • All requests using institutional token must come over HTTPS
  • It may be revoked at any time, without notice
  • The institutional token must not appear on the address bar. In other words, it needs to be placed inside the HTTP headers (See example below)

# setup the HTTP headers
header = {"Accept": "application/xml", "X-ELS-APIKey": "YOUR APIKey", "X-ELS-Insttoken": "YOUR INST TOKEN"}

# Break down the variables for the search query
api_url = "https://api.elsevier.com/content/search/scopus?query="
search_query = 'AUTHLASTNAME(Smith)'

# Call the API
response = rq.get(api_url + search_query, headers = header)

Return Format

The API can return results in XML or JSON format. You can specify this in the HTTP header under Accept field. See example above.

Limitations

  • The API is limited to 200 results per query.
  • The API key is valid for 6 months

Useful Links

API Wrappers

Wrappers are API-specific packages that streamline the process of making API calls. Available wrappers for Elsevier API: