The same engine as the Studio: your brand kits, your language rules, your monthly allowance. Five HTTP endpoints, and an MCP server so PostPop works inside Claude without you leaving the conversation.
Send Authorization: Bearer pp_live_… on every request. A key inherits the plan, allowance and brand kits of the person who made it — nothing more. Only a hash is stored, so a key is shown once and revoking one is immediate and permanent.
Available on Agency and lifetime Tier 3. Every call is a real AI generation, which is why it sits on the plans built for running several brands.
Generation takes about twenty seconds — longer than most proxies and HTTP clients will wait. So you get an id back immediately and poll it.
curl -X POST https://getpostpop.com/api/v1/posts \
-H "Authorization: Bearer pp_live_…" \
-H "Content-Type: application/json" \
-d '{
"brand_id": "…",
"topic": "5 reasons to service your laptop before winter",
"template": "LISTICLE"
}'
# → 202 { "id": "…", "status": "queued" }
# then poll until status is "ready":
curl https://getpostpop.com/api/v1/posts/ID \
-H "Authorization: Bearer pp_live_…"| POST | /v1/posts | Create a post. Returns 202 and a job id — generation takes about 20 seconds. |
| GET | /v1/posts/{id} | Poll a job, or fetch a finished post. Takes either id. |
| GET | /v1/posts | Recent posts, newest first. Cursor paginated. |
| GET | /v1/brands | Your brand kits. Every post needs one. |
| GET | /v1/me | Plan, posts used, posts left, reset date. |
Paste this into any MCP client — Claude Desktop, Cursor, anything that speaks the protocol — and Claude decides when to use them from what you ask.
{
"mcpServers": {
"postpop": {
"url": "https://getpostpop.com/mcp",
"headers": { "Authorization": "Bearer pp_live_…" }
}
}
}list_brands | Lists the PostPop brand kits this account owns. Call this first if you do not already have a brand_id — every post must be attached to one. Returns id, name, the website it was built from, and the language its posts are written in. |
create_post | Generates a finished, on-brand social post: written copy plus rendered slide images, in the brand’s own colours, fonts and language. Takes about 20 seconds and returns when the post is ready. Use this when the user wants an actual post they could publish. Do NOT use it to draft caption text or ideas — it renders images and spends one post from the account’s monthly allowance every time it is called. |
get_post | Fetches a post that was already generated, by its id. Use this to retrieve something made earlier in the conversation or in the PostPop studio. This does NOT create anything and does not affect the monthly allowance. |
check_quota | Reports how many posts this account has used and has left this month, and which plan it is on. Call before generating several posts so the user is not told mid-run that they have run out. |
Only create_post spends a post from your monthly allowance — its description says so to Claude directly, so it will not work through your month while exploring options.
| 401 | Missing, unknown or revoked key. |
| 403 | Valid key, but the plan does not include API access. |
| 400 | The request could not be read — the message says what is wrong. |
| 404 | No post or job with that id on this account. |
| 429 | Rate limited. 10/min on create, 120/min on reads. Retry-After says how long. |
Every error carries a machine-readable error and a message written for a person to act on — or for a model, which over MCP is the same thing.
Create a key, paste one config block, and ask Claude for a carousel.
Get your API key →