{
  "aboutHtml": "<p>Claude Opus 4.8 verbindet längere agentische Arbeit, Fachanalysen, visuelles Verständnis und die Nutzung einer von der Anwendung bereitgestellten Erinnerung. Anthropic hebt das Verhalten des Modells bei der Prüfung von Schlussfolgerungen gesondert hervor: Es wurde darauf trainiert, fehlende Belege zu erkennen, Unsicherheit mitzuteilen und ohne ausreichende Grundlage kein erreichtes Ergebnis zu behaupten.</p><h4>Den Rahmen präzisieren und die Arbeit abschließen</h4><p>Bei einer Ingenieuraufgabe kann das Modell mehrere zusammenhängende Komponenten untersuchen, einen Plan betrachten, Fehler erkennen und die Ausführung nach neuen Daten fortsetzen. Für Dokumentanalysen sind seine Fähigkeit, mit dichten Inhalten zu arbeiten, und seine Aufmerksamkeit für Probleme im Eingabematerial und in Schlussfolgerungen wichtig. Zu den beschriebenen fachlichen Einsatzbereichen gehören Forschung, Analyse, Dokumentarbeit und die Vorbereitung von Präsentationsinhalten.</p><p>Anweisungen werden wörtlich interpretiert, besonders bei niedrigen Aufwandsstufen. Das Modell muss eine Bedingung nicht stillschweigend von einem Element auf alle anderen übertragen: Geltungsbereich, Format und Ergebniskriterien sollten ausdrücklich festgelegt werden. Bei einer Codeprüfung bedeutet das, dass die vorgegebene Schweregradschwelle beeinflusst, welche gefundenen Probleme in die Antwort gelangen. Die Anforderung, alle Funde zu melden, muss getrennt von der Anforderung formuliert werden, sie zu filtern.</p><h4>Reasoning und Darstellung einstellen</h4><p>Opus 4.8 unterstützt adaptives Reasoning, das in der Anwendung aktiviert werden muss. Manuelles extended thinking mit separatem <code>budget_tokens</code> wird in dieser Version nicht unterstützt. Die <code>effort</code>-Stufen sind <code>low</code>, <code>medium</code>, <code>high</code>, <code>xhigh</code> und <code>max</code>; die Standardstufe ist <code>high</code>. Laut Anthropic können tiefere Stufen den Analyseumfang, die Werkzeugaufrufe und die Arbeitszeit erhöhen; für kurze, begrenzte Aufgaben ist ein geringerer Ausarbeitungsgrad hilfreich.</p><p>Das Modell wählt den Detailgrad anhand seiner Einschätzung der Aufgabenkomplexität: Eine einfache Frage kann eine knappe Antwort erhalten, eine offene Analyse eine ausführliche. Wird ein bestimmter Umfang oder ein bestimmter Schreibstil benötigt, sollte dies ausdrücklich angegeben werden, möglichst mit einem positiven Beispiel. Bei längerer Arbeit mit Werkzeugen sind Zwischenmeldungen zum Fortschritt vorgesehen; deren Inhalt und Häufigkeit lassen sich ebenfalls durch Anweisungen steuern.</p><h4>Materialien, Werkzeuge und visuelle Gestaltung</h4><p>Die Eingabe besteht aus <strong>Text und Bildern</strong>, das Ergebnis wird <strong>als Text</strong> erstellt. Das Kontextfenster umfasst <strong>1 Million Tokens</strong>, im gewöhnlichen Modus beträgt die maximale Antwort <strong>128 Tausend Tokens</strong>. Die verlässliche Wissensgrenze liegt bei <strong>Januar 2026</strong>.</p><p>Formate für gewöhnliche visuelle Eingaben beim Hersteller: JPEG/PNG/GIF/WebP, bei Animationen das erste Bild. Bei nativer Analyse beträgt die lange Seite 2576 Pixel, entsprechend 4784 visuellen Tokens; große Bilder werden vor der Analyse verkleinert. Die Unterstützung von Dateien und Parametern hängt von der Methode der Anwendung ab.</p><p>Websuche, Befehlsausführung, dateibasierte Erinnerung, Oberflächensteuerung und selbstständige Teilaufgaben erfordern Anwendungsunterstützung. Das Modell kann verfügbare Mittel verwenden; die Aufwandsstufe und eine klare Beschreibung des Werkzeugzwecks beeinflussen jedoch die Aktionswahl. Das ist besonders bei Arbeit hilfreich, die Informationssuche, Analyse und technische Ausführung verbindet.</p><p>Bei der Erstellung von Oberflächen und Folien hat Opus 4.8 eigene beständige Gestaltungspräferenzen. Für ein Ergebnis in einem bestimmten Stil sollten eine konkrete Palette, Typografie, Komposition und Bewegungscharakteristik genannt oder zunächst mehrere Gestaltungsrichtungen angefordert werden. Eine fertige Datei oder eine funktionsfähige Oberfläche entsteht über die Werkzeuge der Umgebung; die eigene Ausgabe des Modells bleibt Text.</p>",
  "aboutText": "Claude Opus 4.8 verbindet längere agentische Arbeit, Fachanalysen, visuelles Verständnis und die Nutzung einer von der Anwendung bereitgestellten Erinnerung. Anthropic hebt das Verhalten des Modells bei der Prüfung von Schlussfolgerungen gesondert hervor: Es wurde darauf trainiert, fehlende Belege zu erkennen, Unsicherheit mitzuteilen und ohne ausreichende Grundlage kein erreichtes Ergebnis zu behaupten.\n\n### Den Rahmen präzisieren und die Arbeit abschließen\n\nBei einer Ingenieuraufgabe kann das Modell mehrere zusammenhängende Komponenten untersuchen, einen Plan betrachten, Fehler erkennen und die Ausführung nach neuen Daten fortsetzen. Für Dokumentanalysen sind seine Fähigkeit, mit dichten Inhalten zu arbeiten, und seine Aufmerksamkeit für Probleme im Eingabematerial und in Schlussfolgerungen wichtig. Zu den beschriebenen fachlichen Einsatzbereichen gehören Forschung, Analyse, Dokumentarbeit und die Vorbereitung von Präsentationsinhalten.\n\nAnweisungen werden wörtlich interpretiert, besonders bei niedrigen Aufwandsstufen. Das Modell muss eine Bedingung nicht stillschweigend von einem Element auf alle anderen übertragen: Geltungsbereich, Format und Ergebniskriterien sollten ausdrücklich festgelegt werden. Bei einer Codeprüfung bedeutet das, dass die vorgegebene Schweregradschwelle beeinflusst, welche gefundenen Probleme in die Antwort gelangen. Die Anforderung, alle Funde zu melden, muss getrennt von der Anforderung formuliert werden, sie zu filtern.\n\n### Reasoning und Darstellung einstellen\n\nOpus 4.8 unterstützt adaptives Reasoning, das in der Anwendung aktiviert werden muss. Manuelles extended thinking mit separatem `budget_tokens` wird in dieser Version nicht unterstützt. Die `effort`-Stufen sind `low`, `medium`, `high`, `xhigh` und `max`; die Standardstufe ist `high`. Laut Anthropic können tiefere Stufen den Analyseumfang, die Werkzeugaufrufe und die Arbeitszeit erhöhen; für kurze, begrenzte Aufgaben ist ein geringerer Ausarbeitungsgrad hilfreich.\n\nDas Modell wählt den Detailgrad anhand seiner Einschätzung der Aufgabenkomplexität: Eine einfache Frage kann eine knappe Antwort erhalten, eine offene Analyse eine ausführliche. Wird ein bestimmter Umfang oder ein bestimmter Schreibstil benötigt, sollte dies ausdrücklich angegeben werden, möglichst mit einem positiven Beispiel. Bei längerer Arbeit mit Werkzeugen sind Zwischenmeldungen zum Fortschritt vorgesehen; deren Inhalt und Häufigkeit lassen sich ebenfalls durch Anweisungen steuern.\n\n### Materialien, Werkzeuge und visuelle Gestaltung\n\nDie Eingabe besteht aus **Text und Bildern**, das Ergebnis wird **als Text** erstellt. Das Kontextfenster umfasst **1 Million Tokens**, im gewöhnlichen Modus beträgt die maximale Antwort **128 Tausend Tokens**. Die verlässliche Wissensgrenze liegt bei **Januar 2026**.\n\nFormate für gewöhnliche visuelle Eingaben beim Hersteller: JPEG/PNG/GIF/WebP, bei Animationen das erste Bild. Bei nativer Analyse beträgt die lange Seite 2576 Pixel, entsprechend 4784 visuellen Tokens; große Bilder werden vor der Analyse verkleinert. Die Unterstützung von Dateien und Parametern hängt von der Methode der Anwendung ab.\n\nWebsuche, Befehlsausführung, dateibasierte Erinnerung, Oberflächensteuerung und selbstständige Teilaufgaben erfordern Anwendungsunterstützung. Das Modell kann verfügbare Mittel verwenden; die Aufwandsstufe und eine klare Beschreibung des Werkzeugzwecks beeinflussen jedoch die Aktionswahl. Das ist besonders bei Arbeit hilfreich, die Informationssuche, Analyse und technische Ausführung verbindet.\n\nBei der Erstellung von Oberflächen und Folien hat Opus 4.8 eigene beständige Gestaltungspräferenzen. Für ein Ergebnis in einem bestimmten Stil sollten eine konkrete Palette, Typografie, Komposition und Bewegungscharakteristik genannt oder zunächst mehrere Gestaltungsrichtungen angefordert werden. Eine fertige Datei oder eine funktionsfähige Oberfläche entsteht über die Werkzeuge der Umgebung; die eigene Ausgabe des Modells bleibt Text.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "62e288fb7ca80e790b2d9892cbbb5aab5215bc3b65dbfcf6c8e420cc70501fe8",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">A</span><h2 id=\"sheet-title\">Anthropic: Claude Opus 4.8 (batch)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schließen\">×</button></div><div class=\"idline\"><span>Anthropic /</span><code>anthropic/claude-opus-4.8:batch</code><button type=\"button\" id=\"copy-id\">ID kopieren</button></div><nav class=\"card-jump-nav\" aria-label=\"Bereiche der Modellkarte\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Eingaben und Methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarife</button><button type=\"button\" data-card-jump=\"examples\">Beispiele</button><button type=\"button\" data-card-jump=\"results\">Ergebnisse</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-Methoden\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|batches|/v1/batches|anthropic%2Fclaude-opus-4.8%3Abatch\">Stapelverarbeitung</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">Claude Opus 4.8 ist für längere Entwicklung und Fachanalysen vorgesehen. Behält die Richtung mehrstufiger Arbeit bei, benennt Unsicherheit und berücksichtigt ausdrücklich vorgegebene Ergebnisanforderungen.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Text</dd></div><div><dt>Ergebnisse</dt><dd>Text</dd></div></dl><details class=\"card-about\"><summary>Über das Modell</summary><p class=\"note-s\" data-model-method-boundary>Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.</p><div class=\"mabout\" id=\"m-about\"><p>Claude Opus 4.8 verbindet längere agentische Arbeit, Fachanalysen, visuelles Verständnis und die Nutzung einer von der Anwendung bereitgestellten Erinnerung. Anthropic hebt das Verhalten des Modells bei der Prüfung von Schlussfolgerungen gesondert hervor: Es wurde darauf trainiert, fehlende Belege zu erkennen, Unsicherheit mitzuteilen und ohne ausreichende Grundlage kein erreichtes Ergebnis zu behaupten.</p><h4>Den Rahmen präzisieren und die Arbeit abschließen</h4><p>Bei einer Ingenieuraufgabe kann das Modell mehrere zusammenhängende Komponenten untersuchen, einen Plan betrachten, Fehler erkennen und die Ausführung nach neuen Daten fortsetzen. Für Dokumentanalysen sind seine Fähigkeit, mit dichten Inhalten zu arbeiten, und seine Aufmerksamkeit für Probleme im Eingabematerial und in Schlussfolgerungen wichtig. Zu den beschriebenen fachlichen Einsatzbereichen gehören Forschung, Analyse, Dokumentarbeit und die Vorbereitung von Präsentationsinhalten.</p><p>Anweisungen werden wörtlich interpretiert, besonders bei niedrigen Aufwandsstufen. Das Modell muss eine Bedingung nicht stillschweigend von einem Element auf alle anderen übertragen: Geltungsbereich, Format und Ergebniskriterien sollten ausdrücklich festgelegt werden. Bei einer Codeprüfung bedeutet das, dass die vorgegebene Schweregradschwelle beeinflusst, welche gefundenen Probleme in die Antwort gelangen. Die Anforderung, alle Funde zu melden, muss getrennt von der Anforderung formuliert werden, sie zu filtern.</p><h4>Reasoning und Darstellung einstellen</h4><p>Opus 4.8 unterstützt adaptives Reasoning, das in der Anwendung aktiviert werden muss. Manuelles extended thinking mit separatem <code>budget_tokens</code> wird in dieser Version nicht unterstützt. Die <code>effort</code>-Stufen sind <code>low</code>, <code>medium</code>, <code>high</code>, <code>xhigh</code> und <code>max</code>; die Standardstufe ist <code>high</code>. Laut Anthropic können tiefere Stufen den Analyseumfang, die Werkzeugaufrufe und die Arbeitszeit erhöhen; für kurze, begrenzte Aufgaben ist ein geringerer Ausarbeitungsgrad hilfreich.</p><p>Das Modell wählt den Detailgrad anhand seiner Einschätzung der Aufgabenkomplexität: Eine einfache Frage kann eine knappe Antwort erhalten, eine offene Analyse eine ausführliche. Wird ein bestimmter Umfang oder ein bestimmter Schreibstil benötigt, sollte dies ausdrücklich angegeben werden, möglichst mit einem positiven Beispiel. Bei längerer Arbeit mit Werkzeugen sind Zwischenmeldungen zum Fortschritt vorgesehen; deren Inhalt und Häufigkeit lassen sich ebenfalls durch Anweisungen steuern.</p><h4>Materialien, Werkzeuge und visuelle Gestaltung</h4><p>Die Eingabe besteht aus <strong>Text und Bildern</strong>, das Ergebnis wird <strong>als Text</strong> erstellt. Das Kontextfenster umfasst <strong>1 Million Tokens</strong>, im gewöhnlichen Modus beträgt die maximale Antwort <strong>128 Tausend Tokens</strong>. Die verlässliche Wissensgrenze liegt bei <strong>Januar 2026</strong>.</p><p>Formate für gewöhnliche visuelle Eingaben beim Hersteller: JPEG/PNG/GIF/WebP, bei Animationen das erste Bild. Bei nativer Analyse beträgt die lange Seite 2576 Pixel, entsprechend 4784 visuellen Tokens; große Bilder werden vor der Analyse verkleinert. Die Unterstützung von Dateien und Parametern hängt von der Methode der Anwendung ab.</p><p>Websuche, Befehlsausführung, dateibasierte Erinnerung, Oberflächensteuerung und selbstständige Teilaufgaben erfordern Anwendungsunterstützung. Das Modell kann verfügbare Mittel verwenden; die Aufwandsstufe und eine klare Beschreibung des Werkzeugzwecks beeinflussen jedoch die Aktionswahl. Das ist besonders bei Arbeit hilfreich, die Informationssuche, Analyse und technische Ausführung verbindet.</p><p>Bei der Erstellung von Oberflächen und Folien hat Opus 4.8 eigene beständige Gestaltungspräferenzen. Für ein Ergebnis in einem bestimmten Stil sollten eine konkrete Palette, Typografie, Komposition und Bewegungscharakteristik genannt oder zunächst mehrere Gestaltungsrichtungen angefordert werden. Eine fertige Datei oder eine funktionsfähige Oberfläche entsteht über die Werkzeuge der Umgebung; die eigene Ausgabe des Modells bleibt Text.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">In Ailoot verfügbar · Eingaben und Methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Stapelverarbeitung</b> <code>POST /v1/batches</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabetypen</dt><dd><code>text</code></dd></div><div><dt>Ausgabetypen</dt><dd><code>text</code></dd></div><div><dt>Ausgabeformat</dt><dd>eingebettetes JSON unter results[].response.body</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Feld</th><th>Typ</th><th>Anforderung</th><th>Werte und Limits</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">endpoint</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>/v1/chat/completions</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>anthropic/claude-opus-4.8:batch</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">requests</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>batch_item[]</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Mindestanzahl Elemente: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">requests[].custom_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">requests[].body.messages</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>message[]</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">completion_window</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>24h</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object|null</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">requests[].body.model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>anthropic/claude-opus-4.8:batch, anthropic/claude-opus-4.8</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">provider.only</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string[]</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>anthropic</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">provider.allow_fallbacks</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean|null</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>false, null</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>endpoint, model, requests</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>representation</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>eingebettete requests[]; jedes Element enthält custom_id und body</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>request_endpoint_profile</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>/v1/chat/completions</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>file_material</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>Der Aufrufer kann tatsächliches UTF-8-JSONL lokal in requests[] einlesen. Es werden weder ein Upload-Zweck noch input_file_id oder eine Dateireferenz verwendet. Fehlendes oder leeres Kundenmaterial stoppt die Vorbereitung vor POST.</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>serialization_order</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>endpoint, model, provider (falls angegeben), completion_window (falls angegeben), requests als letztes Feld</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>provider.only, provider.allow_fallbacks, completion_window</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>schema_scope</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>Anfragekörper für Text Chat Completions in der dokumentierten Inline-Batch-Struktur.</td></tr></tbody></table></div><p>Lebenszyklus: <code>asynchronous</code></p><p class=\"note-s\"><code>GET /v1/batches/{operation_id}</code> · die tatsächliche response.id der ursprünglichen Erstellungsantwort; derselbe Nutzer/Schlüssel/dieselbe Gruppe</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.</p><dl data-price-conditions><dt>Schnellmodus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Schnellmodus ausgewählt ist</span></dd><dt>Flex-Modus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Modus flex ausgewählt ist</span></dd><dt>Maximaler Denkaufwand</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird</span></dd><dt>Preise für explizites Caching</dt><dd>Aktiviert <span class=\"note-s\">Wenn explizites Caching angefordert wird</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-Tarife</h4><h4>Preise nach Konfiguration</h4><p class=\"note-s\">Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Tarifstaffel</th><th>Kontexttoken, mehr als</th><th>Kontexttoken, bis einschließlich</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Basistarife für Token</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>Grundtarif</td><td data-cell-label=\"Kontexttoken, mehr als\"><span class=\"card-cell-label\">Kontexttoken, mehr als</span>—</td><td data-cell-label=\"Kontexttoken, bis einschließlich\"><span class=\"card-cell-label\">Kontexttoken, bis einschließlich</span>Keine Obergrenze</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Eingabetoken</span> <b>$0.005</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Ausgabe · Ausgabetoken</span> <b>$0.025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Lesen</span> <b>$0.0005</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben</span> <b>$0.00625</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben, 1 Stunde</span> <b>$0.01</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Anfragelängenstufe 1</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Kontexttoken, mehr als\"><span class=\"card-cell-label\">Kontexttoken, mehr als</span>0</td><td data-cell-label=\"Kontexttoken, bis einschließlich\"><span class=\"card-cell-label\">Kontexttoken, bis einschließlich</span>Keine Obergrenze</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Eingabetoken</span> <b>$0.005</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Ausgabe · Ausgabetoken</span> <b>$0.025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Lesen</span> <b>$0.0005</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben</span> <b>$0.00625</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben, 1 Stunde</span> <b>$0.01</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. <a href=\"/docs/de/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot Ultra · Stapelverarbeitung</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1051-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1051-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · gespeicherte Beispieldaten</button><button class=\"cg-tab\" id=\"model-code-1051-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1051-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python HTTP · tatsächliche JSONL-Daten des Kunden</button><button class=\"cg-tab\" id=\"model-code-1051-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1051-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · jedes fertiggestellte Ergebnis speichern</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1051-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1051-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json\nfrom pathlib import Path\nbody=json.loads(&#39;{&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;,&quot;model&quot;:&quot;anthropic/claude-opus-4.8:batch&quot;,&quot;requests&quot;:[{&quot;custom_id&quot;:&quot;req-0001&quot;,&quot;body&quot;:{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Hello!&quot;}],&quot;max_tokens&quot;:16}}]}&#39;)\nPath(&quot;batch-request.json&quot;).write_text(json.dumps(body,ensure_ascii=False),encoding=&quot;utf-8&quot;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1051-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1051-tab-1\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(&quot;Customer JSONL file is missing&quot;)\n    items = [json.loads(line) for line in path.read_text(encoding=&quot;utf-8&quot;).splitlines() if line.strip()]\n    if not items: raise ValueError(&quot;Customer JSONL contains no requests&quot;)\n    ids = set()\n    for item in items:\n        if set(item) != {&quot;custom_id&quot;, &quot;body&quot;}: raise ValueError(&quot;Each item needs custom_id and body&quot;)\n        cid = item[&quot;custom_id&quot;]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(&quot;custom_id must be nonempty and unique&quot;)\n        ids.add(cid)\n        if not isinstance(item[&quot;body&quot;], dict) or not item[&quot;body&quot;].get(&quot;messages&quot;): raise ValueError(&quot;Supply actual text messages&quot;)\n        supplied_model = item[&quot;body&quot;].get(&quot;model&quot;)\n        if supplied_model is not None and supplied_model not in [&#39;anthropic/claude-opus-4.8:batch&#39;, &#39;anthropic/claude-opus-4.8&#39;]: raise ValueError(&quot;body.model must be an exact documented caller or wire ID&quot;)\n    return {&quot;endpoint&quot;:&quot;/v1/chat/completions&quot;, &quot;model&quot;:&quot;anthropic/claude-opus-4.8:batch&quot;, &quot;requests&quot;:items}\n\nif __name__ == &quot;__main__&quot;:\n    material = os.environ.get(&quot;AILOOT_BATCH_REQUESTS_JSONL&quot;, &quot;&quot;)\n    if not material: raise SystemExit(&quot;Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file&quot;)\n    body = prepare_requests(material)\n    key = os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;)\n    if not key: raise SystemExit(&quot;Set AILOOT_API_KEY&quot;)\n    request = Request(&quot;https://api.ailoot.ai/v1/batches&quot;, data=json.dumps(body, ensure_ascii=False).encode(&quot;utf-8&quot;), headers={&quot;Authorization&quot;:&quot;Bearer &quot; + key, &quot;Content-Type&quot;:&quot;application/json&quot;}, method=&quot;POST&quot;)\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(&quot;batch-create-response.json&quot;).write_bytes(raw)\n        print(raw.decode(&quot;utf-8&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1051-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1051-tab-2\" hidden><pre data-lang=\"python\"><code>import json\nfrom pathlib import Path\nraw = Path(&quot;batch-status-response.json&quot;).read_bytes()\nresponse = json.loads(raw)\nif response.get(&quot;status&quot;) != &quot;completed&quot;:\n    raise SystemExit(&quot;Keep the original operation; read its status without resubmitting&quot;)\nresults = response.get(&quot;results&quot;)\nif not isinstance(results, list) or not results:\n    raise SystemExit(&quot;Preserve the original response; completed results are missing&quot;)\nPath(&quot;batch-results.jsonl&quot;).write_text(&quot;&quot;.join(json.dumps(item, ensure_ascii=False) + &quot;\\n&quot; for item in results), encoding=&quot;utf-8&quot;)\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ergebnisse abrufen und speichern</h3><h4>Ailoot Ultra · Stapelverarbeitung</h4><p class=\"note-s\">eingebettetes JSON unter results[].response.body</p><ul class=\"card-result-paths\"><li><code>GET /v1/batches/{operation_id}</code></li></ul><h5>Auftragsstatus prüfen</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1052-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1052-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · Status des ursprünglichen Vorgangs</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1052-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1052-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nBATCH_OPERATION_ID=&quot;$(python3 - &lt;&lt;&#39;PY_ID&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(&quot;batch-create-response.json&quot;).read_text(encoding=&quot;utf-8&quot;))\noperation = response.get(&quot;id&quot;)\nif not isinstance(operation, str) or not operation: raise SystemExit(&quot;No actual original operation ID; preserve the response and do not resubmit&quot;)\nprint(quote(operation, safe=&quot;&quot;))\nPY_ID\n)&quot;\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o batch-status-response.json\n</code></pre></div></div></div><div class=\"card-result-process\" data-all-results><h5>Alle fertiggestellten Ergebnisse aufbewahren</h5><p class=\"note-s\">Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.</p><p class=\"note-s\">Das vollständige ursprüngliche Status-JSON, jedes Ergebnis/jede custom_id und den vollständigen Antwort- oder Fehlerkörper aufbewahren. Abgeschlossene results[] ohne Filterung als JSONL speichern.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Wenn die ursprüngliche Antwort geprüft werden muss</h5><p class=\"note-s\">Die ursprüngliche Vorgangs-ID beibehalten. Bei 503 result_pending_check gilt X-Should-Retry:false; einen ursprünglichen Batch mit unbekanntem Ausgang niemals erneut einreichen.</p></div><details class=\"card-about\" data-output-fields><summary>Antwortfelder</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Feld</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">results[].custom_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">results[].response.body.choices[].message.content</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string|null</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">results[].error</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object|null</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object|null</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">endpoint</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">request_counts</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">results[].id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">results[].response.status_code</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">results[].response.request_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fehler und nächste Schritte</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwort</th><th>Bedingung</th><th>Nächster Schritt</th></tr></thead><tbody><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Ungültige Struktur der dokumentierten Inline-Einbettung, doppelte Schlüssel, ungültige Identitätsangaben zu einem Element oder ein Konflikt mit den konfigurierten Modellfähigkeiten.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die angegebenen Felder vor jeder neuen Einreichung korrigieren.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Ungültiger API-Schlüssel.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Den autorisierten Ailoot-Schlüssel verwenden.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>403 · <code>permission_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Gruppe für Stapelverarbeitung nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die Berechtigung des Schlüssels bzw. der Gruppe prüfen.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Stapelverarbeitung wird über das Guthaben abgerechnet; die Erstellung über ein Abonnement wird abgelehnt.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die autorisierte Gruppe mit Guthabenabrechnung verwenden.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Für die Batch-Eingabe kann kein Preisangebot erstellt werden.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Antwort aufbewahren; die dokumentierte Eingabe der API-Familie verwenden.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>402 · <code>billing_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Reservierung für Stapelverarbeitung nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die Zulassung klären, bevor eine neue Anfrage gestellt wird.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code>price_unavailable</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Methodenpreis bzw. native Tarife für Stapelverarbeitung nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Antwort aufbewahren; keine anderen Preise einsetzen.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code>api_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Die genaue Anbieterroute ist nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Antwort zur Reparatur der Route aufbewahren.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Das ursprüngliche Ergebnis muss geprüft werden; X-Should-Retry:false.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die ursprüngliche operation_id/id beibehalten und ihren Status lesen; den ursprünglichen POST niemals wiederholen.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>404 · <code>not_found</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der Batch-Vorgang, dessen Status abgefragt wird, ist nicht vorhanden oder gehört einer anderen Identität.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die genaue ursprüngliche id und denselben Nutzer/Schlüssel/dieselbe Gruppe verwenden.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modellaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=anthropic%2Fclaude-opus-4.8%3Abatch&amp;route=Ultra&amp;caller=anthropic%2Fclaude-opus-4.8%3Abatch&amp;fmt=batches\"><code>anthropic/claude-opus-4.8:batch</code></a></span></p><h4>Aliasnamen für Methodenpfade</h4><p class=\"note-s\">Verwenden Sie die oben angezeigten Methodenpfade.</p><h4>Zugehörige Aufrufer-IDs</h4><p class=\"note-s\"><a href=\"#m=anthropic%2Fclaude-opus-4.8%3Abatch&amp;route=Ultra&amp;caller=anthropic%2Fclaude-opus-4.8%3Abatch&amp;fmt=batches\"><code>anthropic/claude-opus-4.8:batch</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "anthropic/claude-opus-4.8:batch",
        "fmt": "batches",
        "http": "POST",
        "path": "/v1/batches",
        "request_model_id": "anthropic/claude-opus-4.8:batch",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|batches|/v1/batches|anthropic%2Fclaude-opus-4.8%3Abatch",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.5,
        "cache_write": 6.25,
        "cache_write_1h": 10,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Ungültige Struktur der dokumentierten Inline-Einbettung, doppelte Schlüssel, ungültige Identitätsangaben zu einem Element oder ein Konflikt mit den konfigurierten Modellfähigkeiten.",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor jeder neuen Einreichung korrigieren.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ungültiger API-Schlüssel.",
                "http_status": 401,
                "recovery": "Den autorisierten Ailoot-Schlüssel verwenden.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Gruppe für Stapelverarbeitung nicht verfügbar.",
                "http_status": 403,
                "recovery": "Die Berechtigung des Schlüssels bzw. der Gruppe prüfen.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Stapelverarbeitung wird über das Guthaben abgerechnet; die Erstellung über ein Abonnement wird abgelehnt.",
                "http_status": 422,
                "recovery": "Die autorisierte Gruppe mit Guthabenabrechnung verwenden.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Für die Batch-Eingabe kann kein Preisangebot erstellt werden.",
                "http_status": 422,
                "recovery": "Antwort aufbewahren; die dokumentierte Eingabe der API-Familie verwenden.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Reservierung für Stapelverarbeitung nicht verfügbar.",
                "http_status": 402,
                "recovery": "Die Zulassung klären, bevor eine neue Anfrage gestellt wird.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Methodenpreis bzw. native Tarife für Stapelverarbeitung nicht verfügbar.",
                "http_status": 503,
                "recovery": "Antwort aufbewahren; keine anderen Preise einsetzen.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Die genaue Anbieterroute ist nicht verfügbar.",
                "http_status": 503,
                "recovery": "Antwort zur Reparatur der Route aufbewahren.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Das ursprüngliche Ergebnis muss geprüft werden; X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Die ursprüngliche operation_id/id beibehalten und ihren Status lesen; den ursprünglichen POST niemals wiederholen.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "Der Batch-Vorgang, dessen Status abgefragt wird, ist nicht vorhanden oder gehört einer anderen Identität.",
                "http_status": 404,
                "recovery": "Die genaue ursprüngliche id und denselben Nutzer/Schlüssel/dieselbe Gruppe verwenden.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "anthropic/claude-opus-4.8:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "Das vollständige ursprüngliche Status-JSON, jedes Ergebnis/jede custom_id und den vollständigen Antwort- oder Fehlerkörper aufbewahren. Abgeschlossene results[] ohne Filterung als JSONL speichern.",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "eingebettetes JSON unter results[].response.body"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "anthropic/claude-opus-4.8:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "anthropic/claude-opus-4.8:batch",
                  "anthropic/claude-opus-4.8"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "anthropic"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "anthropic"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "anthropic/claude-opus-4.8:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "anthropic"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "anthropic"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "anthropic/claude-opus-4.8:batch",
                              "anthropic/claude-opus-4.8"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "anthropic/claude-opus-4.8:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Der Aufrufer kann tatsächliches UTF-8-JSONL lokal in requests[] einlesen. Es werden weder ein Upload-Zweck noch input_file_id oder eine Dateireferenz verwendet. Fehlendes oder leeres Kundenmaterial stoppt die Vorbereitung vor POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "eingebettete requests[]; jedes Element enthält custom_id und body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "Anfragekörper für Text Chat Completions in der dokumentierten Inline-Batch-Struktur.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (falls angegeben)",
              "completion_window (falls angegeben)",
              "requests als letztes Feld"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "die tatsächliche response.id der ursprünglichen Erstellungsantwort; derselbe Nutzer/Schlüssel/dieselbe Gruppe",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Die ursprüngliche Vorgangs-ID beibehalten. Bei 503 result_pending_check gilt X-Should-Retry:false; einen ursprünglichen Batch mit unbekanntem Ausgang niemals erneut einreichen."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Basistarife für Token",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Anfragelängenstufe 1",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"anthropic/claude-opus-4.8:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['anthropic/claude-opus-4.8:batch', 'anthropic/claude-opus-4.8']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"anthropic/claude-opus-4.8:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 5,
        "input": [
          "text"
        ],
        "label": "Stapelverarbeitung",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 25,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "anthropic/claude-opus-4.8:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.5,
            "cache_read_multiplier": null,
            "cache_write": 6.25,
            "cache_write_1h": 10,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 5,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 25,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.005000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000005",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0005000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000005",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0.00625000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0.00000625",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": "0.01000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": "0.00001",
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "anthropic/claude-opus-4.8:batch",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "03221e16cc8ab5ac917696aa365dfce7d376004e26709d2161bd0d59b40d25dc",
    "input_html_sha256": "3df8bc38a8a5c2ac3e4273162f072d4c3b7b280e5827efa0ebf45b381595a5b6",
    "private_audit_sha256": "3b484802d950411fdef98c15d8fe61bbec6d843b1cf60f844d46609528a1a42d",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de/anthropic-claude-opus-4-8-u003a-batch/",
    "description": "Claude Opus 4.8 ist für längere Entwicklung und Fachanalysen vorgesehen. Behält die Richtung mehrstufiger Arbeit bei, benennt Unsicherheit und berücksichtigt ausdrücklich vorgegebene Ergebnisanforderungen.",
    "locale": "de",
    "md_url": "https://ailoot.ai/models/de/anthropic-claude-opus-4-8-u003a-batch/index.md",
    "title": "Anthropic: Claude Opus 4.8 (batch) — Ailoot",
    "url": "https://ailoot.ai/models/de/anthropic-claude-opus-4-8-u003a-batch/"
  },
  "rawModel": {
    "about": "Claude Opus 4.8 verbindet längere agentische Arbeit, Fachanalysen, visuelles Verständnis und die Nutzung einer von der Anwendung bereitgestellten Erinnerung. Anthropic hebt das Verhalten des Modells bei der Prüfung von Schlussfolgerungen gesondert hervor: Es wurde darauf trainiert, fehlende Belege zu erkennen, Unsicherheit mitzuteilen und ohne ausreichende Grundlage kein erreichtes Ergebnis zu behaupten.\n\n### Den Rahmen präzisieren und die Arbeit abschließen\n\nBei einer Ingenieuraufgabe kann das Modell mehrere zusammenhängende Komponenten untersuchen, einen Plan betrachten, Fehler erkennen und die Ausführung nach neuen Daten fortsetzen. Für Dokumentanalysen sind seine Fähigkeit, mit dichten Inhalten zu arbeiten, und seine Aufmerksamkeit für Probleme im Eingabematerial und in Schlussfolgerungen wichtig. Zu den beschriebenen fachlichen Einsatzbereichen gehören Forschung, Analyse, Dokumentarbeit und die Vorbereitung von Präsentationsinhalten.\n\nAnweisungen werden wörtlich interpretiert, besonders bei niedrigen Aufwandsstufen. Das Modell muss eine Bedingung nicht stillschweigend von einem Element auf alle anderen übertragen: Geltungsbereich, Format und Ergebniskriterien sollten ausdrücklich festgelegt werden. Bei einer Codeprüfung bedeutet das, dass die vorgegebene Schweregradschwelle beeinflusst, welche gefundenen Probleme in die Antwort gelangen. Die Anforderung, alle Funde zu melden, muss getrennt von der Anforderung formuliert werden, sie zu filtern.\n\n### Reasoning und Darstellung einstellen\n\nOpus 4.8 unterstützt adaptives Reasoning, das in der Anwendung aktiviert werden muss. Manuelles extended thinking mit separatem `budget_tokens` wird in dieser Version nicht unterstützt. Die `effort`-Stufen sind `low`, `medium`, `high`, `xhigh` und `max`; die Standardstufe ist `high`. Laut Anthropic können tiefere Stufen den Analyseumfang, die Werkzeugaufrufe und die Arbeitszeit erhöhen; für kurze, begrenzte Aufgaben ist ein geringerer Ausarbeitungsgrad hilfreich.\n\nDas Modell wählt den Detailgrad anhand seiner Einschätzung der Aufgabenkomplexität: Eine einfache Frage kann eine knappe Antwort erhalten, eine offene Analyse eine ausführliche. Wird ein bestimmter Umfang oder ein bestimmter Schreibstil benötigt, sollte dies ausdrücklich angegeben werden, möglichst mit einem positiven Beispiel. Bei längerer Arbeit mit Werkzeugen sind Zwischenmeldungen zum Fortschritt vorgesehen; deren Inhalt und Häufigkeit lassen sich ebenfalls durch Anweisungen steuern.\n\n### Materialien, Werkzeuge und visuelle Gestaltung\n\nDie Eingabe besteht aus **Text und Bildern**, das Ergebnis wird **als Text** erstellt. Das Kontextfenster umfasst **1 Million Tokens**, im gewöhnlichen Modus beträgt die maximale Antwort **128 Tausend Tokens**. Die verlässliche Wissensgrenze liegt bei **Januar 2026**.\n\nFormate für gewöhnliche visuelle Eingaben beim Hersteller: JPEG/PNG/GIF/WebP, bei Animationen das erste Bild. Bei nativer Analyse beträgt die lange Seite 2576 Pixel, entsprechend 4784 visuellen Tokens; große Bilder werden vor der Analyse verkleinert. Die Unterstützung von Dateien und Parametern hängt von der Methode der Anwendung ab.\n\nWebsuche, Befehlsausführung, dateibasierte Erinnerung, Oberflächensteuerung und selbstständige Teilaufgaben erfordern Anwendungsunterstützung. Das Modell kann verfügbare Mittel verwenden; die Aufwandsstufe und eine klare Beschreibung des Werkzeugzwecks beeinflussen jedoch die Aktionswahl. Das ist besonders bei Arbeit hilfreich, die Informationssuche, Analyse und technische Ausführung verbindet.\n\nBei der Erstellung von Oberflächen und Folien hat Opus 4.8 eigene beständige Gestaltungspräferenzen. Für ein Ergebnis in einem bestimmten Stil sollten eine konkrete Palette, Typografie, Komposition und Bewegungscharakteristik genannt oder zunächst mehrere Gestaltungsrichtungen angefordert werden. Eine fertige Datei oder eine funktionsfähige Oberfläche entsteht über die Werkzeuge der Umgebung; die eigene Ausgabe des Modells bleibt Text.",
    "alias_of": null,
    "aliases": [],
    "author": "Anthropic",
    "capabilities": {
      "context_length": 1000000,
      "manufacturer_input": [
        "text",
        "image",
        "file"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.005000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000005",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Die vollständigen Preisangaben zur Konfiguration finden Sie in den Details."
      }
    ],
    "ctx": null,
    "formats": [
      "batches"
    ],
    "id": "anthropic/claude-opus-4.8:batch",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.5,
        "cache_write": 6.25,
        "cache_write_1h": 10,
        "contract": {
          "data": {
            "all_results": "Preserve full JSON and every result; provider real IDs are only read from actual returned responses.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Ungültige Struktur der dokumentierten Inline-Einbettung, doppelte Schlüssel, ungültige Identitätsangaben zu einem Element oder ein Konflikt mit den konfigurierten Modellfähigkeiten.",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor jeder neuen Einreichung korrigieren.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ungültiger API-Schlüssel.",
                "http_status": 401,
                "recovery": "Den autorisierten Ailoot-Schlüssel verwenden.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Gruppe für Stapelverarbeitung nicht verfügbar.",
                "http_status": 403,
                "recovery": "Die Berechtigung des Schlüssels bzw. der Gruppe prüfen.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Stapelverarbeitung wird über das Guthaben abgerechnet; die Erstellung über ein Abonnement wird abgelehnt.",
                "http_status": 422,
                "recovery": "Die autorisierte Gruppe mit Guthabenabrechnung verwenden.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Für die Batch-Eingabe kann kein Preisangebot erstellt werden.",
                "http_status": 422,
                "recovery": "Antwort aufbewahren; die dokumentierte Eingabe der API-Familie verwenden.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Reservierung für Stapelverarbeitung nicht verfügbar.",
                "http_status": 402,
                "recovery": "Die Zulassung klären, bevor eine neue Anfrage gestellt wird.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Methodenpreis bzw. native Tarife für Stapelverarbeitung nicht verfügbar.",
                "http_status": 503,
                "recovery": "Antwort aufbewahren; keine anderen Preise einsetzen.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Die genaue Anbieterroute ist nicht verfügbar.",
                "http_status": 503,
                "recovery": "Antwort zur Reparatur der Route aufbewahren.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Das ursprüngliche Ergebnis muss geprüft werden; X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Die ursprüngliche operation_id/id beibehalten und ihren Status lesen; den ursprünglichen POST niemals wiederholen.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "Der Batch-Vorgang, dessen Status abgefragt wird, ist nicht vorhanden oder gehört einer anderen Identität.",
                "http_status": 404,
                "recovery": "Die genaue ursprüngliche id und denselben Nutzer/Schlüssel/dieselbe Gruppe verwenden.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "anthropic/claude-opus-4.8:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "input_constraints": [
              "Use the exact shown :batch model ID.",
              "Each custom_id must be nonempty and unique within the batch.",
              "Keep requests last in the serialized body; duplicate JSON keys are rejected.",
              "Each body.model is omitted or equals the exact batch caller or its documented base ID.",
              "Per-item provider, service_tier and input_type are outside this batch profile.",
              "stream is omitted or false.",
              "Supply text messages for this Chat batch profile; image/audio/file/video objects, hosted tools and cache-control fields are outside this profile.",
              "If body.model is present, use only the exact caller or wire ID listed here; no suffix conversion is needed.",
              "For google/ wire IDs, all items use an identical response_format."
            ],
            "outputs": {
              "all_results": "Das vollständige ursprüngliche Status-JSON, jedes Ergebnis/jede custom_id und den vollständigen Antwort- oder Fehlerkörper aufbewahren. Abgeschlossene results[] ohne Filterung als JSONL speichern.",
              "enclosing_family": "batch",
              "family": "text",
              "fields": [
                {
                  "name": "results[].custom_id",
                  "type": "string"
                },
                {
                  "name": "results[].response.body.choices[].message.content",
                  "type": "string|null"
                },
                {
                  "name": "results[].error",
                  "type": "object|null"
                },
                {
                  "name": "usage",
                  "type": "object|null"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "endpoint",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "request_counts",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "results[].id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].response.status_code",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].response.request_id",
                  "type": "string"
                }
              ],
              "format": "eingebettetes JSON unter results[].response.body"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "/v1/chat/completions"
                ],
                "enum_known": true,
                "name": "endpoint",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "anthropic/claude-opus-4.8:batch"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "requests",
                "required": true,
                "type": "batch_item[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].custom_id",
                "required": true,
                "type": "string",
                "unique_within_batch": true
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "requests[].body.messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "24h"
                ],
                "enum_known": true,
                "name": "completion_window",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "anthropic/claude-opus-4.8:batch",
                  "anthropic/claude-opus-4.8"
                ],
                "enum_known": true,
                "name": "requests[].body.model",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  [
                    "anthropic"
                  ]
                ],
                "enum_known": true,
                "name": "provider.only",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "provider.allow_fallbacks",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "provider_policy": {
              "allow_fallbacks": false,
              "configured_only": [
                "anthropic"
              ],
              "per_item_override": false,
              "when_omitted": "Current Source injects the exact persisted declaration before fresh submission."
            },
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "completion_window": {
                  "enum": [
                    "24h"
                  ],
                  "type": "string"
                },
                "endpoint": {
                  "enum": [
                    "/v1/chat/completions"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "anthropic/claude-opus-4.8:batch"
                  ],
                  "type": "string"
                },
                "provider": {
                  "additionalProperties": false,
                  "properties": {
                    "allow_fallbacks": {
                      "enum": [
                        false,
                        null
                      ],
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "only": {
                      "enum": [
                        [
                          "anthropic"
                        ]
                      ],
                      "items": {
                        "enum": [
                          "anthropic"
                        ],
                        "type": "string"
                      },
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "requests": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "body": {
                        "additionalProperties": true,
                        "properties": {
                          "max_tokens": {
                            "minimum": 1,
                            "type": "integer"
                          },
                          "messages": {
                            "items": {
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "role": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "role",
                                "content"
                              ],
                              "type": "object"
                            },
                            "minItems": 1,
                            "type": "array"
                          },
                          "model": {
                            "enum": [
                              "anthropic/claude-opus-4.8:batch",
                              "anthropic/claude-opus-4.8"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "messages"
                        ],
                        "type": "object"
                      },
                      "custom_id": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "custom_id",
                      "body"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "endpoint",
                "model",
                "requests"
              ],
              "type": "object"
            },
            "schema_template": {
              "endpoint": "/v1/chat/completions",
              "model": "anthropic/claude-opus-4.8:batch",
              "requests": [
                {
                  "body": {
                    "max_tokens": 16,
                    "messages": [
                      {
                        "content": "Hello!",
                        "role": "user"
                      }
                    ]
                  },
                  "custom_id": "req-0001"
                }
              ]
            },
            "unsupported": [
              "Files/input_file_id batch upload workflow",
              "active cancel route",
              "public batch list/delete/result-download route",
              "model-name-derived capability or weights equivalence"
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Der Aufrufer kann tatsächliches UTF-8-JSONL lokal in requests[] einlesen. Es werden weder ein Upload-Zweck noch input_file_id oder eine Dateireferenz verwendet. Fehlendes oder leeres Kundenmaterial stoppt die Vorbereitung vor POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "eingebettete requests[]; jedes Element enthält custom_id und body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "Anfragekörper für Text Chat Completions in der dokumentierten Inline-Batch-Struktur.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (falls angegeben)",
              "completion_window (falls angegeben)",
              "requests als letztes Feld"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "accepted_status": 202,
              "http": "POST",
              "path": "/v1/batches"
            },
            "delete": null,
            "file_upload": null,
            "mode": "asynchronous",
            "observed_status_values": [
              "validating",
              "in_progress",
              "finalizing",
              "completed",
              "failed",
              "expired",
              "cancelling",
              "cancelled"
            ],
            "owned_results": {
              "behavior": "Completed results are saved as owned JSONL, read back byte-for-byte and registered in the existing media library before publication after settlement. Status returns inline results; no separate Batch download route is added.",
              "format": "application/x-ndjson",
              "public_url_field_in_status": null
            },
            "status": {
              "http": "GET",
              "id_source": "die tatsächliche response.id der ursprünglichen Erstellungsantwort; derselbe Nutzer/Schlüssel/dieselbe Gruppe",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Die ursprüngliche Vorgangs-ID beibehalten. Bei 503 result_pending_check gilt X-Should-Retry:false; einen ursprünglichen Batch mit unbekanntem Ausgang niemals erneut einreichen."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/batches"
          },
          "output": {
            "all_results": "Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.",
            "family": "batch",
            "format": "JSON; completed results[] are returned inline and can be saved as JSONL."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Basistarife für Token",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Anfragelängenstufe 1",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json\nfrom pathlib import Path\nbody=json.loads('{\"endpoint\":\"/v1/chat/completions\",\"model\":\"anthropic/claude-opus-4.8:batch\",\"requests\":[{\"custom_id\":\"req-0001\",\"body\":{\"messages\":[{\"role\":\"user\",\"content\":\"Hello!\"}],\"max_tokens\":16}}]}')\nPath(\"batch-request.json\").write_text(json.dumps(body,ensure_ascii=False),encoding=\"utf-8\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json\n",
            "label": "curl · retained fixture",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\nfrom urllib.request import Request, urlopen\n\ndef prepare_requests(customer_path):\n    path = Path(customer_path)\n    if not path.is_file(): raise ValueError(\"Customer JSONL file is missing\")\n    items = [json.loads(line) for line in path.read_text(encoding=\"utf-8\").splitlines() if line.strip()]\n    if not items: raise ValueError(\"Customer JSONL contains no requests\")\n    ids = set()\n    for item in items:\n        if set(item) != {\"custom_id\", \"body\"}: raise ValueError(\"Each item needs custom_id and body\")\n        cid = item[\"custom_id\"]\n        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError(\"custom_id must be nonempty and unique\")\n        ids.add(cid)\n        if not isinstance(item[\"body\"], dict) or not item[\"body\"].get(\"messages\"): raise ValueError(\"Supply actual text messages\")\n        supplied_model = item[\"body\"].get(\"model\")\n        if supplied_model is not None and supplied_model not in ['anthropic/claude-opus-4.8:batch', 'anthropic/claude-opus-4.8']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"anthropic/claude-opus-4.8:batch\", \"requests\":items}\n\nif __name__ == \"__main__\":\n    material = os.environ.get(\"AILOOT_BATCH_REQUESTS_JSONL\", \"\")\n    if not material: raise SystemExit(\"Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file\")\n    body = prepare_requests(material)\n    key = os.environ.get(\"AILOOT_API_KEY\", \"\")\n    if not key: raise SystemExit(\"Set AILOOT_API_KEY\")\n    request = Request(\"https://api.ailoot.ai/v1/batches\", data=json.dumps(body, ensure_ascii=False).encode(\"utf-8\"), headers={\"Authorization\":\"Bearer \" + key, \"Content-Type\":\"application/json\"}, method=\"POST\")\n    with urlopen(request) as response:\n        raw = response.read()\n        Path(\"batch-create-response.json\").write_bytes(raw)\n        print(raw.decode(\"utf-8\"))\n",
            "label": "Python HTTP · actual customer JSONL",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nBATCH_OPERATION_ID=\"$(python3 - <<'PY_ID'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nresponse = json.loads(Path(\"batch-create-response.json\").read_text(encoding=\"utf-8\"))\noperation = response.get(\"id\")\nif not isinstance(operation, str) or not operation: raise SystemExit(\"No actual original operation ID; preserve the response and do not resubmit\")\nprint(quote(operation, safe=\"\"))\nPY_ID\n)\"\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o batch-status-response.json\n",
            "label": "curl · original operation status",
            "language": "bash"
          },
          {
            "code": "import json\nfrom pathlib import Path\nraw = Path(\"batch-status-response.json\").read_bytes()\nresponse = json.loads(raw)\nif response.get(\"status\") != \"completed\":\n    raise SystemExit(\"Keep the original operation; read its status without resubmitting\")\nresults = response.get(\"results\")\nif not isinstance(results, list) or not results:\n    raise SystemExit(\"Preserve the original response; completed results are missing\")\nPath(\"batch-results.jsonl\").write_text(\"\".join(json.dumps(item, ensure_ascii=False) + \"\\n\" for item in results), encoding=\"utf-8\")\n# Preserve batch-status-response.json with aggregate usage and every result/error.\n",
            "label": "Python · save every completed result",
            "language": "python"
          }
        ],
        "family": "batch",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "batches",
        "hints": [
          "Read your actual request items before submission; inline requests are required.",
          "Keep the returned operation ID and every result. Never replay an unknown submission."
        ],
        "http": "POST",
        "in": 5,
        "input": [
          "text"
        ],
        "label": "Stapelverarbeitung",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 25,
        "output": [
          "text"
        ],
        "path": "/v1/batches",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Enabled",
            "when": "When explicit cache is requested"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000005",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0005000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000005",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.00625000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.00000625",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": "0.01000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": "0.00001",
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "anthropic/claude-opus-4.8:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 0.5,
            "cache_read_multiplier": null,
            "cache_write": 6.25,
            "cache_write_1h": 10,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 5,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 25,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.005000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000005",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0005000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000005",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0.00625000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0.00000625",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": "0.01000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": "0.00001",
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "anthropic/claude-opus-4.8:batch",
        "request_model_id": "anthropic/claude-opus-4.8:batch",
        "route_label": "Ultra"
      }
    ],
    "name": "Anthropic: Claude Opus 4.8 (batch)",
    "price": {
      "in": 5,
      "in_label": null,
      "out": 25,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 5,
      "sort_out": 25,
      "varies": true
    },
    "short": "Claude Opus 4.8 ist für längere Entwicklung und Fachanalysen vorgesehen. Behält die Richtung mehrstufiger Arbeit bei, benennt Unsicherheit und berücksichtigt ausdrücklich vorgegebene Ergebnisanforderungen."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Claude Opus 4.8 ist für längere Entwicklung und Fachanalysen vorgesehen. Behält die Richtung mehrstufiger Arbeit bei, benennt Unsicherheit und berücksichtigt ausdrücklich vorgegebene Ergebnisanforderungen.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "f9f0e388d0fcfbc529eb8a1e9e5bc86d7e2e3a21b1a552edfd29ba9371aea6ea",
    "renderer_sha256": "8bd3076b303b7b3aa4d961032854071403a471ec26a4f50c64e3a32556ea2925"
  },
  "sourceRevision": "4b759636570885cf2e0540fef601bb397ee4ed78a61a141c0780f42746061a95"
}
