Resumen
Progress Reports track the real-time advancement of field operations campaign by campaign. They consolidate data from planting progress, harvest control, fertilization control, and plant stand into a unified endpoint, replacing older legacy endpoints.
This is particularly useful for:
Machinery platforms tracking daily planting or harvest progress in hectares
ERP systems that need yield and completion data per campaign
Analytics platforms consuming crop advancement timelines
Progress types
Each progress record has a progressType that identifies what kind of operation it tracks:
progressType Operation 11Harvest progress 13Planting progress 15Fertilization control 17Plant stand control
Endpoints
All Progress Report endpoints are available under v3:
Method URI Description GET /api/v3/third_party/progress_reportList all progress records GET /api/v3/third_party/harvest_progressHarvest progress only GET /api/v3/third_party/planting_progressPlanting progress only GET /api/v3/third_party/planting_controlPlanting control records GET /api/v3/third_party/plant_stand_controlPlant stand control GET /api/v3/third_party/fertilization_controlFertilization control
For most integrations, progress_report is the recommended single endpoint since it returns all types filterable by progressType.
Campos de respuesta principales
{
"id" : 402345 ,
"date" : "2025-12-16T08:18:00-03:00" ,
"status" : 4 ,
"campaign" : 506362 ,
"progressType" : 13 ,
"hydricState" : 5 ,
"baselineHa" : 50 ,
"progressHaDaily" : 5 ,
"progressHaTotal" : 45 ,
"remainingHaTotal" : 5 ,
"plantedPercent" : 90 ,
"harvestedPercent" : null ,
"progressTnDaily" : null ,
"progressTnTotal" : null ,
"yieldTnHaPartial" : null ,
"yieldTnHaFinal" : null ,
"isLast" : true ,
"finished" : false ,
"machineSamples" : [],
"created_by" : "operator@example.com" ,
"system_id" : 4
}
Key fields explained:
Field Description progressTypeOperation type (11=harvest, 13=planting, 15=fertilization, 17=plant stand) baselineHaTotal planned hectares for the campaign progressHaDailyHectares worked on this specific date progressHaTotalCumulative hectares worked to date remainingHaTotalHectares still pending plantedPercentPlanting completion % (only for type 13) harvestedPercentHarvest completion % (only for type 11) yieldTnHaPartialPartial yield in Tn/Ha (harvest) yieldTnHaFinalFinal yield in Tn/Ha (harvest, when finished) isLastWhether this is the most recent record for this campaign finishedWhether the operation is fully complete hydricStateSoil/crop hydric condition at time of report
Filtros
Use standard audit filters for incremental sync:
GET /api/v3/third_party/progress_report?campaign_id= 506362 & updated_at_from = 2025-01-01T00:00:00-03:00
Common filters:
Parameter Description campaign_idFilter by specific campaign updated_at_fromChange detection since last sync cycle_idFilter by master campaign cycle page / sizePagination
Updating objective yield on campaigns
If your system tracks planned yields per campaign, you can push that data back to SIMA asynchronously:
Submit update (async)
POST /api/v2/third_party/campaigns/update_objective_yield
[
{
"campaign_id" : 506362 ,
"external_code" : "YOUR-ERP-CAMP-001" ,
"objective_yield_kg_ha" : 4500.0
},
{
"campaign_id" : 506363 ,
"external_code" : "YOUR-ERP-CAMP-002" ,
"objective_yield_kg_ha" : 3800.0
}
]
Response — job queued:
{
"status" : true ,
"data" : {
"request_id" : "fec770b9-ae3b-42af-aec7-bb030c767d03" ,
"status" : "RECEIVED"
}
}
Check job status
GET /api/v2/third_party/campaigns/update_objective_yield/jobs
{
"data" : [
{
"request_id" : "fec770b9-ae3b-42af-aec7-bb030c767d03" ,
"status" : "DONE" ,
"total_records" : 6 ,
"processed_records" : 6 ,
"error_records" : 0 ,
"created_at" : "2026-05-07T12:43:48-03:00" ,
"updated_at" : "2026-05-07T12:43:53-03:00"
}
]
}
Check specific job
GET /api/v2/third_party/campaigns/update_objective_yield/status/{request_id}
Job statuses: RECEIVED → PROCESSING → DONE / ERROR
The objective yield import is asynchronous. Submit the job, then poll the status endpoint every few seconds until status is DONE or ERROR. Check error_records to detect partial failures.
Frecuencia de sincronización recomendada
Progress reports change frequently during active seasons. Recommended cadence:
During planting/harvest season : sync every 15–30 minutes per campaign using updated_at_from
Off-season : daily sync or on-demand
Always filter by campaign_id to avoid pulling the full dataset on each run
Próximos pasos
Work Orders Connect progress data to the operations that generated it
Sync Strategy Apply efficient incremental sync to progress data