API · public beta
The report, in JSON.
Generate the same field report a grower reads, from your product. One request starts the report; one poll returns the written report, the PDF and the CSV. Reports first; the eight indices are underneath.
REST · JSON · GeoJSON · 8 report types · alerts · 200 ha per query · OpenAPI spec
curl -X POST https://api.agroreports.org/v1/reports \
-H "Authorization: Bearer $AGRO_KEY" \
-H "Content-Type: application/json" \
-d '{
"geometry": "fld_champagne_07",
"reportType": "vineyard-performance",
"lang": "en"
}' The response is the report. See the full structure in the report response.
Reports first
The report first. Then the data underneath.
Three report routes are the product. Five data routes are what the report is built from. The operation id is the same on the REST route and the MCP tool.
- GET
/v1/reports/typesThe eight report types
MCP tool · list_report_types
- POST
/v1/reportsStart a full field report
MCP tool · generate_report
- GET
/v1/reports/:idPoll status and read the result
MCP tool · get_report
- GET
/v1/indicesCatalog of the eight indices
MCP tool · list_indices
- POST
/v1/indices/queryCurrent values for a polygon
MCP tool · get_indices
- POST
/v1/indices/timeseriesHistory over 1–10 years
MCP tool · get_index_timeseries
- POST
/v1/indices/burn-severitydNBR and USGS class
MCP tool · compute_burn_severity
- GET
/v1/locationPlace name to bounding box
MCP tool · find_location
The API returns the same eight reports as the app. Browse them here.
Alerts
Alerts, on the same key.
Create a rule on any index, for any field, with a window and a set of channels. Read the events from the API, receive a signed webhook, or hand the same rule to an agent.
- POST MCP · create_alert
/v1/alertsCreate a threshold rule - GET MCP · list_alerts
/v1/alertsList rules and status - PATCH MCP · update_alert
/v1/alerts/:idUpdate threshold, window or channels - GET MCP · get_alert_events
/v1/alerts/:id/eventsRead triggered events
Channels: dashboard · email · webhook · WhatsApp · Telegram. Signed webhooks, one event per crossing.
One response envelope
Every report carries its source.
No report is returned without the field, the scene it came from, the valid-pixel share, the method version and the caveat.
{
"report": "rep_champagne_07",
"type": "vineyard-performance",
"status": "completed",
"field": {
"name": "Champagne, France",
"area_ha": 0.42
},
"scene": {
"date": "2026-09-12",
"source": "sentinel-2-l2a",
"cloud_pct": 0,
"valid_px": 0.99
},
"summary": "Watch: NDMI 0.18 below 0.20.",
"severity": "watch",
"actions": ["Irrigate the south rows before the next pass."],
"risk": "Veraison may stall if the dry spell continues.",
"artifacts": {
"pdf": "/reports/rep_champagne_07.pdf",
"csv": "/reports/rep_champagne_07.csv"
},
"provenance": {
"resolution_m": 10,
"method_version": "2026.09",
"caveat": "An index is not a diagnosis."
}
} Access
The API is in public beta.
We are onboarding builders who need field-level intelligence in a product, a model or a workflow. Tell us what you are building and we will send a key and the rate card.
What to include
-
What you are building
A product, an internal tool, a research workflow, an agent.
-
Field count
Ten fields, ten thousand, or a whole portfolio.
-
Monthly queries
A rough number is enough; we will size the free tier.
-
Region and crops
Coverage varies by clear-sky frequency.
-
Timeline
Pilot, launch, or already in production.
No credit card. A key and the published rate card before any charge.
API questions
What builders ask.
Do I need a GIS team?
No. Send a GeoJSON polygon or a bounding box. You do not need a GIS platform, a shapefile pipeline or a remote-sensing hire.
What is the area limit?
200 ha per query. For larger areas, split the polygon or talk to us about bulk access.
How do reports work?
POST /v1/reports starts an async report. GET /v1/reports/:id returns status, then the written report and links.
Is MCP included?
Yes. MCP authenticates with OAuth 2.1; the quota is shared with the REST API.
Can I use the data commercially?
Yes, under the API terms. Sentinel and Landsat data are free and open; our record, method and report layer are licensed.
Start here
Your field has a report. Read it.
One field report for the grower, the builder and the agent. The report comes first; the API and MCP are how it travels.
Free report · 5 languages · API and MCP in public beta