List workflow states for a domain
GET /workflow/states
Returns every state in the requested domain (post, asset, …)
ordered by sort_order. Used by the upload modal’s “set
initial state” dropdown and any management surface that needs
to render state pickers. The set of domains and states is
seeded at install time; this endpoint is read-only.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Example
postDomain key as stored in workflow_states.domain. Common
values: post (all posts), asset:1 (assets of resource
type 1 — Photo), asset:3 (Video), etc.
Responses
Section titled “ Responses ”States in the requested domain
One node in a workflow state machine. States are scoped to a
domain (post, asset). Initial / terminal flags are read-only —
the underlying workflow_state table is seeded, not edited
from the API.
object
Domain key (e.g. post, asset:1)
Stable machine identifier (e.g. draft)
Human label (e.g. Draft)
Short token (e.g. “check”, “clock”, “x-circle”) the frontend maps to an SVG in its iconset. Empty string = no icon override (frontend picks a default).
Hex color (e.g. #16a34a) for the state badge background.
Empty string = frontend falls back to a neutral tone.
When true, workflow.Service.Transition rejects calls
that move INTO this state with an empty note. Useful for
rejection / needs-work states where the reason matters
for audit and the originating user.
Malformed request
object
Human-readable error summary
Example
the request could not be completedAuthentication required, missing, or invalid
object
Human-readable error summary
Example
the request could not be completedExample
{ "error": "authentication required: sign in and retry with a valid session or API token"}