I am trying to develop client application for GoDaddy based on their API that they provide here https://developer.godaddy.com And I have a problem with simple example, I am trying to use the next PHP code to check if domain available:
use GuzzleHttp\Client;
try {
$client = new Client([
'base_uri' => 'https://api.godaddy.com',
]);
$responce = $client->get(
'/v1/domains/available?domain=example.guru',
[
'headers' => [
'Authorization' => "sso-key $myKey:$mySecret",
'X-Shopper-Id' => "$myID",
'Accept' => 'application/json',
]
]
);
echo $responce->getBody();
} catch (Exception $e) {
echo $e->getMessage();
}
And all the time I get error: "Client error: 401". Same problem I have with using cURL library. I didn't find any online support. I need help with it, can someone explain how I should authorize at their api service? Maybe I need to send any other http headers or additional params?
The problem was that I was using TEST {KEY}:{SECRET} and set wrong URL.
For the test {KEY}:{SECRET} URL has to be: https://api.ote-godaddy.com.
Also the method for checking domain availability (/v1/domains/available) doesn't need parameter 'X-Shopper-Id' in header. It works well without it. With parameter X-Shopper-Id request returns error "NOT_FOUND: The specified shopperId could not be found"(but it's other problem, maybe I didn't activate some option)
So if to take into account all changes, the working code for checking domain availability with test key/secret should be like this:
Are the key and secret you're using for production? When I go through the process, by default it creates a TEST key/secret, which I think are meant to go against https://api.ote-godaddy.com
If you are using production keys, try doing a manual Curl request from the command like; something like:
Let us know how it works out!
I am using php and curl.
above code is working fine for me.