Errori HTTP

La nostra API segue un formato di codice di errore HTTP prevedibile:

  • 400 - invalid_request_error: C’è stato un problema con il formato o il contenuto della tua richiesta. Potremmo anche utilizzare questo tipo di errore per altri codici di stato 4XX non elencati di seguito.

  • 401 - authentication_error: C’è un problema con la tua chiave API.

  • 403 - permission_error: La tua chiave API non ha il permesso di utilizzare la risorsa specificata.

  • 404 - not_found_error: La risorsa richiesta non è stata trovata.

  • 413 - request_too_large: La richiesta supera il numero massimo di byte consentiti.

  • 429 - rate_limit_error: Il tuo account ha raggiunto un limite di frequenza.

  • 500 - api_error: Si è verificato un errore imprevisto interno ai sistemi di Anthropic.

  • 529 - overloaded_error: L’API di Anthropic è temporaneamente sovraccarica.

    Gli errori 529 possono verificarsi quando le API di Anthropic sperimentano un traffico elevato da parte di tutti gli utenti. In rari casi, se la tua organizzazione registra un forte aumento nell’utilizzo, potresti riscontrare questo tipo di errore. Per evitare errori 529, aumenta gradualmente il tuo traffico e mantieni modelli di utilizzo costanti.

Quando si riceve una risposta in streaming tramite SSE, è possibile che si verifichi un errore dopo aver restituito una risposta 200, nel qual caso la gestione degli errori non seguirebbe questi meccanismi standard.

Forme di errore

Gli errori vengono sempre restituiti come JSON, con un oggetto error di primo livello che include sempre un valore type e message. Per esempio:

JSON
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  }
}

In conformità con la nostra politica di versioning, potremmo espandere i valori all’interno di questi oggetti, ed è possibile che i valori type aumenteranno nel tempo.

ID richiesta

Ogni risposta API include un’intestazione request-id univoca. Questa intestazione contiene un valore come req_018EeWyXxfu5pfWkrYcMdjWG. Quando contatti il supporto per una richiesta specifica, includi questo ID per aiutarci a risolvere rapidamente il tuo problema.

I nostri SDK ufficiali forniscono questo valore come proprietà sugli oggetti di risposta di primo livello, contenente il valore dell’intestazione x-request-id:

Richieste lunghe

Consigliamo vivamente di utilizzare l’API Messages in streaming o l’API Message Batches per richieste di lunga durata, specialmente quelle superiori a 10 minuti.

Non consigliamo di impostare valori max_tokens elevati senza utilizzare la nostra API Messages in streaming o API Message Batches:

  • Alcune reti potrebbero interrompere le connessioni inattive dopo un periodo di tempo variabile, il che può causare il fallimento o il timeout della richiesta senza ricevere una risposta da Anthropic.
  • Le reti differiscono in affidabilità; la nostra API Message Batches può aiutarti a gestire il rischio di problemi di rete consentendoti di effettuare polling per i risultati anziché richiedere una connessione di rete ininterrotta.

Se stai costruendo un’integrazione API diretta, dovresti essere consapevole che l’impostazione di un TCP socket keep-alive può ridurre l’impatto dei timeout di connessione inattiva su alcune reti.

I nostri SDK verificheranno che le tue richieste non in streaming all’API Messages non dovrebbero superare un timeout di 10 minuti e imposteranno anche un’opzione socket per il TCP keep-alive.