Posts
Create drafts, schedule, publish now, and manage posts.
| Method | Path | Description |
|---|---|---|
| GET | /posts | List (?status=DRAFT|SCHEDULED|PUBLISHED|FAILED) |
| GET | /posts/:id | Get one |
| POST | /posts | Create |
| POST | /posts/:id/schedule | { "scheduledAt": "ISO" } (alias date also accepted) |
| PATCH | /posts/:id/status | { "status": "draft" | "schedule" } |
| DELETE | /posts/:id | Delete |
Create — type
| Value | Behavior |
|---|---|
draft | Saved only |
schedule | Requires date (UTC ISO) |
now | Queued immediately for the worker |
Shorthand body
{
"type": "schedule",
"date": "2026-09-20T10:00:00.000Z",
"content": "Hello from Socioi",
"channelIds": ["clx_channel_id"],
"mediaIds": ["clx_media_id"]
}
Shorthand channelIds cannot set per-channel settings (for example Pinterest boardId). Use posts[] when you need provider settings.
Per-channel body
{
"type": "now",
"posts": [
{
"channelId": "clx_channel_id",
"content": "Hello Instagram",
"mediaIds": ["clx_media_id"],
"settings": { "__type": "instagram" }
}
]
}
Identical captions across items are merged into one post with multiple targets. If captions or media differ, the response is { "posts": [ … ] } instead of a single post object.
Scheduling an existing post
POST /posts/:id/schedule is only allowed for the user who created the post (API key creator, or the user who authorized the OAuth token). Otherwise the API returns 403.
If you PATCH status to schedule and the post has no prior schedule time, the API uses the current time.
Provider settings details: Provider settings.