Dynamo Developer DocsDynamo Developer Docs
External APICommunityScheduled posts

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`.

post/scheduled-posts

Beta

The External API is in beta. Endpoints, parameters, and response shapes may change — including breaking changes — in future releases. Pin to documented behavior before relying on it in production.

Authorization

x-api-key x-date x-signature x-api-version
x-api-key<token>

Your API key (the ApiKeys document id).

In: header

x-date<token>

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

x-signature<token>

HMAC-SHA256 of the x-date string keyed by your secret, lowercase hex.

In: header

x-api-version<token>

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 data

Kept 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": {}    }  ]}