Tasks
Complete task
Mark a task as completed with optional photo, GPS coordinates, and notes.
POST
status="completed" and completedDate=now() (unless already set), and persists optional evidence fields on the task row.
SOP-step completion deferred. The dashboard
/api/tasks/{id}/complete route also supports step-by-step completion for SOP-driven tasks (Blueprint §9.5). The v1 wrapper handles plain-task completion only. SOP-step completion via API key is part of a future batch.Authentication
Requires a key with thetasks:write scope.
Path parameters
Task UUID.
Request body
All fields optional.URL pointing to evidence photo (e.g. uploaded to your own S3).
Latitude, −90 to 90.
Longitude, −180 to 180.
Up to 2,000 characters.
Response
Returns the updated task wrapped underdata (status now completed).
Errors
| Status | When |
|---|---|
400 INVALID_ID | {id} is not a valid UUID |
400 VALIDATION_ERROR | Body validation failed |
401 | Missing, malformed, expired, or revoked API key |
403 INSUFFICIENT_SCOPE | Key lacks tasks:write scope |
404 NOT_FOUND | Task doesn’t exist or belongs to another user |
429 RATE_LIMIT_EXCEEDED | Per-user rate limit reached |
5xx | Server error |