Docs

REST API

Posts

Posts

Posts

Create and manage posts. A post targets one or more connected accounts and can be a draft, scheduled for later, or published immediately.

The post object

Field Type Description
id integer Unique id.
content string Default text for all targeted accounts.
status string draft, scheduled, published, or failed.
scheduled_at string|null ISO 8601 publish time.
published_at string|null When it was sent.
error_message string|null Set when status is failed.
media array Attached media objects.
socialAccounts array Targeted accounts, each with a pivot delivery record (status, platform_post_id, platform_url).

Create a post

POST /api/posts

Body parameters

Parameter Type Required Notes
content string yes Max 10,000 characters.
social_account_ids integer[] yes At least one connected account id.
scheduled_at string no ISO 8601, must be in the future. Omit to publish now.
publish_now boolean no Publish immediately instead of scheduling.
media_ids integer[] no Media library ids to attach.
platform_content array no Per-account overrides: [{ "account_id": 789, "content": "โ€ฆ" }].

Example

curl -X POST https://schedulenchill.com/api/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "content": "Big news for builders ๐Ÿš€",
    "social_account_ids": [789, 790],
    "media_ids": [456],
    "scheduled_at": "2026-06-10T14:00:00Z",
    "platform_content": [
      { "account_id": 790, "content": "Big news for builders. Full thread below ๐Ÿงต" }
    ]
  }'

Returns 201 Created with the post object.


List posts

GET /api/posts

Paginated, 20 per page. Optional filters:

Query param Description
status Filter by draft, scheduled, published, failed.
from Only posts scheduled on/after this date.
to Only posts scheduled on/before this date.
page Page number.
curl "https://schedulenchill.com/api/posts?status=scheduled&from=2026-06-01" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Retrieve a post

GET /api/posts/{id}

Returns the post with its media and socialAccounts (including per-account delivery status).


Update a post

PUT /api/posts/{id}

Only draft and scheduled posts can be updated. Accepts the same fields as create. Attempting to update a published post returns 422.


Delete a post

DELETE /api/posts/{id}

Deletes the post. Returns 204 No Content. To stop a scheduled post from publishing, delete it (or cancel it over MCP with cancel_post).