Postato Docs
MCP ToolsTools

Get Approval Status

Poll the approval status of a post that was routed to pending_approval. Returns the current status (pending, approved, rejected) and, if rejected, the reason. U

get_approval_status

Poll the approval status of a post that was routed to pending_approval. Returns the current status (pending, approved, rejected) and, if rejected, the reason. Use this after publish_post returns status "pending_approval" to check if a human has responded.

Parameters

ParameterTypeRequiredDescription
postIdstringyesThe post ID returned by publish_post.
workspaceIdstringnoWorkspace ID. Required if your API key accesses multiple workspaces.

When to use

Workspaces with an approval policy route posts into a review queue before delivery. Use get_approval_status when you've created a post that went into pending_approval and need to know the outcome.

Alternative: listen for the approval.decided webhook — it's pushed the moment a reviewer acts.

Example

{
  "workspaceId": "wks_01H...",
  "postId": "pst_01H..."
}

Response:

{
  "postId": "pst_01H...",
  "status": "pending",
  "requestedAt": "2026-04-15T12:00:00Z",
  "decidedAt": null,
  "reviewerId": null,
  "comment": null
}

After a decision:

{
  "status": "approved",
  "decidedAt": "2026-04-15T12:30:00Z",
  "reviewerId": "usr_01H...",
  "comment": "looks good"
}

Status values

  • pending — awaiting a decision.
  • approved — reviewer approved; post has been enqueued for delivery.
  • rejected — reviewer rejected; post is terminal. Comment usually explains why.
  • expired — approval window passed without a decision. Tenant-configurable.

Gotchas

  • This tool returns 404 if the post exists but was never routed through approval (the workspace has no policy, or the caller bypassed it via a specific permission).
  • Once status is approved or rejected, it never changes. Safe to cache.
  • The comment can be any free-form text. Display as plain text; don't interpret HTML or markdown.

On this page