Catalogs
The values the rest of the API accepts. Read these first: an invented reportType or statistic gets refused with a message that names the field but not the valid set.
GET
/api/v2/catalogs/report-typesThe valid reportType values per analysis type, with their id, label and associated statistics.
Response
json
{
"counting": [
{
"id": "3146878f-39c3-44f1-8a95-f2a17170a1d9",
"key": "NDRE",
"label": { "en": "NDRE", "es": "NDRE" },
"statistics": ["viGlobalMedian", "viTotalPlants"],
"reportCategory": "vegetation_index"
}
],
"replanting": [],
"path": []
}A tener en cuenta
- The Kaax super admin edits this list, so don't hardcode it — read it.
- `key` is what goes in `reportType`; `id` is what goes in `reportTypeId`.
GET
/api/v2/catalogs/statisticsThe statistic keys that exist per analysis type — the set selectedStatistics must come from.
GET
/api/v2/catalogs/vegetation-index-defaultsEverything needed to assemble a vegetation-index template without guessing: index names, calibrated colour scales, default layouts and the formula whitelist.
Response
json
{
"indexNames": ["NDVI", "NDWI", "EVI", "SAVI", "NDRE", "LCI", "Custom_Index"],
"colorScales": { "NDRE": [ /* … */ ] },
"accentColors": { "NDRE": "#27AE60" },
"layouts": { "portrait": { /* … */ }, "landscape": { /* … */ } },
"defaults": {
"paperSize": "letter",
"mapResolution": 150,
"margins": { "top": 2, "right": 2, "bottom": 2, "left": 2 },
"saviL": 0.5
},
"customFormula": {
"allowedBands": ["R", "G", "B", "RE", "NIR"],
"allowedScalars": ["eps", "L"],
"allowedFunctions": ["sqrt", "abs"],
"rules": { "divisionRequiresEps": true }
}
}A tener en cuenta
- `mapResolution` comes back as a number. Copying it as text ("150") is refused for its TYPE, and the message names the field but not the reason.
