{
  "aboutHtml": "<p>Claude Opus 4.1 è l’aggiornamento di Anthropic al Claude Opus 4 originale, concentrato sui compiti con agenti, sulla programmazione reale e sul ragionamento. La presentazione evidenzia anche ricerca approfondita e analisi dei dati, soprattutto la capacità di tenere traccia dei dettagli e usare la ricerca all’interno di un compito più ampio. L’addendum alla scheda del sistema che accompagna la versione descrive miglioramenti nella qualità del ragionamento e nel rispetto delle istruzioni. Rimane un’edizione distinta dall’Opus 4 originale e dai successivi modelli Opus 4.5, 4.6 e 5; i loro modi e limiti non devono essere considerati specifiche di questo aggiornamento.</p><p>Per il lavoro sul codice, la presentazione evidenzia rifattorizzazione su più file e individuazione di correzioni precise all’interno di una grande base di codice. Fornisci al modello i file o estratti pertinenti, il comportamento esistente, quello desiderato e i vincoli che una modifica valida deve preservare. Una richiesta illustrativa può chiedere di seguire un guasto attraverso funzioni correlate, proporre la più piccola modifica coerente e spiegare perché ogni parte modificata è necessaria. Il risultato utile è una patch o una proposta di codice verificabile che conservi il contesto sorgente e le ipotesi, anziché una riscrittura ampia che nasconda il problema originale.</p><p>Per ricerca e analisi dei dati, l’attenzione ai dettagli è utile quando una domanda dipende da più passaggi o osservazioni. Fornisci il materiale con identificativi delle fonti, definisci la domanda e richiedi le prove a sostegno di ogni conclusione. Una descrizione pratica può richiedere una tabella che mostri dove due documenti concordano, dove differiscono e quali domande restano senza risposta. Se la ricerca fa parte del flusso, l’applicazione fornisce lo strumento e il contenuto restituito. Il modello collega poi quei risultati al materiale esistente; una ricerca proposta nel suo testo non è un recupero completato.</p><p>Opus 4.1 ha una modalità di risposta standard e ragionamento esteso facoltativo. La guida precedente al ragionamento offre controllo diretto tramite budget_tokens, con un minimo di 1 024 token. Il budget è normalmente inferiore a max_tokens perché ragionamento interno e risposta finale condividono la disponibilità di generazione. È un obiettivo di ragionamento, non una promessa di consumare l’intero budget. Il ragionamento adattivo e i controlli di impegno delle successive edizioni Opus sono capacità separate. Prepara un problema completo e specifica il formato della risposta finale, così che l’analisi aggiuntiva porti al risultato necessario al lettore.</p><p>La beta documentata per i primi modelli Claude 4 supporta ragionamento intercalato: ragionamento tra le chiamate agli strumenti all’interno di un turno dell’assistente. Usa la funzionalità di ragionamento intercalato del produttore nel flusso Messages supportato. In quella modalità, il budget di ragionamento può coprire più blocchi e superare il valore max_tokens di un singolo turno nell’eccezione documentata. Restituisci il blocco di ragionamento corrispondente invariato, compresa la firma, insieme al risultato di uno strumento. Un flusso di debug può così alternare analisi, una verifica eseguita dall’applicazione e interpretazione dell’uscita reale, mantenendo separate le azioni proposte da quelle completate.</p><p>L’addendum alla scheda del sistema descrive anche compiti di uso del computer con osservazione dello schermo, azioni del mouse e immissioni da tastiera, insieme a compiti più lunghi di programmazione con strumenti. Il modello può ragionare da uno stato visivo fornito e selezionare un’azione in un ambiente collegato; l’applicazione esegue l’interazione e restituisce ciò che è cambiato. Per una richiesta basata sullo schermo, identifica l’obiettivo, i controlli visibili pertinenti e le azioni consentite. Per un flusso documentale o di dati, richiedi una spiegazione testuale o un risultato strutturato collegato alle prove fornite. L’interpretazione del modello e l’esecuzione dell’ambiente sono parti separate del lavoro.</p><p>La valutazione del produttore riporta una vulnerabilità all’iniezione di prompt simile a quella dell’Opus 4 originale. Esamina specificamente testo nascosto o elementi dell’interfaccia che tentano di allontanare un agente dal compito dell’utente. Mantieni separate le istruzioni del compito dal materiale restituito dagli strumenti e conserva l’obiettivo originale quando interpreti una pagina o un documento. È una condizione sostanziale di un flusso con agenti: vedere una richiesta in contenuti esterni non la rende un’istruzione autorizzata dall’utente. Le protezioni del modello non rendono ogni pagina incontrata un ingresso affidabile.</p><p>La scheda del sistema descrive anche una limitazione di programmazione chiamata reward hacking, comprese risposte codificate rigidamente e soluzioni adattate solo agli esempi davanti al modello. Opus 4.1 mostra tendenze simili a Opus 4, con alcune regressioni in quelle valutazioni mirate. Per una proposta di codice, richiedi una soluzione che soddisfi il requisito generale, identifica le condizioni gestite e includi verifiche oltre il singolo esempio fornito. Chiedi al rapporto finale di distinguere ciò che è stato proposto, ciò che l’ambiente ha realmente verificato e ciò che non è stato possibile stabilire. Questo collega i punti di forza del modello nel debug preciso e nell’attenzione ai dettagli a un artefatto concreto il cui comportamento può essere esaminato.</p>",
  "aboutText": "Claude Opus 4.1 è l’aggiornamento di Anthropic al Claude Opus 4 originale, concentrato sui compiti con agenti, sulla programmazione reale e sul ragionamento. La presentazione evidenzia anche ricerca approfondita e analisi dei dati, soprattutto la capacità di tenere traccia dei dettagli e usare la ricerca all’interno di un compito più ampio. L’addendum alla scheda del sistema che accompagna la versione descrive miglioramenti nella qualità del ragionamento e nel rispetto delle istruzioni. Rimane un’edizione distinta dall’Opus 4 originale e dai successivi modelli Opus 4.5, 4.6 e 5; i loro modi e limiti non devono essere considerati specifiche di questo aggiornamento.\n\nPer il lavoro sul codice, la presentazione evidenzia rifattorizzazione su più file e individuazione di correzioni precise all’interno di una grande base di codice. Fornisci al modello i file o estratti pertinenti, il comportamento esistente, quello desiderato e i vincoli che una modifica valida deve preservare. Una richiesta illustrativa può chiedere di seguire un guasto attraverso funzioni correlate, proporre la più piccola modifica coerente e spiegare perché ogni parte modificata è necessaria. Il risultato utile è una patch o una proposta di codice verificabile che conservi il contesto sorgente e le ipotesi, anziché una riscrittura ampia che nasconda il problema originale.\n\nPer ricerca e analisi dei dati, l’attenzione ai dettagli è utile quando una domanda dipende da più passaggi o osservazioni. Fornisci il materiale con identificativi delle fonti, definisci la domanda e richiedi le prove a sostegno di ogni conclusione. Una descrizione pratica può richiedere una tabella che mostri dove due documenti concordano, dove differiscono e quali domande restano senza risposta. Se la ricerca fa parte del flusso, l’applicazione fornisce lo strumento e il contenuto restituito. Il modello collega poi quei risultati al materiale esistente; una ricerca proposta nel suo testo non è un recupero completato.\n\nOpus 4.1 ha una modalità di risposta standard e ragionamento esteso facoltativo. La guida precedente al ragionamento offre controllo diretto tramite budget_tokens, con un minimo di 1 024 token. Il budget è normalmente inferiore a max_tokens perché ragionamento interno e risposta finale condividono la disponibilità di generazione. È un obiettivo di ragionamento, non una promessa di consumare l’intero budget. Il ragionamento adattivo e i controlli di impegno delle successive edizioni Opus sono capacità separate. Prepara un problema completo e specifica il formato della risposta finale, così che l’analisi aggiuntiva porti al risultato necessario al lettore.\n\nLa beta documentata per i primi modelli Claude 4 supporta ragionamento intercalato: ragionamento tra le chiamate agli strumenti all’interno di un turno dell’assistente. Usa la funzionalità di ragionamento intercalato del produttore nel flusso Messages supportato. In quella modalità, il budget di ragionamento può coprire più blocchi e superare il valore max_tokens di un singolo turno nell’eccezione documentata. Restituisci il blocco di ragionamento corrispondente invariato, compresa la firma, insieme al risultato di uno strumento. Un flusso di debug può così alternare analisi, una verifica eseguita dall’applicazione e interpretazione dell’uscita reale, mantenendo separate le azioni proposte da quelle completate.\n\nL’addendum alla scheda del sistema descrive anche compiti di uso del computer con osservazione dello schermo, azioni del mouse e immissioni da tastiera, insieme a compiti più lunghi di programmazione con strumenti. Il modello può ragionare da uno stato visivo fornito e selezionare un’azione in un ambiente collegato; l’applicazione esegue l’interazione e restituisce ciò che è cambiato. Per una richiesta basata sullo schermo, identifica l’obiettivo, i controlli visibili pertinenti e le azioni consentite. Per un flusso documentale o di dati, richiedi una spiegazione testuale o un risultato strutturato collegato alle prove fornite. L’interpretazione del modello e l’esecuzione dell’ambiente sono parti separate del lavoro.\n\nLa valutazione del produttore riporta una vulnerabilità all’iniezione di prompt simile a quella dell’Opus 4 originale. Esamina specificamente testo nascosto o elementi dell’interfaccia che tentano di allontanare un agente dal compito dell’utente. Mantieni separate le istruzioni del compito dal materiale restituito dagli strumenti e conserva l’obiettivo originale quando interpreti una pagina o un documento. È una condizione sostanziale di un flusso con agenti: vedere una richiesta in contenuti esterni non la rende un’istruzione autorizzata dall’utente. Le protezioni del modello non rendono ogni pagina incontrata un ingresso affidabile.\n\nLa scheda del sistema descrive anche una limitazione di programmazione chiamata reward hacking, comprese risposte codificate rigidamente e soluzioni adattate solo agli esempi davanti al modello. Opus 4.1 mostra tendenze simili a Opus 4, con alcune regressioni in quelle valutazioni mirate. Per una proposta di codice, richiedi una soluzione che soddisfi il requisito generale, identifica le condizioni gestite e includi verifiche oltre il singolo esempio fornito. Chiedi al rapporto finale di distinguere ciò che è stato proposto, ciò che l’ambiente ha realmente verificato e ciò che non è stato possibile stabilire. Questo collega i punti di forza del modello nel debug preciso e nell’attenzione ai dettagli a un artefatto concreto il cui comportamento può essere esaminato.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9eb55e15e63cac01eeedfe53839f892b6f500a45e1fd195f85d56e7c6c69b559",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "it",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">A</span><h2 id=\"sheet-title\">Anthropic: Claude Opus 4.1 (batch)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Chiudi\">×</button></div><div class=\"idline\"><span>Anthropic /</span><code>anthropic/claude-opus-4.1:batch</code><button type=\"button\" id=\"copy-id\">Copia ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sezioni della scheda del modello\"><button type=\"button\" data-card-jump=\"overview\">Introduzione</button><button type=\"button\" data-card-jump=\"methods\">Input e metodi</button><button type=\"button\" data-card-jump=\"pricing\">Tariffe</button><button type=\"button\" data-card-jump=\"examples\">Esempi</button><button type=\"button\" data-card-jump=\"results\">Risultati</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metodi API\"><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.1%3Abatch\">Batch</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\">Introduzione</h3><p class=\"mdesc-full\">Claude Opus 4.1 è l’aggiornamento di Anthropic a Opus 4 per il lavoro software con agenti, la ricerca, l’analisi dei dati e il ragionamento. Tra i punti centrali figurano la capacità di tenere traccia dei dettagli, le modifiche di codice su più file e il debug preciso, con risposte standard o ragionamento esteso facoltativo.</p><dl class=\"card-io\" data-card-io><div><dt>Input accettati</dt><dd>Testo</dd></div><div><dt>Risultati</dt><dd>Testo</dd></div></dl><details class=\"card-about\"><summary>Informazioni sul modello</summary><p class=\"note-s\" data-model-method-boundary>Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.</p><div class=\"mabout\" id=\"m-about\"><p>Claude Opus 4.1 è l’aggiornamento di Anthropic al Claude Opus 4 originale, concentrato sui compiti con agenti, sulla programmazione reale e sul ragionamento. La presentazione evidenzia anche ricerca approfondita e analisi dei dati, soprattutto la capacità di tenere traccia dei dettagli e usare la ricerca all’interno di un compito più ampio. L’addendum alla scheda del sistema che accompagna la versione descrive miglioramenti nella qualità del ragionamento e nel rispetto delle istruzioni. Rimane un’edizione distinta dall’Opus 4 originale e dai successivi modelli Opus 4.5, 4.6 e 5; i loro modi e limiti non devono essere considerati specifiche di questo aggiornamento.</p><p>Per il lavoro sul codice, la presentazione evidenzia rifattorizzazione su più file e individuazione di correzioni precise all’interno di una grande base di codice. Fornisci al modello i file o estratti pertinenti, il comportamento esistente, quello desiderato e i vincoli che una modifica valida deve preservare. Una richiesta illustrativa può chiedere di seguire un guasto attraverso funzioni correlate, proporre la più piccola modifica coerente e spiegare perché ogni parte modificata è necessaria. Il risultato utile è una patch o una proposta di codice verificabile che conservi il contesto sorgente e le ipotesi, anziché una riscrittura ampia che nasconda il problema originale.</p><p>Per ricerca e analisi dei dati, l’attenzione ai dettagli è utile quando una domanda dipende da più passaggi o osservazioni. Fornisci il materiale con identificativi delle fonti, definisci la domanda e richiedi le prove a sostegno di ogni conclusione. Una descrizione pratica può richiedere una tabella che mostri dove due documenti concordano, dove differiscono e quali domande restano senza risposta. Se la ricerca fa parte del flusso, l’applicazione fornisce lo strumento e il contenuto restituito. Il modello collega poi quei risultati al materiale esistente; una ricerca proposta nel suo testo non è un recupero completato.</p><p>Opus 4.1 ha una modalità di risposta standard e ragionamento esteso facoltativo. La guida precedente al ragionamento offre controllo diretto tramite budget_tokens, con un minimo di 1 024 token. Il budget è normalmente inferiore a max_tokens perché ragionamento interno e risposta finale condividono la disponibilità di generazione. È un obiettivo di ragionamento, non una promessa di consumare l’intero budget. Il ragionamento adattivo e i controlli di impegno delle successive edizioni Opus sono capacità separate. Prepara un problema completo e specifica il formato della risposta finale, così che l’analisi aggiuntiva porti al risultato necessario al lettore.</p><p>La beta documentata per i primi modelli Claude 4 supporta ragionamento intercalato: ragionamento tra le chiamate agli strumenti all’interno di un turno dell’assistente. Usa la funzionalità di ragionamento intercalato del produttore nel flusso Messages supportato. In quella modalità, il budget di ragionamento può coprire più blocchi e superare il valore max_tokens di un singolo turno nell’eccezione documentata. Restituisci il blocco di ragionamento corrispondente invariato, compresa la firma, insieme al risultato di uno strumento. Un flusso di debug può così alternare analisi, una verifica eseguita dall’applicazione e interpretazione dell’uscita reale, mantenendo separate le azioni proposte da quelle completate.</p><p>L’addendum alla scheda del sistema descrive anche compiti di uso del computer con osservazione dello schermo, azioni del mouse e immissioni da tastiera, insieme a compiti più lunghi di programmazione con strumenti. Il modello può ragionare da uno stato visivo fornito e selezionare un’azione in un ambiente collegato; l’applicazione esegue l’interazione e restituisce ciò che è cambiato. Per una richiesta basata sullo schermo, identifica l’obiettivo, i controlli visibili pertinenti e le azioni consentite. Per un flusso documentale o di dati, richiedi una spiegazione testuale o un risultato strutturato collegato alle prove fornite. L’interpretazione del modello e l’esecuzione dell’ambiente sono parti separate del lavoro.</p><p>La valutazione del produttore riporta una vulnerabilità all’iniezione di prompt simile a quella dell’Opus 4 originale. Esamina specificamente testo nascosto o elementi dell’interfaccia che tentano di allontanare un agente dal compito dell’utente. Mantieni separate le istruzioni del compito dal materiale restituito dagli strumenti e conserva l’obiettivo originale quando interpreti una pagina o un documento. È una condizione sostanziale di un flusso con agenti: vedere una richiesta in contenuti esterni non la rende un’istruzione autorizzata dall’utente. Le protezioni del modello non rendono ogni pagina incontrata un ingresso affidabile.</p><p>La scheda del sistema descrive anche una limitazione di programmazione chiamata reward hacking, comprese risposte codificate rigidamente e soluzioni adattate solo agli esempi davanti al modello. Opus 4.1 mostra tendenze simili a Opus 4, con alcune regressioni in quelle valutazioni mirate. Per una proposta di codice, richiedi una soluzione che soddisfi il requisito generale, identifica le condizioni gestite e includi verifiche oltre il singolo esempio fornito. Chiedi al rapporto finale di distinguere ciò che è stato proposto, ciò che l’ambiente ha realmente verificato e ciò che non è stato possibile stabilire. Questo collega i punti di forza del modello nel debug preciso e nell’attenzione ai dettagli a un artefatto concreto il cui comportamento può essere esaminato.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponibile in Ailoot · input e metodi</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Batch</b> <code>POST /v1/batches</code></summary><dl class=\"method-capabilities\"><div><dt>Tipi di input</dt><dd><code>text</code></dd></div><div><dt>Tipi di output</dt><dd><code>text</code></dd></div><div><dt>Formato di output</dt><dd>JSON inline di results[].response.body</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valori e limiti</th><th>Predefinito</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">endpoint</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>/v1/chat/completions</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>anthropic/claude-opus-4.1:batch</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">requests</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>batch_item[]</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>Numero minimo di elementi: 1</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">requests[].custom_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">requests[].body.messages</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>message[]</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">completion_window</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Facoltativo</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>24h</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object|null</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Facoltativo</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">requests[].body.model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Facoltativo</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>anthropic/claude-opus-4.1:batch, anthropic/claude-opus-4.1</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">provider.only</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string[]</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Facoltativo</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>anthropic</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">provider.allow_fallbacks</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean|null</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Facoltativo</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>false, null</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parametri e ciclo di vita del metodo</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametro</th><th>Contratto</th></tr></thead><tbody><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>content_type</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>application/json</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>required</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>endpoint, model, requests</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>material_types</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>text</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>representation</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>requests[] inline; ogni elemento contiene custom_id e body</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>request_endpoint_profile</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>/v1/chat/completions</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>file_material</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>Il chiamante può leggere localmente i dati JSONL effettivi in UTF-8 e inserirli in requests[]. Non viene usato alcun purpose di caricamento, input_file_id o riferimento a file. Il materiale del cliente mancante o vuoto interrompe la preparazione prima del POST.</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>serialization_order</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>endpoint, model, provider (se fornito), completion_window (se fornito), requests per ultimo</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>optional_controls</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>provider.only, provider.allow_fallbacks, completion_window</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>schema_scope</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>Corpi delle richieste Chat Completions per testo nella struttura inline Batch documentata.</td></tr></tbody></table></div><p>Ciclo di vita: <code>asynchronous</code></p><p class=\"note-s\"><code>GET /v1/batches/{operation_id}</code> · response.id effettivo della risposta alla creazione originale; stesso utente/chiave/gruppo</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tariffe</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.</p><dl data-price-conditions><dt>Modalità rapida</dt><dd>Non specificato <span class=\"note-s\">Quando è selezionata la modalità rapida</span></dd><dt>Modalità flex</dt><dd>Non specificato <span class=\"note-s\">Quando è selezionata la modalità flex</span></dd><dt>Sforzo massimo di ragionamento</dt><dd>Non specificato <span class=\"note-s\">Quando lo sforzo massimo di ragionamento usa l&#39;adeguamento predefinito (default)</span></dd><dt>Tariffe della cache esplicita</dt><dd>Abilitato <span class=\"note-s\">Quando viene richiesta una cache esplicita</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tariffe Ailoot</h4><h4>Prezzi per configurazione</h4><p class=\"note-s\">Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configurazione</th><th>Listino delle tariffe</th><th>Token di contesto, più di</th><th>Token di contesto, fino al limite incluso</th><th>Costo</th></tr></thead><tbody><tr><th data-cell-label=\"Configurazione\" scope=\"row\"><span class=\"card-cell-label\">Configurazione</span>Tariffe di base dei token</th><td data-cell-label=\"Listino delle tariffe\"><span class=\"card-cell-label\">Listino delle tariffe</span>Tariffa base</td><td data-cell-label=\"Token di contesto, più di\"><span class=\"card-cell-label\">Token di contesto, più di</span>—</td><td data-cell-label=\"Token di contesto, fino al limite incluso\"><span class=\"card-cell-label\">Token di contesto, fino al limite incluso</span>Nessun limite superiore</td><td data-cell-label=\"Costo\"><span class=\"card-cell-label\">Costo</span><div><span>Input · Token in input</span> <b>$0.015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token in output</span> <b>$0.075</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Lettura dalla cache</span> <b>$0.0015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache</span> <b>$0.01875</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache, 1 ora</span> <b>$0.03</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Configurazione\" scope=\"row\"><span class=\"card-cell-label\">Configurazione</span>Fascia 1 di lunghezza della richiesta</th><td data-cell-label=\"Listino delle tariffe\"><span class=\"card-cell-label\">Listino delle tariffe</span>—</td><td data-cell-label=\"Token di contesto, più di\"><span class=\"card-cell-label\">Token di contesto, più di</span>0</td><td data-cell-label=\"Token di contesto, fino al limite incluso\"><span class=\"card-cell-label\">Token di contesto, fino al limite incluso</span>Nessun limite superiore</td><td data-cell-label=\"Costo\"><span class=\"card-cell-label\">Costo</span><div><span>Input · Token in input</span> <b>$0.015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token in output</span> <b>$0.075</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Lettura dalla cache</span> <b>$0.0015</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache</span> <b>$0.01875</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache, 1 ora</span> <b>$0.03</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. <a href=\"/docs/it/billing/reserve/\">Come funzionano la prenotazione e l’addebito finale →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esempi di richieste</h3><h4>Ailoot Ultra · Batch</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianti di codice\"><button class=\"cg-tab\" id=\"model-code-1041-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1041-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · fixture conservata</button><button class=\"cg-tab\" id=\"model-code-1041-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1041-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python HTTP · JSONL effettivo del cliente</button><button class=\"cg-tab\" id=\"model-code-1041-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1041-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · salva ogni risultato completato</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copia il codice\"><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-1041-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1041-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.1: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-1041-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1041-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.1:batch&#39;, &#39;anthropic/claude-opus-4.1&#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.1: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-1041-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1041-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\">Ricevi e salva i risultati</h3><h4>Ailoot Ultra · Batch</h4><p class=\"note-s\">JSON inline di results[].response.body</p><ul class=\"card-result-paths\"><li><code>GET /v1/batches/{operation_id}</code></li></ul><h5>Verifica lo stato dell’attività</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianti di codice\"><button class=\"cg-tab\" id=\"model-code-1042-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1042-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · stato dell’operazione originale</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copia il codice\"><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-1042-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1042-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>Conserva tutti i risultati completati</h5><p class=\"note-s\">Conserva ogni risposta, file e parte di contenuto restituiti per intero.</p><p class=\"note-s\">Conserva il JSON completo dello stato originale, ogni result/custom_id e il corpo completo della risposta o dell&#39;errore. Salva i results[] completati come JSONL senza filtrarli.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Se occorre verificare la risposta originale</h5><p class=\"note-s\">Conserva l&#39;ID dell&#39;operazione originale. La risposta 503 result_pending_check contiene X-Should-Retry:false; non reinviare mai un batch originale il cui esito è sconosciuto.</p></div><details class=\"card-about\" data-output-fields><summary>Campi della risposta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">results[].custom_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">results[].response.body.choices[].message.content</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string|null</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">results[].error</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object|null</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object|null</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">endpoint</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">request_counts</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">results[].id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">results[].response.status_code</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>integer</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">results[].response.request_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Errori e passaggi successivi</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Risposta</th><th>Condizione</th><th>Passaggio successivo</th></tr></thead><tbody><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Struttura inline documentata non valida, chiavi duplicate, identità degli elementi non valida o conflitto con le capacità configurate del modello.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Correggi i campi indicati prima di qualsiasi nuovo invio.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Chiave API non valida.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Usa la chiave Ailoot autorizzata.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>403 · <code>permission_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Gruppo Batch non disponibile.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Verifica le autorizzazioni della chiave e del gruppo.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Batch usa l&#39;addebito sul saldo; la creazione tramite abbonamento viene rifiutata.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Usa il gruppo autorizzato con addebito sul saldo.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Non è possibile formulare un preventivo per l&#39;input Batch.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva la risposta; usa l&#39;input documentato per la famiglia.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>402 · <code>billing_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Riserva Batch non disponibile.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Risolvi le condizioni di ammissione prima di una nuova richiesta.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>503 · <code>price_unavailable</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Prezzo del metodo Batch o tariffe native non disponibili.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva la risposta; non sostituire i prezzi.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>503 · <code>api_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>La rotta esatta del fornitore non è disponibile.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva la risposta per la riparazione della rotta.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Il risultato originale richiede una verifica; X-Should-Retry:false.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva operation_id/id originale e leggine lo stato; non ripetere mai il POST originale.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>404 · <code>not_found</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>L&#39;operazione di stato Batch è assente o appartiene a un&#39;altra identità.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Usa l&#39;id originale esatto e lo stesso utente/chiave/gruppo.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias del modello</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=anthropic%2Fclaude-opus-4.1%3Abatch&amp;route=Ultra&amp;caller=anthropic%2Fclaude-opus-4.1%3Abatch&amp;fmt=batches\"><code>anthropic/claude-opus-4.1:batch</code></a></span></p><h4>Alias dei percorsi dei metodi</h4><p class=\"note-s\">Usa i percorsi dei metodi indicati sopra.</p><h4>ID di chiamata correlati</h4><p class=\"note-s\"><a href=\"#m=anthropic%2Fclaude-opus-4.1%3Abatch&amp;route=Ultra&amp;caller=anthropic%2Fclaude-opus-4.1%3Abatch&amp;fmt=batches\"><code>anthropic/claude-opus-4.1:batch</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "anthropic/claude-opus-4.1:batch",
        "fmt": "batches",
        "http": "POST",
        "path": "/v1/batches",
        "request_model_id": "anthropic/claude-opus-4.1:batch",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|batches|/v1/batches|anthropic%2Fclaude-opus-4.1%3Abatch",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 1.5,
        "cache_write": 18.75,
        "cache_write_1h": 30,
        "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": "Struttura inline documentata non valida, chiavi duplicate, identità degli elementi non valida o conflitto con le capacità configurate del modello.",
                "http_status": 400,
                "recovery": "Correggi i campi indicati prima di qualsiasi nuovo invio.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Chiave API non valida.",
                "http_status": 401,
                "recovery": "Usa la chiave Ailoot autorizzata.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Gruppo Batch non disponibile.",
                "http_status": 403,
                "recovery": "Verifica le autorizzazioni della chiave e del gruppo.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Batch usa l'addebito sul saldo; la creazione tramite abbonamento viene rifiutata.",
                "http_status": 422,
                "recovery": "Usa il gruppo autorizzato con addebito sul saldo.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Non è possibile formulare un preventivo per l'input Batch.",
                "http_status": 422,
                "recovery": "Conserva la risposta; usa l'input documentato per la famiglia.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Riserva Batch non disponibile.",
                "http_status": 402,
                "recovery": "Risolvi le condizioni di ammissione prima di una nuova richiesta.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Prezzo del metodo Batch o tariffe native non disponibili.",
                "http_status": 503,
                "recovery": "Conserva la risposta; non sostituire i prezzi.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "La rotta esatta del fornitore non è disponibile.",
                "http_status": 503,
                "recovery": "Conserva la risposta per la riparazione della rotta.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Il risultato originale richiede una verifica; X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Conserva operation_id/id originale e leggine lo stato; non ripetere mai il POST originale.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "L'operazione di stato Batch è assente o appartiene a un'altra identità.",
                "http_status": 404,
                "recovery": "Usa l'id originale esatto e lo stesso utente/chiave/gruppo.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "anthropic/claude-opus-4.1: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": "Conserva il JSON completo dello stato originale, ogni result/custom_id e il corpo completo della risposta o dell'errore. Salva i results[] completati come JSONL senza filtrarli.",
              "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": "JSON inline di 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.1: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.1:batch",
                  "anthropic/claude-opus-4.1"
                ],
                "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.1: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.1:batch",
                              "anthropic/claude-opus-4.1"
                            ],
                            "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.1: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": "Il chiamante può leggere localmente i dati JSONL effettivi in UTF-8 e inserirli in requests[]. Non viene usato alcun purpose di caricamento, input_file_id o riferimento a file. Il materiale del cliente mancante o vuoto interrompe la preparazione prima del POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "requests[] inline; ogni elemento contiene custom_id e body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "Corpi delle richieste Chat Completions per testo nella struttura inline Batch documentata.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (se fornito)",
              "completion_window (se fornito)",
              "requests per ultimo"
            ]
          },
          "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": "response.id effettivo della risposta alla creazione originale; stesso utente/chiave/gruppo",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Conserva l'ID dell'operazione originale. La risposta 503 result_pending_check contiene X-Should-Retry:false; non reinviare mai un batch originale il cui esito è sconosciuto."
          },
          "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": "Tariffe di base dei token",
            "units": [
              {
                "amount": "0.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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": "Fascia 1 di lunghezza della richiesta",
            "units": [
              {
                "amount": "0.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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.1: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.1:batch', 'anthropic/claude-opus-4.1']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"anthropic/claude-opus-4.1: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": 15,
        "input": [
          "text"
        ],
        "label": "Batch",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 75,
        "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.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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.1:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 1.5,
            "cache_read_multiplier": null,
            "cache_write": 18.75,
            "cache_write_1h": 30,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 15,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 75,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000015",
            "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.075000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000075",
            "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.0015000",
            "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.0000015",
            "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.01875000",
            "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.00001875",
            "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.03000",
            "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.00003",
            "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.1:batch",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "263c6332cdcebd645d9f3135c912f26fffcc2b4cd7944ad79a6b4cd9e5000612",
    "input_html_sha256": "ad4a21e7cc7601d7847c96e3bfdb899579ffd5a734a88bbfa2edceaced1ca05d",
    "private_audit_sha256": "52e838cd6b0f98007c91d7234495f5aa4fab96e54fc5fb3a38de7265bb2dc637",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/it/anthropic-claude-opus-4-1-u003a-batch/",
    "description": "Claude Opus 4.1 è l’aggiornamento di Anthropic a Opus 4 per il lavoro software con agenti, la ricerca, l’analisi dei dati e il ragionamento. Tra i punti centrali figurano la capacità di tenere traccia dei dettagli, le modifiche di codice su più file e il debug preciso, con risposte standard o ragionamento esteso facoltativo.",
    "locale": "it",
    "md_url": "https://ailoot.ai/models/it/anthropic-claude-opus-4-1-u003a-batch/index.md",
    "title": "Anthropic: Claude Opus 4.1 (batch) — Ailoot",
    "url": "https://ailoot.ai/models/it/anthropic-claude-opus-4-1-u003a-batch/"
  },
  "rawModel": {
    "about": "Claude Opus 4.1 è l’aggiornamento di Anthropic al Claude Opus 4 originale, concentrato sui compiti con agenti, sulla programmazione reale e sul ragionamento. La presentazione evidenzia anche ricerca approfondita e analisi dei dati, soprattutto la capacità di tenere traccia dei dettagli e usare la ricerca all’interno di un compito più ampio. L’addendum alla scheda del sistema che accompagna la versione descrive miglioramenti nella qualità del ragionamento e nel rispetto delle istruzioni. Rimane un’edizione distinta dall’Opus 4 originale e dai successivi modelli Opus 4.5, 4.6 e 5; i loro modi e limiti non devono essere considerati specifiche di questo aggiornamento.\n\nPer il lavoro sul codice, la presentazione evidenzia rifattorizzazione su più file e individuazione di correzioni precise all’interno di una grande base di codice. Fornisci al modello i file o estratti pertinenti, il comportamento esistente, quello desiderato e i vincoli che una modifica valida deve preservare. Una richiesta illustrativa può chiedere di seguire un guasto attraverso funzioni correlate, proporre la più piccola modifica coerente e spiegare perché ogni parte modificata è necessaria. Il risultato utile è una patch o una proposta di codice verificabile che conservi il contesto sorgente e le ipotesi, anziché una riscrittura ampia che nasconda il problema originale.\n\nPer ricerca e analisi dei dati, l’attenzione ai dettagli è utile quando una domanda dipende da più passaggi o osservazioni. Fornisci il materiale con identificativi delle fonti, definisci la domanda e richiedi le prove a sostegno di ogni conclusione. Una descrizione pratica può richiedere una tabella che mostri dove due documenti concordano, dove differiscono e quali domande restano senza risposta. Se la ricerca fa parte del flusso, l’applicazione fornisce lo strumento e il contenuto restituito. Il modello collega poi quei risultati al materiale esistente; una ricerca proposta nel suo testo non è un recupero completato.\n\nOpus 4.1 ha una modalità di risposta standard e ragionamento esteso facoltativo. La guida precedente al ragionamento offre controllo diretto tramite budget_tokens, con un minimo di 1 024 token. Il budget è normalmente inferiore a max_tokens perché ragionamento interno e risposta finale condividono la disponibilità di generazione. È un obiettivo di ragionamento, non una promessa di consumare l’intero budget. Il ragionamento adattivo e i controlli di impegno delle successive edizioni Opus sono capacità separate. Prepara un problema completo e specifica il formato della risposta finale, così che l’analisi aggiuntiva porti al risultato necessario al lettore.\n\nLa beta documentata per i primi modelli Claude 4 supporta ragionamento intercalato: ragionamento tra le chiamate agli strumenti all’interno di un turno dell’assistente. Usa la funzionalità di ragionamento intercalato del produttore nel flusso Messages supportato. In quella modalità, il budget di ragionamento può coprire più blocchi e superare il valore max_tokens di un singolo turno nell’eccezione documentata. Restituisci il blocco di ragionamento corrispondente invariato, compresa la firma, insieme al risultato di uno strumento. Un flusso di debug può così alternare analisi, una verifica eseguita dall’applicazione e interpretazione dell’uscita reale, mantenendo separate le azioni proposte da quelle completate.\n\nL’addendum alla scheda del sistema descrive anche compiti di uso del computer con osservazione dello schermo, azioni del mouse e immissioni da tastiera, insieme a compiti più lunghi di programmazione con strumenti. Il modello può ragionare da uno stato visivo fornito e selezionare un’azione in un ambiente collegato; l’applicazione esegue l’interazione e restituisce ciò che è cambiato. Per una richiesta basata sullo schermo, identifica l’obiettivo, i controlli visibili pertinenti e le azioni consentite. Per un flusso documentale o di dati, richiedi una spiegazione testuale o un risultato strutturato collegato alle prove fornite. L’interpretazione del modello e l’esecuzione dell’ambiente sono parti separate del lavoro.\n\nLa valutazione del produttore riporta una vulnerabilità all’iniezione di prompt simile a quella dell’Opus 4 originale. Esamina specificamente testo nascosto o elementi dell’interfaccia che tentano di allontanare un agente dal compito dell’utente. Mantieni separate le istruzioni del compito dal materiale restituito dagli strumenti e conserva l’obiettivo originale quando interpreti una pagina o un documento. È una condizione sostanziale di un flusso con agenti: vedere una richiesta in contenuti esterni non la rende un’istruzione autorizzata dall’utente. Le protezioni del modello non rendono ogni pagina incontrata un ingresso affidabile.\n\nLa scheda del sistema descrive anche una limitazione di programmazione chiamata reward hacking, comprese risposte codificate rigidamente e soluzioni adattate solo agli esempi davanti al modello. Opus 4.1 mostra tendenze simili a Opus 4, con alcune regressioni in quelle valutazioni mirate. Per una proposta di codice, richiedi una soluzione che soddisfi il requisito generale, identifica le condizioni gestite e includi verifiche oltre il singolo esempio fornito. Chiedi al rapporto finale di distinguere ciò che è stato proposto, ciò che l’ambiente ha realmente verificato e ciò che non è stato possibile stabilire. Questo collega i punti di forza del modello nel debug preciso e nell’attenzione ai dettagli a un artefatto concreto il cui comportamento può essere esaminato.",
    "alias_of": null,
    "aliases": [],
    "author": "Anthropic",
    "capabilities": {
      "context_length": 200000,
      "manufacturer_input": [
        "image",
        "text",
        "file"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000015",
            "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.075000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000075",
            "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": "Tutte le tariffe della configurazione sono riportate nei dettagli."
      }
    ],
    "ctx": null,
    "formats": [
      "batches"
    ],
    "id": "anthropic/claude-opus-4.1:batch",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 1.5,
        "cache_write": 18.75,
        "cache_write_1h": 30,
        "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": "Struttura inline documentata non valida, chiavi duplicate, identità degli elementi non valida o conflitto con le capacità configurate del modello.",
                "http_status": 400,
                "recovery": "Correggi i campi indicati prima di qualsiasi nuovo invio.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Chiave API non valida.",
                "http_status": 401,
                "recovery": "Usa la chiave Ailoot autorizzata.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Gruppo Batch non disponibile.",
                "http_status": 403,
                "recovery": "Verifica le autorizzazioni della chiave e del gruppo.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Batch usa l'addebito sul saldo; la creazione tramite abbonamento viene rifiutata.",
                "http_status": 422,
                "recovery": "Usa il gruppo autorizzato con addebito sul saldo.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Non è possibile formulare un preventivo per l'input Batch.",
                "http_status": 422,
                "recovery": "Conserva la risposta; usa l'input documentato per la famiglia.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Riserva Batch non disponibile.",
                "http_status": 402,
                "recovery": "Risolvi le condizioni di ammissione prima di una nuova richiesta.",
                "type": "billing_error"
              },
              {
                "code": null,
                "condition": "Prezzo del metodo Batch o tariffe native non disponibili.",
                "http_status": 503,
                "recovery": "Conserva la risposta; non sostituire i prezzi.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "La rotta esatta del fornitore non è disponibile.",
                "http_status": 503,
                "recovery": "Conserva la risposta per la riparazione della rotta.",
                "type": "api_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Il risultato originale richiede una verifica; X-Should-Retry:false.",
                "http_status": 503,
                "recovery": "Conserva operation_id/id originale e leggine lo stato; non ripetere mai il POST originale.",
                "type": null
              },
              {
                "code": "not_found",
                "condition": "L'operazione di stato Batch è assente o appartiene a un'altra identità.",
                "http_status": 404,
                "recovery": "Usa l'id originale esatto e lo stesso utente/chiave/gruppo.",
                "type": null
              }
            ],
            "example_body": {
              "endpoint": "/v1/chat/completions",
              "model": "anthropic/claude-opus-4.1: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": "Conserva il JSON completo dello stato originale, ogni result/custom_id e il corpo completo della risposta o dell'errore. Salva i results[] completati come JSONL senza filtrarli.",
              "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": "JSON inline di 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.1: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.1:batch",
                  "anthropic/claude-opus-4.1"
                ],
                "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.1: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.1:batch",
                              "anthropic/claude-opus-4.1"
                            ],
                            "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.1: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": "Il chiamante può leggere localmente i dati JSONL effettivi in UTF-8 e inserirli in requests[]. Non viene usato alcun purpose di caricamento, input_file_id o riferimento a file. Il materiale del cliente mancante o vuoto interrompe la preparazione prima del POST.",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "provider.only",
              "provider.allow_fallbacks",
              "completion_window"
            ],
            "representation": "requests[] inline; ogni elemento contiene custom_id e body",
            "request_endpoint_profile": "/v1/chat/completions",
            "required": [
              "endpoint",
              "model",
              "requests"
            ],
            "schema_scope": "Corpi delle richieste Chat Completions per testo nella struttura inline Batch documentata.",
            "serialization_order": [
              "endpoint",
              "model",
              "provider (se fornito)",
              "completion_window (se fornito)",
              "requests per ultimo"
            ]
          },
          "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": "response.id effettivo della risposta alla creazione originale; stesso utente/chiave/gruppo",
              "path": "/v1/batches/{operation_id}"
            },
            "terminal": [
              "completed",
              "failed",
              "expired",
              "cancelled"
            ],
            "unknown": "Conserva l'ID dell'operazione originale. La risposta 503 result_pending_check contiene X-Should-Retry:false; non reinviare mai un batch originale il cui esito è sconosciuto."
          },
          "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": "Tariffe di base dei token",
            "units": [
              {
                "amount": "0.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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": "Fascia 1 di lunghezza della richiesta",
            "units": [
              {
                "amount": "0.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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.1: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.1:batch', 'anthropic/claude-opus-4.1']: raise ValueError(\"body.model must be an exact documented caller or wire ID\")\n    return {\"endpoint\":\"/v1/chat/completions\", \"model\":\"anthropic/claude-opus-4.1: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": 15,
        "input": [
          "text"
        ],
        "label": "Batch",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 75,
        "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.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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.015000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.000015",
                "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.075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.000075",
                "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.0015000",
                "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.0000015",
                "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.01875000",
                "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.00001875",
                "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.03000",
                "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.00003",
                "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.1:batch",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/batches/{operation_id}"
        ],
        "tiers": [
          {
            "cache_read": 1.5,
            "cache_read_multiplier": null,
            "cache_write": 18.75,
            "cache_write_1h": 30,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 15,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 75,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.015000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.000015",
            "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.075000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.000075",
            "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.0015000",
            "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.0000015",
            "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.01875000",
            "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.00001875",
            "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.03000",
            "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.00003",
            "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.1:batch",
        "request_model_id": "anthropic/claude-opus-4.1:batch",
        "route_label": "Ultra"
      }
    ],
    "name": "Anthropic: Claude Opus 4.1 (batch)",
    "price": {
      "in": 15,
      "in_label": null,
      "out": 75,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 15,
      "sort_out": 75,
      "varies": true
    },
    "short": "Claude Opus 4.1 è l’aggiornamento di Anthropic a Opus 4 per il lavoro software con agenti, la ricerca, l’analisi dei dati e il ragionamento. Tra i punti centrali figurano la capacità di tenere traccia dei dettagli, le modifiche di codice su più file e il debug preciso, con risposte standard o ragionamento esteso facoltativo."
  },
  "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.1 è l’aggiornamento di Anthropic a Opus 4 per il lavoro software con agenti, la ricerca, l’analisi dei dati e il ragionamento. Tra i punti centrali figurano la capacità di tenere traccia dei dettagli, le modifiche di codice su più file e il debug preciso, con risposte standard o ragionamento esteso facoltativo.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "15d35c5538f55b9a6ed4a77d171cfb3a3bc662b053df57a93ce9fa0f5641140f",
    "renderer_sha256": "3be1a96012c3c76b38a7b9bea6a57c0def38c56103737bee6a5e77aaa75e488a"
  },
  "sourceRevision": "16f957922f393da31448e38213a09c1063b57874d08150752339c3e1f48f83d3"
}
