Automatizar un flujo
El recorrido completo: de los catálogos a un resultado consultable, sin abrir Kaax.
- 1
Leé los catálogos primero
Los reportType y las estadísticas válidas los edita el super admin de Kaax. Codificarlos es garantizar que se rompa cuando alguien agregue un índice. Ojo con `defaults.mapResolution`: es un número (72, 150 o 300) y mandarlo como texto se rechaza por el tipo.
javascriptconst types = await kaax("/api/v2/catalogs/report-types"); const vi = await kaax("/api/v2/catalogs/vegetation-index-defaults"); - 2
Armá la plantilla desde un preset
Escribir `layouts` a mano es escribir coordenadas normalizadas 0..1 anidadas. El preset ya trae la estructura; solo cambiás el nombre.
javascriptconst { data: presets } = await kaax("/api/v2/templates/presets"); const preset = presets.find((p) => p.key === "counting-density"); const template = await kaax("/api/v2/templates", { method: "POST", body: { ...preset.seedPayload, name: "Densidad — Banano Álamos" }, }); - 3
Resolvé el lote y la configuración
Solo los lotes con área medida se pueden ejecutar: uno sin geometría no se puede casar con un raster y la cola lo salta. El `tag` de la configuración es lo que un paso de cola referencia, y su `modelId` es el modelo de detección atado a esa etiqueta.
javascriptconst { data: lots } = await kaax("/api/v2/lots?withGeometry=true"); const { data: configs } = await kaax("/api/v2/analysis-configs"); const tag = configs.counting[0]?.tag; - 4
Seguí la cola y recogé el resultado
Kaax no manda notificaciones push, así que el estado se consulta. Cuando un paso queda en `completed`, su `analysisId` es el puente al resultado.
javascriptconst { data: runs } = await kaax("/api/v2/queue-runs?status=completed"); const done = runs.flatMap((r) => r.steps).filter((s) => s.analysisId); const { data: analyses } = await kaax("/api/v2/analyses?limit=100"); for (const step of done) { const result = analyses.find((a) => a._id === step.analysisId); }
Encolar sigue siendo manual. Crear y ejecutar una cola consume créditos y almacenamiento, así que la API pública solo lee. Se arma desde el panel o conversando con el MCP.
