563848e0ecc0
Transition a single flag to a new status
Transitions the specified flag to the given target status. Use this endpoint to move one flag through its lifecycle (e.g. acknowledging it, starting outreach, closing it); to move multiple flags in one call, use PUT /flags/update-status-bulk/{status} instead. The caller must hold the per-transition permission for the specific source-to-target status pair (see the flag status-transition rules); closed flags are terminal and cannot be transitioned further. The status path parameter accepts any of the canonical wire values (open, seen, outreachInProgress, sentToCommittee, closed, needsVerification) or the aliases markAsSeen/mark_as_seen, needs_verification, outreach_in_progress, and sent_to_committee — matching is case-insensitive, so any casing of any of these values is accepted. The request body is optional: supply a free-text comment and/or one or more files to attach context to the transition, or omit the body entirely. Returns the full updated flag record on success. A FlagHistory record is always created, and if files were supplied they are stored to GCS and linked as FlagHistoryAttachment records — both are best-effort and do not fail the call if they error. Not idempotent: since no status has a transition to itself, repeating the same call a second time (the flag now already at the target status) returns 409.
Path parameters
ID of the flag to update
The target status. Accepts the canonical wire values (open, seen, outreachInProgress, sentToCommittee, closed, needsVerification) or the aliases markAsSeen, mark_as_seen, needs_verification, outreach_in_progress, sent_to_committee. Matching is case-insensitive.
Headers
Tenant ID
Response
The updated flag record, reflecting the new status. The internal tenantProviderId and hash columns are omitted — everything else in the referenced schema is returned verbatim.