DEVELOPER DOCUMENTATION
Preflight a Project To-do Mutation
Preview the exact recipients and effects of a create, update, assign, or archive without writing, and mint the receipt broad audiences require.
/api/public/v1/project-todos/manageValidates one intended mutation without writing anything. Requires project_todos:write and employer access to the job. Preflight is the only manage action with no idempotencyKey.
actionstringbodyrequiredpreflightjobIdstringbodyrequiredoperationstringbodyrequiredcreate_item, update_item, assign, or archive_item.
audiencestringbodyRequired for create_item, update_item, and assign.
selectedContractIdsstring[]bodySELECTED only. Validated as strictly as the live mutation — offenders fail the preflight with per-ID reasons.
versionobjectbodyThe exact version definition. Required for create_item and update_item.
itemIdstringbodyRequired for update_item, assign, and archive_item.
Response
Section titled “Response”preflight contains:
job— the exact job ID and title.audience— the live blast radius: masked recipient names with contract IDs, the current count, and whether future hires will be auto-assigned.dueandblocking— the projected due and block times, computed with the same schedule logic the live assignment uses.evidenceandinstructionLinkage— required review evidence and any linked instruction page.duplicates—exactlists active items whose complete request matches yours (the live create refuses these withoutallowDuplicate: true);titleMatchesis a weaker advisory signal.archive— forarchive_item: the exact number of open assignments that would close, plus the irreversibility and history-retention semantics.receipt— for broad audiences only:{ token, expiresAt }. Passtokenback unchanged aspreflightReceipton the live mutation.warnings— human-readable advisories.
The receipt lives about 15 minutes and is bound to your account, the job, the operation, the audience, the live roster, and the exact payload. Any change invalidates it; run preflight again. The token is opaque — it never contains recipient identifiers.