Home > OS >  You need to provide your API key in an Authorization header
You need to provide your API key in an Authorization header

Time:01-24

I am getting an error for the following PHP code:

$curl = curl_init("https://api.openai.com/v1/engines/davinci/completions");

$data = array(
  'prompt' => 'how many sundays in 2023',
  'max_tokens' => 256,
  'temperature' => 0.7,
  'model' => 'text-davinci-003'
);

curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer sk-MY-API-KEY']);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result);
print $result->choices[0]->text;

I correctly provided the API Key, but getting this error:

Error message: You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY)

Highly appreciate your support.

CodePudding user response:

All Deprecated

Change URL from this...

https://api.openai.com/v1/engines/davinci/completions

...to this.

https://api.openai.com/v1/completions

EDIT

Change this...

curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer sk-MY-API-KEY']);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

...to this.

$headers  = [
    'Accept: application/json',
    'Content-Type: application/json',
    'Authorization: Bearer sk-MY-API-KEY'
];

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  • Related