API reference
Fields
Create, validate, measure, and revise tenant-owned Polygon or MultiPolygon field boundaries.
List fields
GET /api/v1/fields?limit=100&starting_after=fld_...Create a field
Send the boundary geometry; Agsemble calculates the authoritative area and perimeter. An optional area input remains accepted for compatibility but is never trusted as the stored measurement.
{
"name": "North greenhouse",
"farm_id": "frm_demo",
"crop_cycle": {
"crop": "Tomato",
"variety": "Moneymaker",
"planted_at": "2026-07-20"
},
"geometry": {
"type": "Polygon",
"coordinates": [[[103.80, 1.30], [103.81, 1.30],
[103.81, 1.31], [103.80, 1.31], [103.80, 1.30]]]
},
"boundary": {
"determination_method": "auto_imagery",
"source": {
"provider": "Fields of the World",
"dataset": "Global field boundaries",
"version": "2025-alpha",
"license": "CC-BY-4.0"
}
}
}Map a boundary visually
Open the Field mapper in the console to draw a boundary, import GeoJSON, or tap a 2025 Fields of the World satellite-derived suggestion. Drag the white vertices to correct the candidate before saving.
https://agsemble.com/console → Field mapperSave a new boundary version
const updated = await agsemble.fields.update(fieldId, {
geometry: correctedGeometry,
boundary: {
determination_method: "manual",
source: { provider: "Field team review" }
}
});
const history = await agsemble.fields.boundaries(fieldId);