Cannot create a token for my Python app

I am new and I am trying to access ESG data using the endpoint:

"https://api.refinitiv.com/data/environmental-social-governance/v1/universe"

I am stuck with the token generation.

My understanding is that I have to create a token from the web site

https://apidocs.edp.thomsonreuters.com/apps/apidocs > AppKey Generator

and then from the Python code:

params = {"universe":"IBM.N"}  
response = requests.get(endpoint, headers={'Authorization': 'Bearer '+access_token}, params=params)

Is this correct? Or rather I have to have my Python code requesting a token every time it runs, maybe making use of edpToken.py?

I have tried to use edpToken.py to fetch a token but I get back "Invalid Application Credential." (I am not really sure about the value I should use for CLIENT_ID)

If by any change there is a documentation which I have missed I am happy to be redirected there.

Best Answer

  • Gurpreet
    Answer ✓

    Hi @jacopo.pecci, Please use this Quickstart to get everything setup and running properly. Once you have a valid application key (client ID), the access and refresh tokens are generated first, and then these are used in the ESG API call.

    The token can not be generated from API docs or APP key generator. Periodically (5 minutes) the token will expire, at which point it will have to be renewed again.

Answers

  • I did follow these instructions. I set USERNAME to may email address, PASSWORD to the password I use to login to the website and for CLIENT_ID I tried both the "App Display Name" and "Product ID" .

    In both cases I get back:

    Exception: Failed to get access token 401 - {"error":"invalid_client"  ,"error_description":"Invalid Application Credential." } 
  • Please use the App Key for the Client ID. Ensure that EDP API has been checked before generating the app key:

    image

  • Hello @jacopo.pecci

    For more details about token, please refer to Authorization - All about tokens tutorial

  • thank you, this in now clearer and working.

    What is the life duration of the refresh_token? sometimes, I get the below errors and I solve it by making a token request using my personal password rather than the refresh_token


    Exception: Failed to get access token 400 - {"error":"invalid_grant"   } 
    Exception: Failed to get access token 400 - {"error":"access_denied"  ,"error_description":"iPlanet session has been expired." } 
    Exception: Failed to get access token 400 - {"error":"access_denied"  ,"error_description":"Refresh token does not exist." } 
  • Access tokens are short lived (about 5 minutes) and Refresh tokens are approximately 18 hours. Note that if you login from another application using same credentais (like API docs), your tokens will be invalidated immediately.