> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.laposta.org/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.laposta.org/_mcp/server.

# ¿Cuáles son los límites y mensajes de error de la API?

> Cuántas solicitudes por minuto permite la API y qué códigos de estado y de error puedes recibir.

## ¿Cuántas solicitudes puedes hacer?

La API limita el número de solicitudes por minuto y por cuenta.

| Tipo de cuenta | Solicitudes por minuto |
| -------------- | ---------------------- |
| Gratis         | 30                     |
| Pagado         | 120                    |

Si superas este límite, recibirás un `429` con una cabecera que te indica cuánto tiempo debes esperar:

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

```json
{
  "error": {
    "type": "invalid_request",
    "message": "Rate limit exceeded, try again after 60 seconds"
  }
}
```

No hay cabeceras que lleven el registro de tu consumo mientras todo vaya bien. Por lo tanto, espera al `Retry-After` y lleva tú mismo el control de cuántas solicitudes envías. Además, guarda en caché lo que rara vez cambia: no necesitas recuperar los campos de una lista en cada visualización de página, con una vez al día es suficiente.

## ¿Cómo es un mensaje de error?

Todos los mensajes de error tienen la misma estructura, por lo que puedes gestionarlos en un único lugar. Cada error se devuelve como JSON con un `type`, un `message` y, por lo general, un `code` y el `parameter` que causó el error.

```json
{
  "error": {
    "type": "invalid_input",
    "message": "Email: invalid address",
    "code": 208,
    "parameter": "email"
  }
}
```

El campo `type` puede tener tres valores: `invalid_request` si la propia llamada no es correcta, `invalid_input` si los datos enviados no son correctos e `internal` si algo falla por parte de Laposta.

## Códigos de estado

La API utiliza códigos de estado HTTP estándar para indicar cómo ha ido la solicitud.

| Código | Significado                                                                           |
| ------ | ------------------------------------------------------------------------------------- |
| `200`  | Éxito.                                                                                |
| `201`  | Éxito, y se ha creado algo.                                                           |
| `400`  | Hay algo incorrecto en la solicitud o en los datos enviados.                          |
| `401`  | No se ha enviado una clave válida, o este endpoint no está activado para esta cuenta. |
| `402`  | Los datos eran correctos, pero la solicitud no se ha ejecutado.                       |
| `404`  | Esta ruta no existe.                                                                  |
| `429`  | Demasiadas solicitudes en un minuto.                                                  |
| `500`  | Algo ha salido mal por parte de Laposta.                                              |

> **Warning**
>
> Un objeto que no existe no devuelve un `404`, sino un `400` con el código de error `203`. Por lo tanto, no compruebes si hay un `404` para ver si existe una lista o un suscriptor, ya que solo lo recibirás cuando una ruta no exista.

## Códigos de error

Con `invalid_input` se incluye un código numérico para que puedas traducir el error a un mensaje para tu propio usuario. Junto con `parameter`, sabrás exactamente de qué campo se trata.

| Código | Significado                                                                     |
| ------ | ------------------------------------------------------------------------------- |
| `201`  | El parámetro está vacío.                                                        |
| `202`  | El valor indicado no tiene el formato correcto.                                 |
| `203`  | El valor indicado no existe, por ejemplo, un id que no pertenece a esta cuenta. |
| `204`  | El valor ya existe.                                                             |
| `205`  | El valor no es un número.                                                       |
| `206`  | El valor no es `true` ni `false`.                                               |
| `207`  | El valor no es una fecha.                                                       |
| `208`  | El valor no es una dirección de correo electrónico.                             |
| `209`  | El valor no es una URL.                                                         |
| `210`  | El valor no es un JSON válido.                                                  |
| `999`  | Hay algún otro problema con el valor.                                           |

Un id de otra cuenta devuelve el mismo mensaje que un id que no existe en ninguna parte: `Unknown list`, con el código `203`. Esto es intencionado, para que no se pueda ver qué hay en otras cuentas.

## Artículos relacionados

#### [¿Cuáles son los errores más comunes con la API?](/veelgemaakte-fouten-met-de-api)

Errores habituales al conectar con la API de Laposta, con el mensaje de error que…

#### [Sincronizar suscriptores a través de la API](/relaties-synchroniseren-via-de-api)

Mantén tu lista igual que tu tienda online o CRM: añadir, actualizar, darse de baja y…

#### [¿Cómo funcionan los campos de fecha y hora en la API?](/api-datum-en-tijdvelden)

La API utiliza dos formatos para fechas y horas. Lee cómo leerlos y enviarlos.