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