PowerPost APIv1
PowerPost APIv1
PowerPost APIQuickstartAuthenticationWorkspacesInput Types

API Reference

Upload MediaGenerate ContentGenerationsGenerate ImagesGenerate VideosPosts & PublishingAnalyticsCalendarGet Credits

Guides

MCP ServerWebhooksError CodesChangelog

MCP Server

Connect AI assistants to PowerPost through the Model Context Protocol.

PowerPost runs a remote MCP server, so AI assistants like Claude and Cursor can generate captions and images, create posts, publish, and read analytics on your behalf. Every MCP tool maps to an endpoint in the v1 API and respects the same API key, scopes, and rate limits.

Endpoint

https://powerpost.ai/api/mcp

Transport is Streamable HTTP. Authenticate with a PowerPost API key as a bearer token, the same key you use for the REST API.

Connecting a client

Most clients let you add a remote MCP server by URL with custom headers. Add this to your client's MCP config (for example .mcp.json in Claude Code or Cursor):

{
  "mcpServers": {
    "powerpost": {
      "url": "https://powerpost.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer pp_live_sk_YOUR_KEY_HERE",
        "X-Workspace-Id": "YOUR_WORKSPACE_ID"
      }
    }
  }
}

Create a key in Settings → API. The key's scopes decide which tools work, so grant the scopes you need (or "Full access").

Connecting with OAuth instead

Clients that support the MCP "Connect" flow (Claude.ai, Claude Code, and others) can skip the manual key: point them at https://powerpost.ai/api/mcp with no credentials, and the client discovers this server's OAuth endpoints on its own, redirects you to log in and approve access, then starts using the connection — no copying and pasting a key.

OAuth connections always get full API access (same as a "Full access" key). To limit what the assistant can do, disable tools in the client (e.g. Claude's tool permissions). Connections show up in Settings → API.

Choosing a workspace

Most tools act inside a workspace. You can either:

  • Set X-Workspace-Id once as a connection header (recommended), or
  • Pass workspace_id as an argument on each call.

Run powerpost_list_workspaces to find your workspace IDs.

Tools

ToolScopeWhat it does
powerpost_list_workspaces—List workspaces this key can use
powerpost_get_creditsaccount:readCurrent credit balance
powerpost_generate_contentcontent:generateStart a caption/content generation
powerpost_list_content_generationscontent:readList content generations
powerpost_get_content_generationcontent:readGet one content generation + outputs
powerpost_generate_imageimages:generateStart an image generation
powerpost_get_image_generationimages:readGet one image generation
powerpost_generate_videovideos:generateStart a video generation
powerpost_get_video_generationvideos:readGet one video generation
powerpost_create_postposts:writeCreate a draft post
powerpost_get_postposts:readGet a post and its items
powerpost_publish_postposts:publishPublish a post now
powerpost_schedule_postposts:publishSchedule a post
powerpost_cancel_publishposts:publishCancel a publish/schedule
powerpost_retry_post_itemposts:publishRetry a failed item
powerpost_get_post_item_analyticsanalytics:readEngagement analytics for an item
powerpost_list_calendar_entriescalendar:readList calendar entries in a date range
powerpost_create_calendar_entrycalendar:writeCreate a calendar entry
powerpost_get_calendar_entrycalendar:readGet a calendar entry
powerpost_update_calendar_entrycalendar:writeUpdate a calendar entry
powerpost_delete_calendar_entrycalendar:writeDelete a calendar entry
powerpost_upload_mediamedia:writeUpload media (base64 → same as REST upload)

Notes

  • Generation is async. The generate tools return an ID right away; poll the matching get_*_generation tool until the status is completed.
  • Uploads have no file picker. powerpost_upload_media takes base64 data plus mime_type, then posts to the same /api/v1/media/upload endpoint as the REST API. It does not download files from URLs.
  • Errors come straight from the API. A missing scope, bad input, or insufficient credits returns the same message you'd get from the REST endpoint.

Get Credits

Check your current credit balance.

Webhooks

Receive real-time notifications when generations complete.

On this page

EndpointConnecting a clientConnecting with OAuth insteadChoosing a workspaceToolsNotes