Approvals and plans

What each plan allows through the API, and how posts wait for approval when the workspace asks for it.

The API follows the same rules as the Postel app. The workspace's plan decides what a key can do, and the workspace's approval settings decide whether posts go out right away.

Plans

WhatFreeStarterProfessionalTeamEnterprise
Save drafts, read posts, list channelsYesYesYesYesYes
Write posts and takes with AIYesYesYesYesYes
Search viral posts and formatsYesYesYesYesYes
Schedule and publishNoYesYesYesYes
draft.ready and viral.new eventsNoNoYesYesYes

AI writing uses the plan's monthly AI credits on every plan.

Check canPublish from GET /v1/me to know up front whether the workspace can schedule and publish.

Scheduling or publishing without a paid plan gets 402 plan_required. Postel checks this before it saves anything, so no stray draft is left behind. The error message links to the workspace's billing page:

{
  "error": "Scheduling and publishing need a paid Postel plan. Pick one at https://www.postel.app/app/northwind/settings/billing, then run this step again. Saving drafts works on every plan.",
  "code": "plan_required"
}

AI writing uses credits on every plan. See Credits.

Approvals

Workspace owners and admins can require approval before posts go out, under Settings → General → Approvals. Two settings affect the API:

  • Members' posts. If the person who created the key is a member, not an owner or admin, their posts need approval.
  • Posts written by AI. Every post scheduled through the API or MCP needs approval, whoever created the key.

When approval applies:

  • Scheduling still works. The post gets the status pending_approval instead of scheduled, and the response has a message saying it waits for approval. Once an owner or admin approves it in Postel, it is scheduled.
  • Publishing now is refused with 409 approval_required, because it would skip review. Postel checks this before it saves anything. Schedule the post instead.
Scheduled, waiting for approval
{
  "id": "cmhjz4w2p0001l708xq3kd9vb",
  "status": "pending_approval",
  "message": "This workspace requires approval. The post was submitted for approval and will be scheduled once an owner or admin approves it in Postel."
}

The response above is shortened; you get the full post plus message.

To find posts waiting for approval, list them with GET /v1/posts?status=pending_approval.

On this page