Errori HTTP

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

  • 400 - invalid_request_error: C’è stato un problema con il formato o il contenuto della tua richiesta. Potremmo utilizzare questo tipo di errore anche 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 i permessi per utilizzare la risorsa specificata.

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

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

  • 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.

    Improvvisi aumenti significativi nell’utilizzo possono portare a un aumento della frequenza degli errori 529. Raccomandiamo di aumentare gradualmente e mantenere 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.

Strutture degli errori

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 aumentino nel tempo.

ID della richiesta

Ogni risposta API include un header request-id univoco. Questo header 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’header x-request-id:

Richieste lunghe

Consigliamo vivamente di utilizzare l’API Messages in streaming o l’API Message Batches per le 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, che può causare il fallimento della richiesta o il timeout 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 permettendoti di effettuare il polling dei risultati invece di 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 delle connessioni inattive su alcune reti.

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

Was this page helpful?