Vai al contenuto
Docs

Riferimento

Come l’API di Emailit segnala gli errori. Formati del corpo delle risposte, codici di stato HTTP e il loro significato, e soluzioni per i messaggi di errore più frequenti.

Aggiornato il 1 ott 2026

L’API di Emailit usa i codici di stato HTTP per indicarti se una richiesta è andata a buon fine. I codici nell’intervallo 2xx indicano un successo, i codici 4xx indicano che qualcosa nella richiesta va cambiato e i codici 5xx indicano che qualcosa è andato storto da parte nostra. Questa pagina descrive il corpo degli errori, tutti i codici di stato che l’API restituisce e come correggere gli errori più comuni.

Formati delle risposte di errore

Il corpo di ogni errore è un oggetto JSON con un campo error. La forma esatta dipende dal punto in cui la richiesta non è riuscita. Scrivi la gestione degli errori in modo che legga error, poi message quando è presente, poi gli eventuali campi aggiuntivi documentati dall’endpoint.

Errori della richiesta

Gli errori di autenticazione, gli errori di permesso, il JSON malformato e gli altri errori generati prima dell’esecuzione di un endpoint usano il formato di errore HTTP standard:

JSON
{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "API key required"
}
Campo Descrizione
statusCode Il codice di stato HTTP.
error La frase di stato HTTP, come Unauthorized o Forbidden.
message Cosa è andato storto, in linguaggio semplice.

Errori di convalida

Quando un parametro di query o un campo del corpo ha il tipo sbagliato, manca o è fuori dall’intervallo consentito, l’API rifiuta la richiesta con 400 prima di eseguirla ed elenca ogni problema in details:

JSON
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Validation error",
  "details": [
    {
      "instancePath": "/limit",
      "schemaPath": "#/properties/limit/maximum",
      "keyword": "maximum",
      "params": { "comparison": "<=", "limit": 100 },
      "message": "must be <= 100"
    }
  ]
}

instancePath indica il campo (/limit, /to, /attachments/0/filename) e message descrive la regola violata. Su alcuni endpoint, come Invia un’email, questi errori restituiscono solo {"error": "Bad Request"}.

Errori delle risorse

Gli errori generati da un endpoint, come un oggetto inesistente o un nome duplicato, restituiscono error e spesso message:

JSON
{
  "error": "Email not found",
  "message": "Email with ID 'em_4KYof1ZzXndZE2VPi0DgULiekG8' not found in your workspace"
}

Alcuni errori aggiungono campi che ti aiutano a rimediare:

Campo Restituito con Contiene
existing 409 quando crei un dominio, una chiave API, una lista, un contatto o un iscritto duplicato L’oggetto che esiste già, così puoi usare quello.
usage 422 quando viene raggiunto un limite del piano used, limit e, per le liste, plan.
required_plan 403 con error: "plan_required" Il piano più basso che include la funzione, come pro.
code Alcuni errori 403 e 422 Un codice stabile e leggibile dalle macchine, come unverified_workspace_recipient o events_offset_too_large.
missing 404 da Aggiorna i contatti in blocco Gli ID dei contatti non trovati.

Errori di convalida dell’invio

Invia un’email e Inoltra un’email controllano l’intero messaggio in una volta e restituiscono tutti i problemi in validation_errors:

JSON
{
  "error": "Validation failed",
  "validation_errors": [
    "Missing required field: subject",
    "Invalid to email address at index 1: ada@example"
  ]
}

Errori per campo

Template, campagne e automazioni restituiscono i problemi di convalida raggruppati per campo:

JSON
{
  "message": "Validation failed",
  "errors": {
    "alias": ["Alias must contain only lowercase letters (a-z), numbers (0-9), underscores (_), and hyphens (-)"]
  }
}

Errori di limite di frequenza

Le risposte 429 degli endpoint di invio indicano il limite raggiunto e quanto attendere. Vedi Limiti di frequenza.

JSON
{
  "error": "Rate limit exceeded",
  "message": "Too many requests. Maximum 2 messages per second allowed.",
  "limit": 2,
  "current": 2,
  "retry_after": 1
}

Codici di stato HTTP

Codice Significato Cause tipiche nell’API di Emailit
200 OK La richiesta è riuscita. Invii, aggiornamenti, eliminazioni e letture restituiscono 200.
201 Created È stato creato un dominio, una chiave API, una lista, un iscritto, un contatto, un template, un webhook o un altro oggetto.
202 Accepted Il caricamento di un report DMARC è stato accettato per l’elaborazione.
204 No Content Un modulo è stato eliminato. La risposta non ha corpo.
400 Bad Request JSON non valido, un campo obbligatorio mancante, un valore del tipo sbagliato o fuori intervallo, un Idempotency-Key non valido, oppure nessun campo da aggiornare.
401 Unauthorized La chiave API manca, non è valida, è stata eliminata o rigenerata, oppure un token OAuth è scaduto. Vedi Autenticazione.
402 Payment Required Il workspace non ha crediti sufficienti per l’invio, il nuovo tentativo o la verifica.
403 Forbidden Il permesso della chiave non consente l’endpoint, una chiave limitata a un dominio ha inviato da un altro dominio, il workspace è sospeso o non ancora verificato, il dominio di invio è in pausa, oppure la funzione richiede un piano superiore.
404 Not Found L’oggetto non esiste in questo workspace, oppure l’alias di un template non ha una versione pubblicata.
409 Conflict Esiste già un oggetto con lo stesso nome o la stessa email, oppure è ancora in corso una richiesta con lo stesso Idempotency-Key.
413 Payload Too Large L’email composta supera i 40 MB, oppure il report DMARC caricato supera i 10 MB.
422 Unprocessable Entity La richiesta è valida ma al momento non può essere eseguita: il dominio di from non è verificato, un allegato non è stato scaricato, lo stato dell’email non consente l’annullamento o il nuovo tentativo, il suo contenuto è già stato eliminato definitivamente, oppure è stato raggiunto un limite del piano.
429 Too Many Requests Il workspace ha raggiunto il limite di invio al secondo o giornaliero, oppure il limite orario degli inoltri.
500 Internal Server Error Qualcosa non ha funzionato da parte nostra. Ritenta con backoff e contatta il supporto se il problema persiste.
503 Service Unavailable Un’interruzione temporanea di un servizio da cui dipendiamo, come l’archivio delle chiavi di idempotenza o il database di autenticazione. Ritenta con backoff.

Errori comuni e come correggerli

Stato error Causa Soluzione
400 Validation failed In un invio mancano from, to, subject o il contenuto, oppure c’è un indirizzo o un allegato non valido. Correggi ogni voce elencata in validation_errors.
400 Invalid JSON in request body (in message) Il corpo non è JSON valido. Controlla le virgolette e le virgole finali, e invia Content-Type: application/json.
400 Invalid Idempotency-Key La chiave supera i 256 caratteri o contiene caratteri diversi da lettere, cifre, - e _. Usa un UUID o un valore sicuro simile.
402 Insufficient credits I crediti sono esauriti. Ogni destinatario costa un credito. Acquista crediti o attiva la ricarica automatica.
403 Workspace not verified Il workspace è in modalità sandbox e un destinatario non è un membro del workspace. Richiedi l’accesso alla produzione.
403 Domain paused L’invio da questo dominio è in pausa a causa della sua salute degli invii. Risolvi il problema di bounce o di segnalazioni, poi contatta il supporto.
403 Domain not authorized La chiave API è limitata a un altro dominio di invio. Invia dal dominio della chiave o usa un’altra chiave.
403 plan_required La funzione, come i report DMARC o i filtri dei webhook, non è inclusa nel piano. Passa al piano indicato in required_plan.
403 mjml_alpha La richiesta crea o modifica MJML, oppure chiama un endpoint MJML. MJML è in alpha e aperto solo al team di Emailit. Usa un altro editor o un altro tipo di contenuto. Vedi Editor e API MJML.
404 Template not found L’ID del template non esiste, oppure l’alias non ha una versione pubblicata. Pubblica una versione del template.
409 … already exists Hai creato un oggetto con un nome o un’email già in uso. Usa l’oggetto in existing, oppure scegli un altro nome.
409 Idempotency key in progress Un’altra richiesta con la stessa chiave non è ancora terminata. Attendi un momento e ritenta con la stessa chiave.
413 Message too large L’email, allegati compresi, supera i 40 MB. Invia i file di grandi dimensioni come link invece che come allegati.
422 Domain not verified L’indirizzo from non appartiene a un dominio di invio verificato di questo workspace. Verifica il dominio o cambia from.
422 Attachment error L’url di un allegato non è stato scaricato entro 30 secondi, non è raggiungibile o supera i 25 MB. Controlla che l’URL sia pubblico e il file abbastanza piccolo, oppure invia content.
422 Cannot cancel email, Cannot retry email, Cannot update email Lo stato dell’email non consente l’azione, mancano meno di 3 minuti all’orario programmato, oppure il contenuto è stato eliminato definitivamente. Controlla lo status dell’email. Le regole sono indicate nella pagina di ogni endpoint.
422 Page is too deep Hai superato l’offset 2500 di Elenca gli eventi. Restringi i risultati con i filtri type o created_at.
429 Rate limit exceeded, Daily limit exceeded Il workspace ha raggiunto il limite di invio. Attendi retry_after secondi. Vedi Limiti di frequenza.

Ritenta in sicurezza

  • Ritenta le risposte 429, 500 e 503 dopo un’attesa. Usa l’header retry-after quando è presente, altrimenti il backoff esponenziale. Limiti di frequenza contiene codice di esempio.
  • Non ritentare senza modifiche gli altri errori 4xx. Continuano a non riuscire allo stesso modo finché non correggi la richiesta.
  • Quando ritenti un invio dopo un timeout o un errore 5xx, riusa lo stesso Idempotency-Key, così l’email non viene inviata due volte.
Credenziali, permessi e tutti gli errori di autenticazione.
Limiti di invio, header e backoff.
Ritenta gli invii senza inviare due volte.
Consulta la richiesta e la risposta di ogni chiamata API non riuscita.

Questa pagina ti è stata utile?

Grazie del feedback.

Grazie, leggiamo ogni messaggio.