Help with authorization for WC1 API

Hi I am quite new to WC1. I have the API key and the API secret. I am trying to use python to connect to WC1 API and automate a few things. I need some help with the authorization value in the header.

I am trying to execute the below snipprt.

import requests

url = "https://api-worldcheck.refinitiv.com/v2/reference/countries"

headers = {
"Authorization": "SOME_STRING_VALUE",
"Date": "SOME_STRING_VALUE"
}

response = requests.request("GET", url, headers=headers)

print(response.text

I have come to learn the authorization value should be something like the below.

Signature keyId="xxxxxxxxxxxxx",algorithm="hmac-sha256",
   headers="(request-target) host date content-type content-length",
   signature="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Can anyone please guide me in the correct way on how to generate the signature?

I am aware that the signature should be generated using HMAC but the official documentation is not entirely clear on what data to use as input.

Host: api-worldcheck.refinitiv.com
Date: Tue, 07 Jun 2016 20:51:35 GMT
Content-Type: application/json
Content-Length: 88
Authorization: Signature keyId="4321",algorithm="hmac-sha256",
   headers="(request-target) host date content-type content-length",
   signature="Iktz/AdXHmDouNm6uBB8ZW0xcfNGuWGDxmX9TFMwuF0="

{
  "caseId": "my customer ID",
  "name": "John Doe",
  "providerTypes": ["WATCHLIST"]
}

For instance, is it essential to have the caseID, name and providerTypes when generating the signature? If yes, what are these values pointing to? I am just looking to connect to WC1 and have some articles resolved using python.

Thanks in advance.

Best Answer

  • janaka.medawala, thank you for reaching out to us!

    It is not essential to have caseId, name, or providerTypes when generating the signature.
    I'm not able to share some code samples with you here because the files are too big, so I've just emailed you.
    If you have any further questions, please let me know!

    Best,

    Judith