How a proposal works
1
The app proposes
POST /v1/posts/{id}/proposals (scope posts:schedule) with the connected accounts to post to and when:"now": as soon as you accept, or- an ISO 8601 date-time with a time zone, at least 5 minutes and at most 365 days ahead, e.g.
2026-11-03T09:00:00+01:00.
to_accept. To change a waiting proposal, withdraw it first, then propose again. Up to 10 accounts per proposal.2
You decide in CaptureFlow
The answer’s
approval_url opens the post in CaptureFlow. It shows Proposed by an AI assistant through the CaptureFlow API, the accounts and the time (or Goes out as soon as you accept), with Accept and Reject.3
Accepted posts are scheduled
Only when you accept is the post scheduled, through the same publishing as everything else in CaptureFlow. Reject sends it back to a draft.
DELETE /v1/posts/{id}/proposals returns the post to a draft.
Before proposing
CallPOST /v1/posts/{id}/preflight first: it checks the post against each account’s platform rules (length, media, format) without changing anything, and lists the issues to fix. When proposing, some platforms’ rules are checked again (a failure is refused with preflight_failed and details.issues); every platform’s rules, media included, are checked again when you accept.
Each target in the preflight answer has ok, and when it is false, a code: PREFLIGHT_FAILED (with issues), ACCOUNT_NOT_CONNECTED, PLATFORM_NOT_ENABLED, PLATFORM_NOT_SUPPORTED or SOCIAL_ACCOUNT_NOT_FOUND. These describe each target; they are not request errors.

