Create a post
Creates a post with one variant per target channel. Exactly one mode is required: `draft: true` (save only), `scheduled_at` (future publish), or `publish_now: true` (immediate — requires the workspace's dangerous-operations toggle for API callers). Send an `Idempotency-Key` header to make retries safe.
Creates a post with one variant per target channel. Exactly one mode is required: draft: true (save only), scheduled_at (future publish), or publish_now: true (immediate — requires the workspace's dangerous-operations toggle for API callers). Send an Idempotency-Key header to make retries safe.
Organization API key as a Bearer token (postify_live_…).
In: header
Header Parameters
Client-chosen key (1–255 printable ASCII chars, e.g. a UUID) making this POST safely retryable: within 24h, the same key + same body replays the original response with Idempotency-Replayed: true; the same key with a DIFFERENT body is rejected with 422 idempotency_key_reused.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/posts" \ -H "Content-Type: application/json" \ -d '{ "variants": [ { "channel_id": "string", "body": "string" } ] }'{ "id": "string", "status": "draft", "type": "single", "title": "string", "body": "string", "scheduled_at": "2019-08-24T14:15:22Z", "published_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "variants": [ { "id": "string", "channel_id": "string", "body": "string", "media": [ { "url": "http://example.com", "type": "image", "alt": "string" } ] } ], "deliveries": [ { "channel_id": "string", "stage": "queued", "external_id": "string", "error": "string" } ]}