Transition work-item status
Applies one valid Execute flow-state transition. For Jira-backed work items, DigitalStack passes the mapped/provider transition through to Jira and records the resulting DS transition.
POST
/api/v1/work-items/:id/statusAuthorization
work-items:transitionapi key scoperequiredRequired scope when calling with an API key.
Path parameters
idstringrequiredCanonical work-item ID
Example: work_01k2...
Request body
to_state_idstringrequiredDigitalStack Execute flow-state ID
provider_transition_idstringoptionalProvider transition ID when source writeback requires one
expected_versionnumberoptionalOptimistic work-item version guard
notestringoptionalOptional transition note
confirmbooleanrequiredMust be true
Example request
{
"to_state_id": "state_doing",
"provider_transition_id": "31",
"expected_version": 8,
"note": "Started implementation",
"confirm": true
}Request
curl -X POST "https://www.digitalstack360.com/api/v1/work-items/work_01k2.../status" \
-H "Authorization: Bearer $DS_API_KEY" \
-H "Idempotency-Key: work-42-status-in-progress-v8" \
-H "Content-Type: application/json" \
-d '{"to_state_id":"state_doing","provider_transition_id":"31","expected_version":8,"note":"Started implementation","confirm":true}'Examples use a placeholder key from your environment. Store your key in $DS_API_KEY — never commit it.
Response
200 OK
{
"data": {
"work_item": {
"id": "work_01k2...",
"status_bucket": "in_progress",
"version": 9
},
"transition": {
"id": "wtr_01k7...",
"from_bucket": "todo",
"to_bucket": "in_progress"
},
"source_writeback": {
"mode": "provider_passthrough",
"source_system": "jira",
"provider_operation": "jira.transitionIssue",
"provider_result": "applied"
}
}
}Errors
401
missing_authNo credentials provided
401
invalid_api_keyAPI key is invalid or revoked
400
bad_requestMissing or invalid request fields
403
scope_insufficientKey lacks the required write scope
403
scope_insufficientKey lacks work-items:transition scope
400
invalid_transitionTarget flow state is not available
400
provider_transition_requiredProvider-backed transition is missing a transition id