API Reference
Farm Activities
Plan, track, and complete farm operations like planting and spraying.
get
/activities/{activity_id}Get a farm activity by id
Requires an
Authorization: Bearer header.Parameters
activity_idstringpathrequiredResponse 200
activity_idstringrequiredfarm_idstringrequiredfield_idstringrequiredfield_namestringoptionalcrop_idstringoptionalactivity_typeenum<string>requiredactivity_statusenum<string>requiredstart_datestring<date-time>requiredend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalis_activebooleanoptionalcreated_atstring<date-time>optionalupdated_atstring<date-time>optionalGET /activities/{activity_id}
curl -X GET "https://api.cropsense.africa/activities/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Example response · 200
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}put
/activities/{activity_id}Update a farm activity by id
Requires an
Authorization: Bearer header.Parameters
activity_idstringpathrequiredRequest body
field_idstringoptionalactivity_typeenum<string>optionalFarm activity type enum
tillingplantingharvestingirrigatingfertilizingpest_controlweedingotheractivity_statusenum<string>optionalFarm activity status enum
plannedin_progresscompletedcancelledfailedstart_datestring<date-time>optionalend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalResponse 200
activity_idstringrequiredfarm_idstringrequiredfield_idstringrequiredfield_namestringoptionalcrop_idstringoptionalactivity_typeenum<string>requiredactivity_statusenum<string>requiredstart_datestring<date-time>requiredend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalis_activebooleanoptionalcreated_atstring<date-time>optionalupdated_atstring<date-time>optionalPUT /activities/{activity_id}
curl -X PUT "https://api.cropsense.africa/activities/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes"
}'Example response · 200
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}delete
/activities/{activity_id}Delete a farm activity by id
Requires an
Authorization: Bearer header.Parameters
activity_idstringpathrequiredResponse 200
DELETE /activities/{activity_id}
curl -X DELETE "https://api.cropsense.africa/activities/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Example response · 200
nullpost
/activities/createCreate a farm activity
Requires an
Authorization: Bearer header.Request body
farm_idstringrequiredfield_idstringrequiredcrop_idstringoptionalactivity_typeenum<string>requiredactivity_statusenum<string>requiredstart_datestring<date-time>requiredend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalResponse 200
activity_idstringrequiredfarm_idstringrequiredfield_idstringrequiredfield_namestringoptionalcrop_idstringoptionalactivity_typeenum<string>requiredactivity_statusenum<string>requiredstart_datestring<date-time>requiredend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalis_activebooleanoptionalcreated_atstring<date-time>optionalupdated_atstring<date-time>optionalPOST /activities/create
curl -X POST "https://api.cropsense.africa/activities/create" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes"
}'Example response · 200
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}get
/activities/farm/{farm_id}Get all farm activities by farm id
Requires an
Authorization: Bearer header.Parameters
farm_idstringpathrequiredResponse 200
activitiesFarmActivity[]requiredtotalintegerrequiredGET /activities/farm/{farm_id}
curl -X GET "https://api.cropsense.africa/activities/farm/3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Example response · 200
{
"activities": [
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}
],
"total": 1
}get
/activities/field/{field_id}Get all farm activities by field id
Requires an
Authorization: Bearer header.Parameters
field_idstringpathrequiredResponse 200
activitiesFarmActivity[]requiredtotalintegerrequiredGET /activities/field/{field_id}
curl -X GET "https://api.cropsense.africa/activities/field/8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Example response · 200
{
"activities": [
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}
],
"total": 1
}post
/activities/{activity_id}/completeMark a farm activity as completed
Requires an
Authorization: Bearer header.Parameters
activity_idstringpathrequiredResponse 200
activity_idstringrequiredfarm_idstringrequiredfield_idstringrequiredfield_namestringoptionalcrop_idstringoptionalactivity_typeenum<string>requiredactivity_statusenum<string>requiredstart_datestring<date-time>requiredend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalis_activebooleanoptionalcreated_atstring<date-time>optionalupdated_atstring<date-time>optionalPOST /activities/{activity_id}/complete
curl -X POST "https://api.cropsense.africa/activities/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/complete" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Example response · 200
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}post
/activities/{activity_id}/startMark a farm activity as in progress
Requires an
Authorization: Bearer header.Parameters
activity_idstringpathrequiredResponse 200
activity_idstringrequiredfarm_idstringrequiredfield_idstringrequiredfield_namestringoptionalcrop_idstringoptionalactivity_typeenum<string>requiredactivity_statusenum<string>requiredstart_datestring<date-time>requiredend_datestring<date-time>optionalactivity_dataobjectoptionalactivity_notesstringoptionalis_activebooleanoptionalcreated_atstring<date-time>optionalupdated_atstring<date-time>optionalPOST /activities/{activity_id}/start
curl -X POST "https://api.cropsense.africa/activities/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/start" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Example response · 200
{
"activity_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"farm_id": "3fa2c9e1-6b3a-4d2e-9c11-4a8e5f9d2b7a",
"field_id": "8b6e1a2f-2d4c-4e9a-9b0f-1c7d3e5a6f42",
"field_name": "field_name",
"crop_id": "cassava-01",
"activity_type": "tilling",
"activity_status": "planned",
"start_date": "2026-06-15T09:30:00Z",
"end_date": "2026-06-15T09:30:00Z",
"activity_data": {},
"activity_notes": "activity_notes",
"is_active": true,
"created_at": "2026-06-15T09:30:00Z",
"updated_at": "2026-06-15T09:30:00Z"
}