Generate post content in your voice
Requires scope: `ai:generate` and a paid plan. Subject to your plan's daily generation quota.
Authorization
ApiKey A personal API key created in the dashboard (Starter, Pro, and Team plans).
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/posts/generate" \ -H "Content-Type: application/json" \ -d '{ "topic": "why solo founders should post daily", "platform": "twitter", "angle": "opinion" }'{ "body": "Posting daily isn't about volume. It's about staying in the room."}Mint branded short links POST
Requires scope `links:write`. Mints a branded short link for each supplied URL and returns a mapping of original URL to short link. Links are keyed per user, so the same URL shortened twice returns the same link and does not consume additional quota. UTM handling: any utm_* params already on the URL are preserved and win; defaults (`utm_source=social`, `utm_medium=social`, a month-bucketed `utm_campaign`) only fill the ones the caller did not set. A URL that is already a short link, or that resolves to a private network address, is skipped. A URL that fails to mint is omitted from `links` rather than failing the whole request. Note posts created via `POST /posts` already shorten their links automatically — this endpoint is for shortening without posting.
Generate a batch of post ideas POST
Requires scope: `ai:generate` and a paid plan. Generates several standalone posts for a category. Shares a 6/min rate-limit bucket with the thread and carousel generators.