Approvals
Let editors and agents propose posts that the owner approves before they go out.
Owners can require approval in Settings → Workspace. Then editors (and OAuth connections approved by editors) can’t schedule or publish directly. Instead they send posts for review:
{ "caption": "…", "targets": [ … ], "action": "submit", "scheduledAt": "2026-11-07T10:00:00+08:00" }The post is saved as a draft with review: "pending", and the owner gets a notification.
Approving
Section titled “Approving”The owner (or an owner’s API key) approves with POST /posts/{id}/approve. The post is checked
and scheduled for its own scheduledAt, or for the time in the body:
{ "scheduledAt": "2026-11-07T12:00:00+08:00" }A post without a future time returns 400 until you send one.
Rejecting
Section titled “Rejecting”POST /posts/{id}/reject sends it back as a plain draft (review: "none"). The author gets a
notification with the optional reason:
{ "reason": "Use the new menu photo, please." }Finding posts to review
Section titled “Finding posts to review”GET /posts?status=drafts and look for review: "pending". Agents can do the same with list_posts, then approve_post or
reject_post, which makes a good owner workflow: “Show me what’s waiting for approval and approve the ones that fit our style.”
Client approval
Section titled “Client approval”Separately from team approvals, a post’s public preview link lets a client approve it without an account. When they do,
clientApprovedAt is set; changing the caption or media afterwards clears it.