Wenn die Claude API den folgenden Fehler zurückgibt, liegt die Ursache darin, dass Sie an ein Claude-4.7-Modell oder neueres einen nicht standardmäßigen Wert für temperature (oder top_p bzw. top_k) senden. Die Lösung besteht darin, diese drei Parameter aus Ihren Anfragen zu entfernen. In der neuen API-Version 2026-10-21, die im Oktober 2026 veröffentlicht wurde, führt das Senden eines dieser Parameter bei jedem Modell zu einem 400-Fehler, unabhängig vom Wert.
400 invalid_request_error
`temperature` is deprecated for this model.
Beispiel für eine Antwort, wenn ein Claude-4.7-Modell oder neueres einen nicht standardmäßigen Wert erhält (von Nutzern gemeldet). Die offizielle Dokumentation sagt nicht, ob die Fehlermeldung in der neuen API-Version identisch ist.
So beheben Sie es: Die drei Parameter entfernen
Führt zu einem 400-Fehler
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
temperature=0.2,
messages=[...],
)Nach der Korrektur
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[...],
)Wenn Sie Format oder Tonfall der Antworten ändern möchten, geben Sie die Anweisung im Prompt statt über Parameter (von Anthropics Migrationsleitfaden empfohlen).
Dieser Artikel erklärt auf Grundlage der offiziellen Dokumentation von Anthropic (geprüft am 26. Oktober 2026) die beiden Situationen, in denen dieser Fehler auftritt, was beim Aktualisieren des SDK passiert, welche Änderungen Sie zusammen mit der neuen API-Version vornehmen sollten, und wie Sie den ähnlichen Fehler anthropic-version: header is required beheben. API-Versionen sind farblich gekennzeichnet: 2023-06-01 (die bisherige Version) und 2026-10-21 (die neue Version).
1. Die zwei Situationen, in denen der Fehler auftritt
Die Claude API wählt die API-Version über den Anfrage-Header anthropic-version. Ob ein Fehler auftritt, hängt von der Kombination aus dem verwendeten Modell und der API-Version ab.
| Modell | 2023-06-01 | 2026-10-21 |
|---|---|---|
| Claude-4.7-Modelle und neuereOpus 4.7 und Modelle, die danach erschienen sind (zum Beispiel Opus 5, Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1) | Bei einem nicht standardmäßigen Wert 400Funktioniert, wenn Sie den Standardwert senden oder nichts senden | Bei Senden 400Auch mit dem Standardwert 400 |
| Ältere ModelleClaude Sonnet 4.6 und andere | FunktioniertSie können den Wert senken, um die Schwankung der Antworten zu verringern | Bei Senden 400Auch mit dem Standardwert 400 |
Quellen: Anthropic, „Migrating to API version 2026-10-21“ (Claude-4.7-Modelle und neuere akzeptieren nur den Standardwert; Sonnet 4.6 und andere akzeptieren auch andere Werte; mit 2026-10-21 liefern alle Modelle auch mit dem Standardwert 400), sowie die Migrationsleitfäden der einzelnen Modelle (Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1; der Leitfaden zu Fable 5.1 nennt dieselben Einschränkungen bei der Sampling-Steuerung wie Opus 5). Geprüft am 26. Oktober 2026.
Die Zellen, die in der Tabelle mit „400“ markiert sind, entsprechen den folgenden zwei Situationen.
- Situation 1: Sie haben an ein Claude-4.7-Modell oder neueres mit 2023-06-01 einen nicht standardmäßigen Wert gesendet (erste Zeile der Tabelle, Spalte 2023-06-01)
- Situation 2: Sie haben mit 2026-10-21 einen der drei Parameter gesendet, unabhängig von Modell und Wert (rechte Spalte der Tabelle)
Die Fehlermeldung `temperature` is deprecated for this model. erscheint in Situation 1 in einer API-Antwort, die ein Nutzer auf GitHub gemeldet hat (gemeldetes Beispiel). Die offizielle Dokumentation von Anthropic enthält die Fehlermeldung selbst nicht; dort steht nur, dass die Anfrage mit einem 400-Fehler abgelehnt wird.
Kurz gesagt: Wenn Sie die drei Parameter entfernen, ist beides behoben. Wenn Sie bei älteren Modellen Werte verändert haben, beachten Sie, dass das Entfernen die Schwankung der Antworten verändert (siehe Abschnitt 2).
2. Die Korrektur und wie Sie jedes Mal dieselbe Antwort erhalten
- Die drei Parameter aus Ihren Anfragen entfernenEntfernen Sie
temperature,top_pundtop_ksowohl aus Messages-API-Anfragen als auch aus jeder einzelnen Anfrage in Message Batches. Wenn eine Konfigurationsdatei oder eine Wrapper-Funktion dafür einen Standardwert setzt, entfernen Sie ihn auch dort. - Was nach dem Entfernen passiertWenn Sie die drei Parameter nicht senden, wird der nächste Token mit den Standardwerten gewählt (
temperatureist standardmäßig 1.0). Fürtop_pundtop_ksind die Standardwerte nicht als Zahlen angegeben. Daher ist es am sichersten, sie nicht zu senden. Das entspricht dem Verhalten bei früheren API-Versionen, wenn Sie die drei Parameter nicht gesendet haben. Claude-4.7-Modelle und neuere akzeptieren von Anfang an nur die Standardwerte, daher ändert sich bei ihnen nichts. - Wenn Sie jedes Mal dieselbe Antwort möchtenDafür gibt es keine Einstellung, die diese Funktion ersetzt. Anthropics Migrationsleitfaden empfiehlt, das Verhalten des Modells über Prompts zu steuern. Außerdem heißt es dort, dass auch mit
temperature = 0bei älteren Modellen nie garantiert war, dass dieselbe Antwort erscheint. Wenn Sie nur das Antwortformat vereinheitlichen möchten, können Sie Structured Outputs verwenden. Damit legen Sie eine JSON-Struktur fest, die das Modell zurückgibt.
Eine Ausnahme gilt für Modelle wie Claude Sonnet 4.6, die andere Werte akzeptieren, wenn Sie den Wert gesenkt haben, um die Schwankung der Antworten zu verringern. Mit der neuen API-Version müssen Sie den Parameter entfernen, und dieser Effekt entfällt. Anthropic empfiehlt entweder, diese Anfrage bei 2023-06-01 zu belassen, oder den Parameter nicht mehr zu senden. Um bei 2023-06-01 zu bleiben, bleiben Sie entweder bei der aktuellen Hauptversion des SDK (bei Python 1.x) oder behalten bei direkten HTTP-Aufrufen den Header anthropic-version: 2023-06-01 bei. Der Migrationsleitfaden erklärt nicht, wie Sie mit dem neuen SDK pro Anfrage eine ältere API-Version auswählen.
Die Korrektur in TypeScript und HTTP
// TypeScript (@anthropic-ai/sdk): temperature entfernen
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello, Claude" }],
});
# HTTP (JSON-Body): die Zeilen für temperature, top_p und top_k weglassen
{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello, Claude"}]
}
3. Die Stelle im eigenen Code finden, an der die Parameter gesendet werden
Wenn Sie nicht wissen, wo der Fehler herkommt, suchen Sie in Ihrem Code nach den Namen der drei Parameter. Auch wenn Sie den Code nicht selbst geschrieben haben, werden Standardwerte oft in Konfigurationsdateien, gemeinsam genutzten Funktionen oder Umgebungsvariablen gesetzt.
# macOS, Linux, WSL: Projekt durchsuchen (Groß-/Kleinschreibung wird ignoriert)
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"
| Gefunden an dieser Stelle | So beheben Sie es |
|---|---|
| Zeile, die die API aufruft | Die drei Parameter aus den Argumenten entfernen |
| Gemeinsame Funktion oder Wrapper | Die Stelle entfernen, an der sie als Standardwert gesetzt werden (außerdem prüfen, ob Aufrufer Werte übergeben) |
| Konfigurationsdatei oder Umgebungsvariable | Den Eintrag entfernen oder prüfen, dass ein leerer Wert nicht in die Anfrage aufgenommen wird |
| Anfragen in Message Batches | Auch aus den params jeder Anfrage entfernen (jede Anfrage im Batch liefert sonst 400) |
| Anfragen zum Zählen von Tokens | Auch aus dem Body entfernen, der an /v1/messages/count_tokens gesendet wird |
| Über eine Bibliothek eines Drittanbieters | In der Dokumentation der Bibliothek prüfen, ob sie eine Einstellung hat, die temperature an Claude sendet |
Die Regeln der neuen API-Version gelten für Messages-API-Anfragen, Anfragen zum Zählen von Tokens und jede einzelne Anfrage in Message Batches (Anthropics Migrationsleitfaden).
4. Was passiert, wenn Sie das SDK aktualisieren
Die offiziellen SDKs senden automatisch die API-Version, die zum Zeitpunkt der Veröffentlichung ihrer Hauptversion aktuell war. Ab den SDK-Versionen in der folgenden Tabelle senden sie 2026-10-21, und die drei entfernten Parameter sind auch aus den Typen des SDK verschwunden (Anthropics Migrationsleitfaden). Wenn Sie das SDK aktualisieren, kann das Problem deshalb zuerst als Fehler bei der Typprüfung oder als Fehler „unerwartetes Argument“ auftreten, nicht erst als 400 der API. Wenn Sie Parameter am Typsystem vorbei in den Body einfügen (zum Beispiel über eine Funktion, die zusätzliche Body-Felder übergibt, oder bei direktem Senden über HTTP), liefert die API einen 400-Fehler. In beiden Fällen ist die Korrektur gleich: Entfernen Sie die drei Parameter.
| Sprache oder Werkzeug | Erste Version, die 2026-10-21 sendet |
|---|---|
| Python | anthropic 2.0.0 |
| TypeScript | @anthropic-ai/sdk 1.0.0Auch die zugehörigen Pakete für Bedrock, Vertex und Foundry auf v1 aktualisieren |
| Java | com.anthropic:anthropic-java 3.0.0 |
| Go | anthropic-sdk-go 2.0.0Der Modulpfad lautet github.com/anthropics/anthropic-sdk-go/v2 |
| C# | Anthropic 13.0.0 |
| Ruby | anthropic 2.0.0 |
| PHP | anthropic-ai/sdk 1.0.0 |
| CLI | ant 2.0.0 |
Quelle: Anthropic, „Migrating to API version 2026-10-21“, Upgrade steps. Wenn Sie die API ohne SDK aufrufen, setzen Sie den Header anthropic-version auf 2026-10-21, um die neue API-Version zu verwenden.
Die neue API-Version ist über die Claude API, Claude Platform on AWS, Claude auf Google Cloud (sowohl von Anthropic als auch von Google verwaltet) und Microsoft Foundry verfügbar. Auf Amazon Bedrock gilt sie nur für Claude-4.7-Modelle und neuere. Wenn Sie dort ältere Modelle aufrufen, rät Anthropic, bei der aktuellen SDK-Version (oder dem aktuellen anthropic-version) zu bleiben (Versions).
Schritte beim Aktualisieren des SDK
- Auf die neue API-Version umstellenAktualisieren Sie das SDK auf die Version in der Tabelle oben. Wenn Sie HTTP direkt verwenden, setzen Sie
anthropic-version: 2026-10-21. - Die inkompatiblen Änderungen behebenEntfernen Sie die drei Parameter und beheben Sie die Punkte aus der Tabelle in Abschnitt 5, die auf Sie zutreffen. Prüfen Sie außerdem unter „SDK and CLI changes“ im Migrationsleitfaden, ob sich die Schreibweise im neuen SDK geändert hat (zum Beispiel Typnamen).
- Vor der Veröffentlichung mit der neuen API-Version testenTesten Sie vor dem Livegang, ob Ihre Anfragen mit der neuen API-Version funktionieren. Veröffentlichen Sie die SDK-Aktualisierung und die Korrekturen gemeinsam.
Quelle: 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. Weitere Änderungen, die mit der neuen API-Version zu beheben sind
Wenn Sie auf die neue API-Version umstellen, gibt es außer temperature noch weitere Änderungen. (Die Zeile zum API-Schlüssel betrifft nur das SDK und die CLI; bei direktem HTTP-Aufruf spielt sie keine Rolle.) Beheben Sie nur die Punkte, die auf Sie zutreffen (Breaking changes im selben Migrationsleitfaden).
| Was sich ändert | Was genau sich ändert | So beheben Sie es |
|---|---|---|
| Dokumente in Nachrichten des Assistenten | 400-Fehler | Dokumente in Nachrichten des Nutzers senden |
| Citations im Text einer Nachricht des Nutzers | Das Senden nicht leerer Citations führt zu einem 400 | Diese Citations entfernen (Citations in Nachrichten des Assistenten funktionieren weiterhin wie bisher) |
| Übermittlung des API-SchlüsselsÄnderung in SDK und CLI (die API akzeptiert beide Header) | Wird mit Authorization: Bearer statt X-Api-Key gesendet | Proxies, Gateways und Log-Filter, die den Schlüssel auslesen, auf Authorization umstellen (die API akzeptiert beide Header) |
| Feldnamen der Admin API | Zum Beispiel entfällt das Feld workspace_id bei API-Schlüsseln | Die neuen Namen wie scope.workspace_id verwenden |
6. So beheben Sie anthropic-version: header is required
Der folgende Fehler tritt auf, wenn eine Anfrage keinen Header für die API-Version enthält.
400 invalid_request_error
anthropic-version: header is required
Die offiziellen SDKs senden die API-Version automatisch. Deshalb tritt der Fehler vor allem auf, wenn Sie HTTP direkt ohne SDK aufrufen. Auf GitHub wurde zum Beispiel berichtet, dass er auftritt, wenn ein Client oder Werkzeug, das für OpenAI gebaut wurde, auf die URL der Claude API zeigt und versucht, die Modelle (/v1/models) abzurufen (Beispiel 1, Beispiel 2).
Die Lösung besteht darin, den Header hinzuzufügen. Für neuen Code geben Sie 2026-10-21 an. Damit bestehender Code ohne Änderungen funktioniert, geben Sie 2023-06-01 an.
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"}]}'
Quelle: Anthropic, „Versions“ (der Header anthropic-version ist in Anfragen erforderlich; SDKs senden ihn automatisch). Die Fehlermeldung stammt aus einer API-Antwort, die ein Nutzer auf GitHub gemeldet hat. Die API akzeptiert den API-Schlüssel sowohl im Header x-api-key als auch in Authorization: Bearer (Migrationsleitfaden).
Wenn das von Ihnen verwendete Werkzeug keine eigenen Header hinzufügen lässt, prüfen Sie, ob es die Claude API unterstützt (und ob es die API womöglich im Format von OpenAI aufruft).
Zusammenfassung
`temperature` is deprecated for this model.ist der 400-Fehler, der auftritt, wenn Sie an ein Claude-4.7-Modell oder neueres einen nicht standardmäßigen Wert fürtemperature,top_podertop_ksenden. Das Entfernen der drei Parameter behebt ihn.- In der neuen API-Version 2026-10-21 führt das Senden der drei Parameter unabhängig von Wert oder Modell zu einem 400-Fehler (die Fehlermeldung ist nicht in der offiziellen Dokumentation veröffentlicht).
- Neuere SDKs wie
anthropic2.0.0 für Python senden 2026-10-21 automatisch, und die drei Argumente sind auch aus den Typen entfernt. Code, der sie noch übergibt, erhält nach dem SDK-Update einen Argumentfehler oder einen 400-Fehler. - Es gibt keine Einstellung, die garantiert, dass jedes Mal dieselbe Antwort kommt. Steuern Sie das Verhalten über Prompts (das Antwortformat können Sie mit Structured Outputs vereinheitlichen).
anthropic-version: header is requiredbedeutet, dass der Header für die API-Version fehlt. Er tritt auf, wenn Sie die API ohne SDK aufrufen.
FAQ
F. Kann ich temperature auf 1.0 (den Standardwert) setzen und senden?
Mit der neuen API-Version 2026-10-21 führt das Senden auch mit dem Standardwert zu einem 400-Fehler. Wenn Sie ein Claude-4.7-Modell oder neueres mit 2023-06-01 aufrufen, funktioniert der Standardwert. Es bringt aber nichts, ihn zu senden, daher ist das Entfernen die sicherste Lösung.
F. Ich habe temperature = 0 verwendet, um jedes Mal dieselbe Antwort zu erhalten. Was verwende ich stattdessen?
Dafür gibt es keine Ersatzeinstellung. Anthropics Migrationsleitfaden sagt, dass auch temperature = 0 nie garantiert hat, dass dieselbe Antwort erscheint. Wenn Sie das Antwortformat vereinheitlichen möchten (etwa JSON-Felder), verwenden Sie Structured Outputs. Formulierungen und Entscheidungskriterien legen Sie im Prompt genau fest.
F. Kann ich bei der aktuellen Version bleiben, ohne auf die neue API-Version umzustellen?
Ja. Anthropic erklärt, dass innerhalb jeder API-Version bestehende Eingabe- und Ausgabefelder erhalten bleiben. 2023-06-01 können Sie weiterhin wie bisher angeben. Auf der Seite Versions steht nicht, wann 2023-06-01 eingestellt wird (Versions, geprüft am 26. Oktober 2026). Bei Claude-4.7-Modellen und neueren führt ein nicht standardmäßiges temperature oder ein ähnlicher Parameter allerdings auch mit 2023-06-01 zu einem 400-Fehler. Anthropic empfiehlt außerdem, nach Möglichkeit die neuere API-Version zu verwenden. Wenn Sie das SDK aktualisieren, wechselt es automatisch auf die neue Version.
F. Ich habe auf ein Claude-4.7-Modell oder neueres gewechselt und bekomme einen Fehler
Nach dem Wechsel auf ein Claude-4.7-Modell oder neueres führt ein nicht standardmäßiges temperature oder ein ähnlicher Parameter auch dann zu einem 400-Fehler, wenn die API-Version gleich bleibt. Weitere Punkte, die Sie beim Modellwechsel korrigieren müssen (etwa Denkeinstellungen und Prefill), finden Sie im Artikel „Claude Opus 4.7 Migrationsleitfaden“.