Write a post in your voice

Postel writes a post from your prompt in your own voice and saves it as a draft. Uses 1 AI credit (none when the workspace uses its own AI key); works on every plan. Takes 5 to 30 seconds, so give the request a 60-second timeout. Up to 3 at a time per workspace; a fourth gets 429. Send an Idempotency-Key header so a retried step returns the first draft instead of writing (and charging) again.

Try it

POST
/v1/posts/generate

Authorization

bearerAuth
AuthorizationBearer <token>

A Postel API key, Authorization: Bearer pstl_…. Create one in Postel under Settings → API & MCP; it acts for the workspace it was made in.

In: header

Headers

Idempotency-Key?string

Makes retries safe. The first request with a key runs; the same key from the same workspace within 24 hours gets that first response back (with Idempotent-Replayed: true) instead of creating again. Use a value unique to the run, up to 255 characters. Only successes are remembered. A key still running answers 409 request_in_progress; a key reused with a different body answers 422 idempotency_key_reused.

Lengthlength <= 255

Request body

application/json

prompt*string

What the post should be about: an idea, notes, a link's gist

Length1 <= length <= 5000
platform*string

Network to post to; the live ones are x, linkedin, bluesky, mastodon, youtube, tiktok. GET /v1/channels lists them with their accounts.

Value in"x" | "linkedin" | "linkedin_page" | "bluesky" | "mastodon" | "threads" | "youtube" | "instagram" | "tiktok"
thread?boolean

Write a thread instead of one post (X only)

voiceProfileId?string

Voice profile to write in; leave out for your own voice

Responses

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json