The API currently uses very simple dated versioning in the format YYYY-MM-DD. This is not to be confused with our model-versioning which is independent. All model versions are compatible with all API versions. The version must match absolutely to be applied, eg if 2021-11-28 is a version and you input 2021-11-29, the API will return an error.

The version is supplied via a Cohere-Version header and is used as following;

import cohere
co = cohere.Client('{apiKey}', '2021-11-08')
response = co.generate(
  prompt='Once upon a time in a magical land called',
  max_tokens=50)
print('Prediction: {}'.format(response.generations[0].text))
const cohere = require('cohere-ai');
cohere.init('{apiKey}', '2021-11-08');
(async () => {
  const response = await cohere.generate({
    prompt: 'Once upon a time in a magical land called',
    max_tokens: 50
  });
  console.log(`Prediction: ${response.body.generations[0].text}`);
})();
package main
import (
  "fmt"

  cohere "github.com/cohere-ai/cohere-go"
)
func main() {
  co, err := cohere.CreateClient("{apiKey}")
  if err != nil {
    fmt.Println(err)
    return
  }
  co.Version = "2021-11-08"
  response, err := co.Generate(cohere.GenerateOptions{
    Prompt:      `Once upon a time in a magical land called`,
    MaxTokens:   50,
  })
  if err != nil {
    fmt.Println(err)
    return
  }

  fmt.Println("Prediction:", response.Generations[0].text)
}
curl --location --request POST 'https://api.cohere.ai/generate' \
  --header 'Authorization: BEARER {apiKey}' \
  --header 'Content-Type: application/json' \
  --header 'Cohere-Version: 2021-11-08' \
  --data-raw '{
      "prompt": "Once upon a time in a magical land called",
      "max_tokens": 50
    }'

Versions

If no version is supplied in the header, then the API will default to no version, meaning pre-2021-11-08. Important note that the SDKs will default you to the most recent version, which is currently 2021-11-08.

2021-11-08

This version introduces multiple generations, meaning that the generations endpoint will now accept a num_generations argument in the JSON and will always return an array of generations. See generate reference for details.

No version (deprecated)

See specific endpoint documentation for details on how no version behaves.