# Perché ricevo l’errore 429 Rate limit exceeded?

> Gestisci le risposte 429 dell’API di Emailit. Scopri i limiti di invio al secondo e giornalieri, gli header dei limiti di frequenza e come chiedere limiti più alti.

Questo articolo spiega perché `POST /v2/emails` restituisce `429` e come distribuire gli invii nel tempo per evitarlo. Gli stessi limiti valgono per l’SMTP, dove si presentano come risposte `452`.

## Sintomi

L’API risponde con `429` e uno di questi corpi:

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

```json
{
  "error": "Daily limit exceeded",
  "message": "Daily sending limit of 5000 messages has been reached.",
  "limit": 5000,
  "current": 5000,
  "retry_after": 41200
}
```

Via SMTP, il comando `MAIL FROM` non riesce con `452 4.4.5 Messages per second limit exceeded` o `452 4.5.3 Daily message limit exceeded`.

## Causa

Ogni workspace ha due limiti di invio, condivisi da tutte le chiavi API e dall’SMTP:

- **Al secondo.** I nuovi workspace partono da 2 email al secondo.
- **Al giorno.** I nuovi workspace partono da 5000 email al giorno. Il contatore si azzera a mezzanotte UTC.

L’API conta ogni destinatario come un’email, quindi una richiesta con tre indirizzi tra `to`, `cc` e `bcc` ne usa tre. Le cause più comuni sono i picchi da worker in parallelo, i cicli di nuovi tentativi senza backoff e i job in batch che partono tutti alla stessa ora.

Ogni risposta di invio include header che ti dicono a che punto sei:

| Header | Significato |
| --- | --- |
| `ratelimit-limit` / `ratelimit-remaining` | Limite al secondo e quanto resta nel secondo corrente |
| `ratelimit-daily-limit` / `ratelimit-daily-remaining` | Limite giornaliero e quanto resta oggi |
| `ratelimit-daily-reset` | Secondi mancanti alla mezzanotte UTC |
| `retry-after` | Secondi da attendere prima di riprovare (solo con `429`) |

## Soluzione

1. **Attendi e riprova.** Rispetta `retry-after` (o `retry_after` nel corpo) prima di inviare di nuovo. Una richiesta con risposta `429` non viene inviata né addebitata, quindi puoi ritentarla senza rischi. Aggiungi una [`Idempotency-Key`](/it/docs/email-api/idempotency/) per proteggerti dai nuovi tentativi a livello di rete.

2. **Regola il ritmo degli invii.** Usa una coda con un limite di concorrenza pari a `ratelimit-limit` e, dopo un `429`, applica un backoff esponenziale invece di ritentare in un ciclo stretto.

3. **Distribuisci gli invii grandi.** Se raggiungi il limite giornaliero, programma il resto con [`scheduled_at`](/it/docs/email-api/scheduling/) dopo la mezzanotte UTC, oppure usa una [campagna](/it/docs/campaigns/) per le email di marketing.

4. **Controlla i limiti attuali.** Il riquadro **Sending Limits** nella pagina **Dashboard** mostra i limiti al secondo e giornalieri e l’utilizzo di oggi.

5. **Chiedi limiti più alti.** Seleziona **Request Increase** nel riquadro Sending Limits e indica i limiti che ti servono, da dove arrivano i tuoi destinatari e perché. Di solito il team risponde entro 24 ore. Con Pro e Business i limiti aumentano anche automaticamente finché la salute degli invii resta buona.

Vedi [Limiti di frequenza](/it/docs/api-reference/rate-limits/) per il riferimento completo e [Limiti e quote](/it/docs/limits/) per tutte le quote dei piani.

## Serve ancora aiuto?

[Contatta il supporto](/contact/) o chiedi su [Discord](https://discord.emailit.com). Indica il volume previsto al giorno e al secondo e un esempio di risposta `429`.

---
Fonte: https://emailit.com/it/docs/kb/429-rate-limit-exceeded/
