Skip to main content

Issues Submitted to Elsevier Support

  • Unable to access elsSearch endpoint in the sciencedirect index with UBC credential

    • ANS: Please be advised that your API usage will only be authenticated if you will send it while within the network of your university/ institution. This does not include VPN or proxy access as we do not support these authentication methods for our APIs.
  • I used postman to search for articles containing "machine intelligence" and "water distribution." However, the first article from the search does not have compound words of machine intelligence and water distribution. Instead, the article only contains four separate words: machine, intelligence, water, and distribution.

    • Questions to the support:

      • What search string should I put to get the correct article with two or more compound words?
      • By putting space in between words, does that count as one keyword or two keywords? For example, the term "water distribution" does it see as one word "water distribution" or two words "water" and "distribution"?
      • I have used "machine learning AND water distribution," and search was able to give me articles with these two compound words. However, I am not sure why it did not work with "machine intelligence and water distribution."
    • ANS: The ‘GET’ interface for the Elsevier ScienceDirect API is not as reliable as the ‘PUT’ method. It was developed as a bridge technology as part of a backend migration we made some time ago. We recommend the ‘PUT’ interface. That is documented here: https://dev.elsevier.com/tecdoc_sdsearch_migration.html under section ‘ScienceDirect Search API v2 Migration Guide’

      Note the ‘Available Search Fields’ To search the entire text of an article, use the ‘qs’ parameter. The endpoint for the search remains the same as the ‘GET’ interface (https://api.elsevier.com/content/search/sciencedirect). If using postman, set the http verb to ‘PUT’, the type of request to ‘raw’ and place the following in the ‘body’: body query for PUT interface

      In addition, the ScienceDirect Search API has a limit of 6000 results. One may need to adjust the search query to get the result set low enough to work with amount of data returned in the API call.

  • Responds back on how to use PUT request methods in python (Received on November 23 2022)

    • As what you have discovered, the GET and the PUT request methods for the ScienceDirect search API return different results for the same query
    • The PUT method (which submits the query in the body of the request) is the better method to use, as this is the method natively used by our underlying search engine. The GET method (which submits the query as a URL parameter) actually is translated by ELSAPI to a PUT method, and in that translation something happens that changes the meaning of the query and leads to different results. What happens exactly, we cannot be certain about it as our logs don’t capture that detail – we would have to look at the actual code to find out what is happening.
    • For that reason, we recommend that customers use the PUT method for this API. The problem is that the elsapy SDK does not support the PUT method – it only supports the GET method. Our product manager can try to add support for the PUT method (or rather, change the implementation of the SDK so that it uses the PUT instead of the GET method for ScienceDirect searches), but we do not have a timeline when it can be done or completed. Until that time, you could try to make that change to your own copy of the elsapy SDK (it’s open source, after all) – but we appreciate that this is not necessarily easy for someone who doesn’t have a lot of coding experience in Python. You may check Python forums online to see if that might help.