Crops
Update crop status
Transition a crop between status states. Setting “harvested” auto-populates actualHarvestDate.
PUT
status. The behavior is identical except for one convenience: transitioning to harvested auto-populates actualHarvestDate to the current timestamp if it isn’t already set.
Authentication
Requires a key with thecrops:write scope.
Path parameters
Crop UUID.
Request body
One of
planned, planted, growing, harvested, failed.Response
Returns the updated crop wrapped underdata. When transitioning to harvested, the returned actualHarvestDate reflects the auto-set value.
Errors
| Status | When |
|---|---|
400 INVALID_ID | {id} is not a valid UUID |
400 VALIDATION_ERROR | status not in the allowed enum |
401 | Missing, malformed, expired, or revoked API key |
403 INSUFFICIENT_SCOPE | Key lacks crops:write scope |
404 NOT_FOUND | Crop doesn’t exist, is soft-deleted, or belongs to a farm the user doesn’t own |
429 RATE_LIMIT_EXCEEDED | Per-user rate limit reached |
5xx | Server error |
Notes
- This endpoint does not trigger the dashboard’s harvest-completion notification (which only fires for session-authenticated UI users).
- For full audit history of status transitions, see the dashboard timeline view.