Vai al contenuto
Docs

Riferimento

Ritenta in sicurezza gli invii di email con l’header Idempotency-Key. Quali endpoint lo supportano, formato e ambito della chiave, la finestra di ripetizione di 24 ore e i relativi errori.

Aggiornato il 1 ott 2026

Con gli errori di rete e i timeout non sai con certezza se un invio è andato a buon fine. Una chiave di idempotenza ti permette di ritentare l’invio in sicurezza: se Emailit ha già accettato una richiesta con la stessa chiave, restituisce la risposta originale invece di inviare di nuovo l’email. Questa pagina è il riferimento per l’header Idempotency-Key. Per una guida passo passo, vedi Richieste idempotenti.

Endpoint supportati

Endpoint
POST /emails Invia un’email
POST /emails/{id}/forward Inoltra un’email

Gli altri endpoint ignorano l’header. La creazione di un dominio, di una chiave API, di una lista o di un contatto si può già ritentare in sicurezza: una seconda richiesta con lo stesso nome o la stessa email restituisce 409 e l’oggetto existing invece di creare un duplicato.

Invia una chiave

Aggiungi un header Idempotency-Key con un valore univoco per l’email che stai inviando, ad esempio un UUID o un ID del tuo sistema:

Terminal
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042-confirmation" \
  -d '{
    "from": "Acme <orders@acme.com>",
    "to": "ada@example.com",
    "subject": "Your order #1042",
    "html": "<p>Thanks for your order.</p>"
  }'

Genera la chiave una sola volta per ogni email, prima del primo tentativo, e invia la stessa chiave a ogni nuovo tentativo per quell’email.

Come funzionano le chiavi

Regola Dettagli
Formato Da 1 a 256 caratteri. Solo lettere, cifre, trattini (-) e trattini bassi (_).
Ambito Per workspace. Le chiavi di workspace diversi non entrano mai in conflitto, ma i due endpoint condividono un unico spazio dei nomi, quindi non riusare per un inoltro la chiave di un invio.
Durata La risposta a una richiesta riuscita viene conservata per 24 ore dal suo completamento.
Ripetizioni Una richiesta con una chiave memorizzata restituisce la risposta memorizzata con stato 200. Non viene inviata alcuna email, non vengono consumati crediti e la richiesta non viene conteggiata nei limiti di invio.
Corrispondenza Viene confrontata solo la chiave, non il corpo della richiesta. Una richiesta diversa con una chiave già usata restituisce la prima risposta.
Errori Se una richiesta non riesce, con qualsiasi errore, non viene memorizzato nulla e la chiave viene liberata, così puoi correggere la richiesta e ritentare con la stessa chiave.
Concorrenza Finché una richiesta con una chiave è ancora in esecuzione, un’altra richiesta con la stessa chiave restituisce 409. Il blocco viene rilasciato quando la prima richiesta termina e scade al massimo dopo 15 minuti.

Una richiesta ripetuta passa comunque per l’autenticazione e per il controllo dei limiti di invio al secondo e giornalieri, quindi può restituire 401 o 429. Gli inoltri rientrano inoltre nel limite orario degli inoltri, anche quando la risposta viene ripetuta.

Errori

JSON
{
  "error": "Invalid Idempotency-Key"
}
Stato error Causa Cosa fare
400 Invalid Idempotency-Key La chiave è vuota, supera i 256 caratteri o contiene caratteri diversi da lettere, cifre, - e _. Usa un UUID o un altro valore sicuro.
409 Idempotency key in progress Una richiesta con la stessa chiave è ancora in elaborazione. Attendi un secondo e ritenta con la stessa chiave. Quando la prima richiesta sarà terminata, riceverai la risposta memorizzata.
503 Idempotency unavailable Al momento Emailit non riesce a controllare la chiave. La richiesta non è stata elaborata. Ritenta con la stessa chiave dopo una breve attesa.

Emailit non invia mai una richiesta senza il controllo di idempotenza: se la chiave non può essere controllata, la richiesta non riesce con 503 invece di rischiare un duplicato.

Scegli chiavi adatte

  • Ricava la chiave da ciò che stai notificando, come order-1042-confirmation o password-reset-<token-id>, così un nuovo tentativo da un altro worker o dopo un riavvio usa la stessa chiave.
  • Usa un nuovo UUID solo quando l’email non ha un ID naturale, e salvalo insieme al job prima del primo tentativo.
  • Non riusare una chiave per un’email diversa entro 24 ore. Riceveresti la risposta della prima email e la seconda non verrebbe inviata.
Una guida agli invii da ritentare in sicurezza.
Backoff e nuovi tentativi, con codice di esempio.

Questa pagina ti è stata utile?

Grazie del feedback.

Grazie, leggiamo ogni messaggio.