Errori e limiti di frequenza
La singola busta di errore che ogni richiesta fallita restituisce, le intestazioni del limite di frequenza e come ritentare una scrittura in modo sicuro.
Ogni endpoint fallisce allo stesso modo, quindi un client gestisce errori, limiti di frequenza e tentativi una volta sola e riutilizza quel codice ovunque, incluso su MCP.
Ogni risposta non-2xx è un oggetto JSON:
{
"defined": false,
"code": "TOO_MANY_REQUESTS",
"message": "Too many requests",
"data": { "reason": "rate_limit.exceeded", "retryAfterMs": 12000 }
}codeè l'errore a livello HTTP, ad esempioUNAUTHORIZED,FORBIDDEN,NOT_FOUND,BAD_REQUESToTOO_MANY_REQUESTS.data.reason, quando presente, è un motivo più preciso leggibile dalla macchina comeauth.key_not_foundorate_limit.exceeded. Fai branching su questo piuttosto che sumessage, che è per le persone e può cambiare.definedètruequando l'operazione elenca quell'errore nella riferimento API, efalseper errori che qualsiasi richiesta può incontrare (autenticazione, limiti di frequenza, una rotta sconosciuta).- Un fallimento di validazione risponde
BAD_REQUESTcon i problemi indata.formErrorsedata.fieldErrors.
Ogni risposta include anche un X-Request-ID. Citalo quando contatti
l'assistenza, così possiamo trovare quella richiesta esatta.
| Stato | Codice | Cosa fare |
|---|---|---|
400 | BAD_REQUEST | Correggi la richiesta; data.fieldErrors indica i campi |
401 | UNAUTHORIZED | Invia una chiave o sessione valida |
403 | FORBIDDEN | La chiave non ha lo scope o il ruolo richiesto dall'operazione |
404 | NOT_FOUND | La risorsa non esiste, oppure non hai il permesso di vederla |
409 | CONFLICT | Una scrittura duplicata è ancora in corso; riprova tra poco |
413 | PAYLOAD_TOO_LARGE | Il corpo della richiesta supera 1 MB; suddividi un invio bulk in batch più piccoli |
422 | UNPROCESSABLE_CONTENT | La richiesta è ben formata ma non può essere applicata |
429 | TOO_MANY_REQUESTS | Attendi Retry-After, poi riprova |
Ogni risposta indica il limite contro cui è stata conteggiata, in due forme:
- le intestazioni
X-RateLimit-*; - i campi strutturati IETF
RateLimit(stato attuale:rsono le richieste rimanenti,ti secondi fino al reset della finestra) eRateLimit-Policy(la quota:qè il limite,wla finestra in secondi).
Una 429 include anche Retry-After in secondi e data.retryAfterMs. Attendi almeno quel tempo
prima della prossima richiesta; riprovare prima viene conteggiato e rifiutato di nuovo.
Un'operazione di scrittura che elenca un'intestazione Idempotency-Key nella
riferimento API può essere ripetuta senza eseguire il lavoro due volte. Invia
una chiave per ogni scrittura logica e ripeti la stessa chiave in ogni tentativo:
- la stessa chiave con lo stesso corpo entro 24 ore riproduce la risposta memorizzata;
- la stessa chiave con un corpo diverso viene rifiutata con
422; - un duplicato che arriva mentre il primo è ancora in esecuzione riceve
409.
Un'operazione senza l'intestazione non è idempotente, quindi ripetila solo quando sai che il primo tentativo non è andato a buon fine.
Questa pagina ti è stata utile?
Autenticazione
Autentica le richieste API con una chiave API dell'area di lavoro inviata come bearer token e scegli la classe della chiave e gli ambiti di cui un lavoro ha bisogno.
MCP
Collega un agente IA alla tua base di conoscenza dell'area di lavoro tramite il Model Context Protocol con una chiave API.