For a deeper look into our World Check One API, look into:

Overview |  Quickstart |  Documentation |  Downloads

question

Upvotes
Accepted
32 4 7 12

WORLD CHECK ONE API v2- The remote server returned an error: (401) Unauthorized.'

       DateTime dateValue = DateTime.UtcNow; // get the datetime NOW GMT


            string date = dateValue.ToString("R"); // WC1 header requires GMT datetime stamp
            Console.WriteLine(date);
            //set host and credentials to the WC1 API Pilot server WC1SampleClientAPI account
            string gatewayurl = "/v2/";
            string gatewayhost = "api-worldcheck.refinitiv.com ";
            // Here is where you enter your api keys
            string apikey = "xxxx";
            string apisecret = "xxx";
            string requestendpoint = "https://api-worldcheck.refinitiv.com/v2/groups";


            // Assemble the GET request - NOTE every character including spaces have to be EXACT 
            // for the API server to decode the authorization signature       
            string dataToSign = "(request-target): get " + gatewayurl + "groups\n" +
                "host: " + gatewayhost + "\n" +   // no https only the host name
                "date: " + date;                  // GMT date as a string
            // The Request and API secret are now combined and encrypted
            string hmac = generateAuthHeader(dataToSign, apisecret);


            // Assemble the authorization string - This needs to match the dataToSign elements 
            // i.e. requires ONLY host date (no content body for a GET request)
            //- NOTE every character including spaces have to be EXACT else decryption will fail with 401 Unauthorized
            string authorisation = "Signature keyId=\"" + apikey + "\",algorithm=\"hmac-sha256\",headers=\"(request-target) host date\",signature=\"" + hmac + "\"";


            // Send the Request to the API server
            HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(requestendpoint);
            // Set the Headers
            WebReq.Method = "GET";
            WebReq.Headers.Add("Authorization", authorisation);
            WebReq.Headers.Add("Cache-Control", "no-cache");
            WebReq.Date = dateValue; // use datetime value GMT time


            // Get the Response - Status OK
            HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
            // Status information about the request
            Console.WriteLine(WebResp.StatusCode);
            Console.WriteLine(WebResp.ResponseUri);


When sending this request I am getting error.

System.Net.WebException: 'The remote server returned an error: (401) Unauthorized.'





world-checkworld-check-oneerror-401
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

NO SUPPORT !!!!!!!!!!!!!!!!!!!!
Upvotes
Accepted
1.2k 4 1 2

@ziad.abourizk

This is resolved now with Johnson, looks like the indentation issue.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
1.2k 4 1 2

@ziad.abourizk

The SLAs for the queries on the portal are 24hours.

Can you confirm if your World-Check One API account name is "Ibrakom" and also confirm if you are using pilot keys for the above consumption?

I suspect maybe your pilot API keys are expired which is causing a 401 as I don't see any active pilot access for "Ibrakom".

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Dear Mehran,

Yes account name is "Ibrakom" and api key is working.

I tried from POSTMAN and I am getting 200 OK

But when I try to run the C# code sample, I am getting a 401

Ziad


@ziad.abourizk


Let me send you an invite, let's have a quick call in the next 30mins and get this resolved.

Let me know if it's not feasible for you.