Primeros pasos
Errores
Formato de los errores, códigos de estado y cuándo reintentar.
Los errores usan los códigos de estado HTTP habituales y siempre devuelven la misma estructura JSON con un código estable y legible por máquina.
Formato de error#
{
"error": {
"code": "rateLimited",
"message": "Rate limit exceeded",
"retryAfter": 12
}
}error.code es estable y puedes usarlo con seguridad en tus condicionales. error.message es una pista legible para humanos que puede cambiar. Algunos errores agregan campos: retryAfter para los límites de solicitudes, reason para las cuotas y las restricciones del plan, issues para los errores de validación.
Códigos de error#
| Estado | Código | Significado | ¿Reintentar? |
|---|---|---|---|
| 400 | validation | Un parámetro o el cuerpo de la solicitud no es válido; consulta error.issues. | No |
| 401 | unauthorized | La clave de API falta, está mal formada o fue revocada. | No |
| 402 | planRequired | Tu plan no incluye acceso a la API o a esta función. | No |
| 403 | forbidden | La solicitud no está permitida. | No |
| 404 | notFound | El token aún no se escaneó o la billetera aún no se perfiló. | Más tarde |
| 409 | conflict | La solicitud entra en conflicto con el estado actual. | No |
| 429 | rateLimited | Demasiadas solicitudes por minuto o se agotó la cuota mensual. | Sí |
| 500 | generic | Algo falló de nuestro lado. | Sí |
| 503 | unavailable | Mantenimiento en curso o el proveedor de datos se quedó sin capacidad. | Más tarde |
Errores de validación#
Los parámetros no válidos devuelven 400 con una lista de issues que señalan el campo problemático.
400
{
"error": {
"code": "validation",
"message": "Invalid input",
"issues": [
{
"path": "pageSize",
"message": "Invalid input"
}
]
}
}