Si l'API Claude renvoie l'erreur suivante, la cause est que vous envoyez une valeur autre que la valeur par défaut pour temperature (ou top_p ou top_k) à un modèle Claude 4.7 ou ultérieur. La solution consiste à supprimer ces trois paramètres de vos requêtes. Dans la nouvelle version de l'API 2026-10-21, publiée en octobre 2026, l'envoi de l'un d'entre eux renvoie une erreur 400 pour tous les modèles, quelle que soit la valeur.

400 invalid_request_error
`temperature` is deprecated for this model.

Exemple de réponse lorsqu'une valeur autre que la valeur par défaut est envoyée à un modèle Claude 4.7 ou ultérieur (signalé par des utilisateurs). La documentation officielle ne précise pas si le message d'erreur renvoyé par la nouvelle version de l'API est identique.

Correction : supprimer les trois paramètres

Provoque une erreur 400

client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    temperature=0.2,
    messages=[...],
)

Après la correction

client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    messages=[...],
)

Pour modifier le format ou le ton des réponses, donnez vos consignes dans le prompt plutôt que par des paramètres (recommandation du guide de migration d'Anthropic).

Cet article s'appuie sur la documentation officielle d'Anthropic (vérifiée le 26 octobre 2026). Il explique les deux situations dans lesquelles cette erreur apparaît, ce qui se passe lorsque vous mettez à jour le SDK, les changements à apporter en même temps que la nouvelle version de l'API, et la manière de corriger l'erreur voisine anthropic-version: header is required. Les versions de l'API sont repérées par couleur : 2023-06-01 (la version précédente) et 2026-10-21 (la nouvelle version).

1. Les deux situations où l'erreur apparaît

L'API Claude sélectionne la version de l'API à l'aide de l'en-tête de requête anthropic-version. La présence d'une erreur dépend de la combinaison entre le modèle utilisé et la version de l'API.

Modèle2023-06-012026-10-21
Modèles Claude 4.7 et ultérieursOpus 4.7 et les modèles sortis après lui (par exemple Opus 5, Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1)400 si une valeur autre que la valeur par défaut est envoyéeFonctionne si vous envoyez la valeur par défaut ou n'envoyez rien400 si envoyé400 même avec la valeur par défaut
Modèles antérieursClaude Sonnet 4.6 et autresFonctionneVous pouvez baisser la valeur pour réduire la variation des réponses400 si envoyé400 même avec la valeur par défaut

Sources : Anthropic, « Migrating to API version 2026-10-21 » (les modèles Claude 4.7 et ultérieurs n'acceptent que la valeur par défaut ; Sonnet 4.6 et autres acceptent d'autres valeurs ; avec la version 2026-10-21, tous les modèles renvoient 400 même avec la valeur par défaut), et les guides de migration de chaque modèle (Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1 ; le guide de Fable 5.1 indique qu'il comporte les mêmes restrictions d'échantillonnage qu'Opus 5). Vérifié le 26 octobre 2026.

Les cellules marquées « 400 » dans le tableau correspondent aux deux situations suivantes.

  1. Situation 1 : vous avez envoyé une valeur autre que la valeur par défaut avec 2023-06-01 à un modèle Claude 4.7 ou ultérieur (première ligne du tableau, colonne 2023-06-01)
  2. Situation 2 : vous avez envoyé l'un des trois avec 2026-10-21, quels que soient le modèle et la valeur (colonne de droite du tableau)

Le message d'erreur cité en tête de cet article, `temperature` is deprecated for this model., apparaît dans la situation 1, dans une réponse de l'API qu'un utilisateur a signalée sur GitHub (exemple signalé). La documentation officielle d'Anthropic ne reprend pas le message d'erreur lui-même ; elle indique seulement que la requête renvoie une erreur 400.

En résumé, supprimer les trois paramètres corrige les deux situations. Si vous modifiiez des valeurs sur un modèle plus ancien, sachez que leur suppression changera le degré de variation des réponses (voir la section 2).

2. La correction, et comment obtenir la même réponse à chaque fois

  1. Supprimer les trois paramètres de vos requêtesRetirez temperature, top_p et top_k des requêtes de l'API Messages, ainsi que de chaque requête des Message Batches. Si un fichier de configuration ou une fonction d'encapsulation leur attribue une valeur par défaut, supprimez-la aussi à cet endroit.
  2. Ce qui se passe après la suppressionSi vous n'envoyez pas les trois paramètres, les valeurs par défaut sont utilisées pour choisir le jeton suivant (temperature vaut 1.0 par défaut). Les valeurs par défaut de top_p et top_k ne sont pas indiquées sous forme de nombres ; ne pas les envoyer est donc le choix le plus sûr. C'est la même chose que ne pas envoyer les trois paramètres avec les versions précédentes de l'API. Les modèles Claude 4.7 et ultérieurs n'acceptent depuis le départ que les valeurs par défaut ; leur comportement ne change donc pas.
  3. Si vous voulez la même réponse à chaque foisIl n'existe aucun réglage de remplacement. Le guide de migration d'Anthropic recommande de guider le comportement du modèle par des prompts. Il indique aussi que, même avec temperature = 0, rien ne garantissait des réponses identiques avec les modèles antérieurs. Si vous voulez seulement uniformiser le format des réponses, vous pouvez utiliser les Structured outputs, qui permettent de définir la forme d'un JSON que le modèle doit renvoyer.

L'exception concerne un modèle qui accepte d'autres valeurs, comme Claude Sonnet 4.6, dont vous avez baissé la valeur pour réduire la variation des réponses. Avec la nouvelle version de l'API, il faut la supprimer, et cet effet disparaît. Anthropic recommande soit de conserver cette requête sur 2023-06-01, soit de cesser d'envoyer le paramètre. Pour rester sur 2023-06-01, vous pouvez soit rester sur la version majeure actuelle du SDK (1.x pour Python), soit, si vous appelez directement en HTTP, conserver l'en-tête anthropic-version: 2023-06-01. Le guide de migration n'explique pas comment choisir une ancienne version de l'API requête par requête avec le nouveau SDK.

Correction en TypeScript et en HTTP

// TypeScript (@anthropic-ai/sdk) : supprimer temperature
const msg = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello, Claude" }],
});
# HTTP (corps JSON) : ne pas inclure les lignes temperature, top_p et top_k
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [{"role": "user", "content": "Hello, Claude"}]
}

3. Trouver où votre code envoie les paramètres

Si vous ne savez pas d'où vient l'erreur, recherchez les noms des trois paramètres dans votre code. Même si vous ne l'avez pas écrit vous-même, des valeurs par défaut sont souvent définies dans des fichiers de configuration, des fonctions partagées ou des variables d'environnement.

# macOS, Linux, WSL : rechercher dans le projet (sans tenir compte de la casse)
grep -rniE "temperature|top_p|top_k" --exclude-dir={node_modules,.venv,venv,.git,dist} \
  --include="*.py" --include="*.ts" --include="*.js" --include="*.json" \
  --include="*.yaml" --include="*.yml" --include="*.toml" --include=".env*" .

# Windows (PowerShell)
Get-ChildItem -Recurse -Include *.py,*.ts,*.js,*.json,*.yaml,*.yml,*.toml,.env* |
  Where-Object { $_.FullName -notmatch "node_modules|\\.?venv|\\.git\\|\\dist\\" } |
  Select-String -Pattern "temperature|top_p|top_k"
Emplacement trouvéCorrection
Ligne qui appelle l'APIRetirer les trois paramètres des arguments
Fonction partagée ou encapsulationSupprimer là où ils sont définis comme valeurs par défaut (vérifiez aussi si les appelants transmettent des valeurs)
Fichier de configuration ou variable d'environnementSupprimer l'entrée, ou vérifier qu'une valeur vide n'est pas ajoutée à la requête
Requêtes Message BatchesSupprimer aussi du params de chaque requête (chaque requête du lot renvoie 400)
Requêtes de comptage de jetonsSupprimer aussi du corps envoyé à /v1/messages/count_tokens
Via une bibliothèque tierceVérifier dans la documentation de cette bibliothèque si elle dispose d'un réglage qui envoie temperature à Claude

Les règles de la nouvelle version de l'API s'appliquent aux requêtes de l'API Messages, aux requêtes de comptage de jetons et à chaque requête des Message Batches (guide de migration d'Anthropic).

4. Ce qui se passe lorsque vous mettez à jour le SDK

Les SDK officiels envoient automatiquement la version de l'API en vigueur au moment de la sortie de leur version majeure. À partir des versions de SDK indiquées dans le tableau ci-dessous, ils envoient 2026-10-21, et les trois paramètres supprimés ont aussi disparu des types du SDK (guide de migration d'Anthropic). Lorsque vous mettez à jour le SDK, le problème peut donc apparaître d'abord sous forme d'erreur de vérification de types ou d'« argument inattendu », plutôt que sous forme d'erreur 400 renvoyée par l'API. Si vous ajoutez des paramètres au corps sans passer par les types (par exemple avec une fonctionnalité qui transmet des champs supplémentaires, ou en envoyant directement des requêtes en HTTP), l'API renvoie une erreur 400. La correction est la même dans les deux cas : supprimer les trois paramètres.

Langage ou outilPremière version qui envoie 2026-10-21
Pythonanthropic 2.0.0
TypeScript@anthropic-ai/sdk 1.0.0Mettez aussi à jour en v1 les paquets associés pour Bedrock, Vertex et Foundry
Javacom.anthropic:anthropic-java 3.0.0
Goanthropic-sdk-go 2.0.0Le chemin du module est github.com/anthropics/anthropic-sdk-go/v2
C#Anthropic 13.0.0
Rubyanthropic 2.0.0
PHPanthropic-ai/sdk 1.0.0
CLIant 2.0.0

Source : Anthropic, « Migrating to API version 2026-10-21 », Upgrade steps. Si vous appelez l'API sans SDK, définissez l'en-tête anthropic-version à 2026-10-21 pour utiliser la nouvelle version de l'API.

La nouvelle version de l'API est disponible sur l'API Claude, sur Claude Platform on AWS, sur Claude sur Google Cloud (gérée à la fois par Anthropic et par Google) et sur Microsoft Foundry. Sur Amazon Bedrock, seuls les modèles Claude 4.7 et ultérieurs sont concernés. Si vous appelez des modèles plus anciens sur cette plateforme, Anthropic conseille de conserver la version actuelle de votre SDK (ou votre anthropic-version actuelle) (Versions).

Étapes pour mettre à jour le SDK

  1. Passer à la nouvelle version de l'APIMettez le SDK à la version indiquée dans le tableau ci-dessus. Si vous appelez directement en HTTP, définissez anthropic-version: 2026-10-21.
  2. Corriger les changements incompatiblesSupprimez les trois paramètres et corrigez les éléments du tableau de la section 5 qui vous concernent. Vérifiez aussi les modifications de syntaxe des nouveaux SDK (comme les noms de types) dans la partie « SDK and CLI changes » du guide de migration.
  3. Tester avec la nouvelle version de l'API avant la mise en productionAvant de passer en production, vérifiez que vos requêtes aboutissent avec la nouvelle version de l'API. Publiez mise à jour du SDK et corrections dans la même version.

Source : Anthropic, « Migrating to API version 2026-10-21 », Upgrade steps (Switch to 2026-10-21 → Update your code for the breaking changes → Test against 2026-10-21).

5. Autres changements à corriger avec la nouvelle version de l'API

Si vous passez à la nouvelle version de l'API, d'autres changements s'ajoutent à temperature. (La ligne sur la clé d'API ne concerne que les changements du SDK et de la CLI ; elle n'a pas d'importance si vous appelez directement en HTTP.) Ne corrigez que ceux qui vous concernent (section Breaking changes du même guide de migration).

Ce qui changeCe qui change exactementCorrection
Documents dans les messages de l'assistantErreur 400Envoyez les documents dans les messages de l'utilisateur
Citations dans le texte d'un message utilisateurL'envoi de citations non vides renvoie une erreur 400Supprimez ces citations (les citations dans les messages de l'assistant restent acceptées comme avant)
Mode d'envoi de la clé d'APIChangement du SDK et de la CLI (l'API accepte les deux en-têtes)Envoyée avec Authorization: Bearer au lieu de X-Api-KeyAdaptez les proxys, les passerelles et les filtres de journaux qui lisent la clé pour utiliser Authorization (l'API accepte les deux en-têtes)
Noms de champs de l'API d'administrationPar exemple, le champ workspace_id des clés d'API disparaîtUtilisez les nouveaux noms, comme scope.workspace_id

L'erreur suivante apparaît lorsqu'une requête ne comporte pas d'en-tête de version de l'API.

400 invalid_request_error
anthropic-version: header is required

Les SDK officiels envoient automatiquement la version de l'API. Cette erreur apparaît donc surtout lorsque vous appelez directement l'API en HTTP, sans SDK. Par exemple, des utilisateurs ont signalé sur GitHub ce cas : un client ou un outil conçu pour OpenAI pointe vers l'URL de l'API Claude et tente de lister les modèles (/v1/models) (exemple 1, exemple 2).

La correction consiste à ajouter l'en-tête. Pour du nouveau code, indiquez 2026-10-21 ; pour faire fonctionner le code existant sans le modifier, indiquez 2023-06-01.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2026-10-21" \
  -H "content-type: application/json" \
  -d '{"model": "claude-opus-5-5", "max_tokens": 1024,
       "messages": [{"role": "user", "content": "Hello, Claude"}]}'

Source : Anthropic, « Versions » (l'en-tête anthropic-version est obligatoire dans les requêtes ; les SDK l'envoient automatiquement). Le message d'erreur provient d'une réponse de l'API signalée par un utilisateur sur GitHub. L'API accepte la clé d'API dans l'en-tête x-api-key ou dans l'en-tête Authorization: Bearer (guide de migration).

Si l'outil que vous utilisez ne vous permet pas d'ajouter des en-têtes, vérifiez qu'il prend en charge l'API Claude (et qu'il n'appelle pas l'API comme s'il utilisait le format d'OpenAI).

Résumé

  • `temperature` is deprecated for this model. est l'erreur 400 renvoyée lorsqu'une valeur autre que la valeur par défaut de temperature, top_p ou top_k est envoyée à un modèle Claude 4.7 ou ultérieur. Supprimer les trois paramètres la corrige.
  • Dans la nouvelle version de l'API 2026-10-21, l'envoi de ces trois paramètres renvoie une erreur 400, quelles que soient la valeur et le modèle (le message d'erreur n'est pas publié dans la documentation officielle).
  • Les nouveaux SDK, comme anthropic 2.0.0 pour Python, envoient automatiquement 2026-10-21, et les trois arguments ont aussi disparu des types. Un code qui les transmet encore génère une erreur d'argument ou une erreur 400 après la mise à jour du SDK.
  • Aucun réglage ne garantit la même réponse à chaque fois. Donnez vos consignes dans le prompt (vous pouvez uniformiser le format des réponses avec les Structured outputs).
  • anthropic-version: header is required signifie que l'en-tête de version de l'API est absent. Cette erreur survient lorsque vous appelez l'API sans SDK.

FAQ

Q. Puis-je envoyer temperature avec la valeur 1.0 (la valeur par défaut) ?

Avec la nouvelle version de l'API 2026-10-21, l'envoi renvoie une erreur 400, même avec la valeur par défaut. Si vous appelez un modèle Claude 4.7 ou ultérieur avec 2023-06-01, la valeur par défaut fonctionne, mais il n'y a aucune raison de l'envoyer : le plus sûr est de la supprimer.

Q. Je mettais temperature à 0 pour obtenir la même réponse à chaque fois. Que dois-je utiliser à la place ?

Il n'existe aucun réglage de remplacement. Le guide de migration d'Anthropic indique que même temperature = 0 n'a jamais garanti des réponses identiques. Si vous voulez uniformiser le format des réponses (par exemple les champs d'un JSON), utilisez les Structured outputs, et précisez en détail la formulation et les critères de décision dans le prompt.

Q. Puis-je continuer à utiliser la version actuelle sans passer à la nouvelle version de l'API ?

Oui. Anthropic indique qu'il conserve les champs d'entrée et de sortie existants dans chaque version de l'API, et que 2023-06-01 reste utilisable comme avant. La page Versions n'indique pas de date d'arrêt pour 2023-06-01 (Versions, vérifiée le 26 octobre 2026). Toutefois, pour les modèles Claude 4.7 et ultérieurs, une valeur de temperature ou similaire autre que la valeur par défaut renvoie toujours une erreur 400, même avec 2023-06-01. Anthropic recommande aussi d'utiliser la version la plus récente de l'API lorsque c'est possible ; la mise à jour du SDK vous fait passer automatiquement à la nouvelle version.

Q. J'ai changé de modèle pour passer à Claude 4.7 ou ultérieur, et j'ai une erreur

Après le passage à un modèle Claude 4.7 ou ultérieur, une valeur de temperature ou similaire autre que la valeur par défaut renvoie une erreur 400, même si la version de l'API reste la même. Pour les autres points à corriger lors d'un changement de modèle (comme les réglages de réflexion ou le prefill), consultez le « Guide de migration Claude Opus 4.7 ».