> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wappfy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Limiti di frequenza

> Politiche di rate limiting dell'API e come gestire gli errori di limite di frequenza.

# Limiti di frequenza

L'API Wappfy applica limiti di frequenza per garantire un utilizzo equo e la stabilita della piattaforma.

## Limiti predefiniti

| Ambito                   | Limite        | Finestra |
| ------------------------ | ------------- | -------- |
| Per utente               | 100 richieste | 1 minuto |
| Per IP (non autenticato) | 20 richieste  | 1 minuto |

## Header dei limiti di frequenza

Ogni risposta include informazioni sui limiti di frequenza:

```http theme={null}
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1707580800
```

| Header                  | Descrizione                                            |
| ----------------------- | ------------------------------------------------------ |
| `X-RateLimit-Limit`     | Numero massimo di richieste consentite nella finestra  |
| `X-RateLimit-Remaining` | Richieste rimanenti nella finestra corrente            |
| `X-RateLimit-Reset`     | Timestamp Unix di quando la finestra viene reimpostata |

## Gestione dei limiti di frequenza

Quando superi il limite, riceverai una risposta `429`:

```json theme={null}
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests, please try again later"
  }
}
```

### Buone pratiche

<AccordionGroup>
  <Accordion title="Implementa il backoff esponenziale">
    Quando ricevi un 429, attendi e riprova con ritardi crescenti: 1s, 2s, 4s, 8s...
  </Accordion>

  <Accordion title="Usa l'header Reset">
    Controlla `X-RateLimit-Reset` per sapere esattamente quando puoi riprendere.
  </Accordion>

  <Accordion title="Raggruppa le operazioni dove possibile">
    Invia i messaggi con ritardi ragionevoli tra di loro invece di inviarli tutti insieme.
  </Accordion>

  <Accordion title="Memorizza le risposte nella cache">
    Evita di recuperare dati che non sono cambiati (es. dettagli dell'istanza, informazioni sui contatti).
  </Accordion>
</AccordionGroup>
