Empezar

Convenciones

Valen para toda la API, así que no se repiten en cada endpoint.

Paginación

Los listados aceptan page (desde 1) y limit (20 por defecto, 100 máximo), y responden con total, page, limit y data. El orden es por fecha de creación descendente, así que paginar es estable.

Errores

Todo error trae error (código estable) y message (texto legible). Un 400 de validación agrega issues, con el campo exacto que se rechazó.

Límites de tasa

120 lecturas y 30 escrituras por minuto. Al excederlo la respuesta es 429 con la cabecera Retry-After en segundos, y cada respuesta trae X-RateLimit-Remaining.

Alcance

La apiKey opera sobre toda la cuenta: la de un sub-usuario ve los mismos lotes y análisis que la del dueño. Nunca alcanza los datos de otra cuenta.

Forma de una respuesta paginada

json
{
  "total": 42,
  "page": 1,
  "limit": 20,
  "data": [ /* … */ ]
}

Forma de un error de validación

json
{
  "error": "VALIDATION_FAILED",
  "message": "Invalid request body",
  "issues": [
    { "path": "mapResolution", "message": "Invalid input" }
  ]
}

Sobre /api/v0 POST /api/v0/analyses sigue funcionando y no va a dejar de hacerlo, pero está deprecado: usa POST para una lectura, no ordena los resultados y sus filtros no se combinan. Para código nuevo, usá GET /api/v2/analyses.

Siguiente: automatizar un flujo