Errores
Todos los errores tienen el mismo formato y un código estable que puedes usar en tu código.
Formato
{
"error": {
"codigo": "parametros_invalidos",
"mensaje": "El rango no puede superar 31 días"
}
}
Decide por codigo (estable) y usa mensaje para registrar o mostrar. El estado HTTP acompaña al código.
Códigos
| HTTP | codigo | Cuándo | Qué hacer |
|---|---|---|---|
| 400 | parametros_invalidos | Falta un parámetro, el rango es muy largo o está al revés, el cursor no es válido o viene un parámetro desconocido. | Corrige la consulta. El mensaje dice qué falló. |
| 401 | no_autenticado | Sin llave, mal formada, revocada, rotada, o su dueño perdió el acceso. Siempre el mismo mensaje. | Revisa la llave en Mi cuenta › API; si fue revocada, genera otra. |
| 404 | no_encontrado | El recurso no existe o no es de tu cuenta (no se distingue). También para rutas que no existen. | Verifica el id con /campos, /sectores, /equipos. |
| 405 | metodo_no_permitido | Se usó POST, PUT, PATCH o DELETE. | La API es de solo lectura: usa GET. |
| 429 | demasiadas_peticiones | Se superó el tope por minuto o por día, o hubo demasiados intentos fallidos desde tu IP. | Espera Retry-After segundos y reintenta. |
| 500 | error_interno | Falla en el servidor. | Reintenta con espera creciente; si persiste, escríbenos. |
| 503 | no_disponible | La API está en mantenimiento o no está configurada. | Reintenta más tarde. |
Reintentos recomendados
429: espera exactamenteRetry-After.500y503: reintenta hasta 3 veces con espera creciente (por ejemplo 2, 8 y 30 segundos).400,401,404,405: no reintentes; el resultado será el mismo hasta que cambies algo.
Mensajes frecuentes de parametros_invalidos
| Mensaje | Causa |
|---|---|
"desde" debe ser anterior a "hasta" | Rango al revés o vacío. |
"desde" debe ser anterior a "hasta" y al presente | En lecturas y clima, desde está en el futuro. |
El rango no puede superar 31 días / 7 días | Rango demasiado largo (7 días con granularidad=hora). |
"sectorId" … "equipoId" | En /lecturas va uno de los dos, no ambos ni ninguno. |
"xyz" is not allowed | Parámetro desconocido (revisa mayúsculas: es tipoSensor, no tiposensor). |
cursor inválido | El cursor es de otra consulta, de otra llave o se modificó. |