# Planes y límites

Cada cuenta de Quantis v3 tiene un plan. Un plan fija dos límites: una **cuota mensual** (cuántas solicitudes puedes hacer en un mes calendario) y un **límite de velocidad** (cuántas solicitudes puedes hacer por segundo). Consulta [center.quantis.vzla.io](https://center.quantis.vzla.io) para ver los planes vigentes y cambiar el tuyo.

## Cuota mensual

- La cuota pertenece a tu **cuenta**, no a una clave. Todas las claves de tu cuenta comparten el mismo contador.
- Cada llamada cuenta **1 solicitud**, excepto [Mi Cuota](/es/quantis/v3/me/quota/), que es gratis.
- El contador se reinicia el **día 1 de cada mes calendario a las 00:00, hora de Caracas** (America/Caracas).
- Algunos planes no tienen cuota mensual. En esos, [Mi Cuota](/es/quantis/v3/me/quota/) devuelve `null` en `monthly_quota`, `remaining` y `usage_percentage`.

Consulta tu estado cuando quieras con [Mi Cuota](/es/quantis/v3/me/quota/). Su `status_level` pasa de `normal` a `warning` al 70%, a `critical` al 90% y a `exceeded` al 100%.

## Límite de velocidad

Cada plan tiene un límite de velocidad, que aparece en el campo `rate_limit` de [Mi Cuota](/es/quantis/v3/me/quota/) como `<solicitudes>/<período>`, p. ej. `"60/m"`. Aplica a todas las llamadas, incluida Mi Cuota. Una solicitud bloqueada por el límite de velocidad no consume tu cuota mensual.

## Cómo manejar un 429

Ambos límites responden con `429 Too Many Requests`. Lee `error.code` para distinguirlos:

| Código de error | Qué pasó | Qué hacer |
|---|---|---|
| `quota_exceeded` | Tu cuenta agotó su cuota mensual | Deja de llamar hasta el día 1 del próximo mes, o cambia a un plan con más solicitudes |
| `throttled` | Enviaste solicitudes más rápido que tu límite de velocidad | Espera los segundos del encabezado `Retry-After` y reintenta |

### quota_exceeded

```json
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly quota exceeded. It resets on the 1st of next month."
  }
}
```

Reintentar no sirve: cada llamada devuelve el mismo error hasta que el contador se reinicie. Usa `reset_at` de [Mi Cuota](/es/quantis/v3/me/quota/) para saber cuándo.

### throttled

```http
HTTP/1.1 429 Too Many Requests
Retry-After: 1
```

```json
{
  "error": {
    "code": "throttled",
    "message": "Rate limit exceeded",
    "details": {
      "retry_after": 1
    }
  }
}
```

La espera en segundos viene en el encabezado `Retry-After` y en `details.retry_after`. Retrocede así:

1. Espera `Retry-After` segundos antes de la siguiente llamada.
2. Si vuelves a recibir `throttled`, duplica la espera cada vez, con un tope de pocos segundos.
3. Espacia tus llamadas para mantenerte bajo tu `rate_limit` en lugar de depender de los reintentos.

## Consulta con criterio

Los datos de la API no cambian cada segundo. Las tasas USDT se actualizan como máximo cada 60 segundos, las tasas BCV una vez al día y las tasas bancarias cada hora. Consultar cualquier endpoint más de una vez por minuto devuelve los mismos datos y consume tu cuota sin necesidad.
**Tip:** Guarda las respuestas en caché de tu lado y consulta cada endpoint como máximo una vez por minuto. Para las tasas BCV, una vez por hora es suficiente.