Saltar a la navegación

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

¿Cuántas solicitudes puedes hacer?

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

Tipo de cuentaSolicitudes por minuto
Gratis30
Pagado120

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

HTTP/1.1 429 Too Many Requests
Retry-After: 60
{
"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.

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

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