Create a draft / scheduled post
Create a draft or submit-ready post. `status` may only be `DRAFT` or `WAITING_FOR_APPROVAL` — never `SCHEDULED` (going live always involves a human in the app). `WAITING_FOR_APPROVAL` runs full publish validation: a future `scheduledFor`, a `media` URL, ≥1 channel, and a caption per channel. Each `channels` key must be a channel id owned by your org; an inline superpower needs a unique `hashtag`, or reference a saved one with `creativeTemplateId`.
/scheduled-postsBeta
Authorization
x-api-key x-date x-signature x-api-version Your API key (the ApiKeys document id).
In: header
Current timestamp as an IMF-fixdate string (GMT, US locale) "EEE, dd MMM yyyy HH:mm:ss z", e.g. "Sun, 06 Dec 2020 12:59:11 GMT". 30-second TTL.
In: header
HMAC-SHA256 of the x-date string keyed by your secret, lowercase hex.
In: header
API version you're coding against — currently 1. Required; a missing or unsupported value returns 400 with Missing or unsupported x-api-version header. Supported versions: 1.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Create a draft / scheduled post. scheduledFor and channels are required
when status is not DRAFT.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
Try it
live — writes real dataKept in this tab only and signed in your browser — your secret never leaves your device.
Body (JSON)
This sends a real POST to your live organization.
Enter your key and secret to send.
curl -X POST "https://example.com/scheduled-posts" \ -H "Content-Type: application/json" \ -d '{ "status": "DRAFT", "media": "https://res.cloudinary.com/demo/image.png", "mediaType": "IMAGE", "scheduledFor": "2026-07-01T13:00:00.000Z", "channels": { "FB_PAGE_123456789012345": { "mediumType": "FB_PAGE", "caption": "Hello 👋" } } }'{ "_fsDocScope": "MODEL", "selfPath": "Organization/ORG123/scheduledPublications/AbC123XyZ", "id": "AbC123XyZ", "docName": "FsDocScheduledPublication", "docVer": 1, "created": { "_seconds": 1781840702, "_nanoseconds": 612000000 }, "updated": { "_seconds": 1781840702, "_nanoseconds": 612000000 }, "type": "POST", "media": "https://res.cloudinary.com/demo/image/upload/sample.png", "mediaType": "IMAGE", "scheduledFor": "2026-12-01T12:00:00.000Z", "mediumsData": { "FB_PAGE_1234567890": { "caption": "Big launch this weekend — comment FLASH for early access ⚡️", "mediumType": "FB_PAGE" } }, "status": "DRAFT"}{ "message": "string"}{ "message": "string"}{ "message": "string"}{ "message": "string", "conflicts": [ { "mediumId": "string", "hashtag": "string", "reason": "already-in-use" } ]}{ "error": [ { "message": "string", "path": [ "string" ], "type": "string", "context": {} } ]}