API Reference
Field Satellite Data
Satellite imagery and vegetation health indices per field.
/satellite-images/field/{field_id}Get satellite images data by field id
Authorization: Bearer header.Parameters
field_idstringpathrequiredsourceenum<string>queryRestrict results to a single satellite data source. Populated sources are `sentinel_2` (native Sentinel-2, including cloud-free composites) and `hls_landsat` (harmonized Landsat 8/9). Omit for the full feed.
sentinel_2hls_landsathls_sentinellandsat_8modisworld_viewplanet_scopedrone
Response 200
imagesSatelliteImageData[]requiredtotalintegerrequiredcurl -X GET "https://api.cropsense.africa/satellite-images/field/8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42?source=sentinel_2" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"{
"images": [
{
"image_id": "image_id",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"captured_at": "2026-06-15T09:30:00Z",
"cloud_coverage_pct": 1.5,
"health_indices": {},
"evaluation_metrics": {},
"recommendations": {},
"record_metadata": {},
"data_source": "sentinel_2",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}
],
"total": 1
}/satellite-images/field/{field_id}/latestGet latest satellite image by field id
Authorization: Bearer header.Parameters
field_idstringpathrequiredsourceenum<string>queryRestrict results to a single satellite data source. Populated sources are `sentinel_2` (native Sentinel-2, including cloud-free composites) and `hls_landsat` (harmonized Landsat 8/9). Omit for the full feed.
sentinel_2hls_landsathls_sentinellandsat_8modisworld_viewplanet_scopedrone
Response 200
image_idstringrequiredfarm_idstringrequiredfield_idstringrequiredfield_namestringrequiredcaptured_atstring<date-time>requiredcloud_coverage_pctnumberrequiredhealth_indicesobjectrequiredevaluation_metricsobjectoptionalrecommendationsobjectoptionalrecord_metadataobjectoptionaldata_sourceenum<string>requiredis_activebooleanrequiredcreated_atstring<date-time>requiredupdated_atstring<date-time>requiredcurl -X GET "https://api.cropsense.africa/satellite-images/field/8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42/latest?source=sentinel_2" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"{
"image_id": "image_id",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"captured_at": "2026-06-15T09:30:00Z",
"cloud_coverage_pct": 1.5,
"health_indices": {},
"evaluation_metrics": {},
"recommendations": {},
"record_metadata": {},
"data_source": "sentinel_2",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}/satellite-images/historical-health-indices/{field_id}Get historical health indices by field id
Authorization: Bearer header.Parameters
field_idstringpathrequiredsourceenum<string>queryRestrict results to a single satellite data source. Populated sources are `sentinel_2` (native Sentinel-2, including cloud-free composites) and `hls_landsat` (harmonized Landsat 8/9). Omit for the full feed.
sentinel_2hls_landsathls_sentinellandsat_8modisworld_viewplanet_scopedrone
Response 200
indicesSatelliteImageDataHealthIndices[]requiredtotalintegerrequiredcurl -X GET "https://api.cropsense.africa/satellite-images/historical-health-indices/8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42?source=sentinel_2" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"{
"indices": [
{
"date": "2026-06-15T09:30:00Z",
"image_id": "image_id",
"captured_at": "2026-06-15T09:30:00Z",
"cloud_coverage_pct": 1.5,
"data_source": "data_source",
"spatial_resolution_m": 1,
"field_coverage_pct": 1.5,
"has_red_edge": true,
"ndvi": 1.5,
"gndvi": 1.5,
"msavi2": 1.5,
"evi": 1.5,
"ndwi": 1.5,
"ndmi": 1.5,
"ndre": 1.5,
"gci": 1.5,
"health_score": 1.5,
"stress_level": 1.5,
"yield_prediction": 1.5,
"yield_potential_index": 1.5,
"environmental_risk_score": 1.5,
"vegetation_water_anomaly": 1.5,
"canopy_vigour_anomaly": 1.5,
"observation_confidence": 1.5,
"metric_version": "metric_version",
"recommendations": {}
}
],
"total": 1
}