Posts API
Create, schedule, and delete posts programmatically.
Updated May 12, 2026·1 min read
The Posts API is the main publishing surface. Create a draft, schedule it, or publish immediately to any combination of connected channels.
Create a post
bash
curl https://api.unison.ink/v1/posts \
-H "Authorization: Bearer unison_live_..." \
-H "Content-Type: application/json" \
-d '{
"channels": ["x", "bluesky", "linkedin"],
"body": "Shipping our integration with Unison today.",
"scheduledAt": "2026-06-01T14:30:00Z"
}'Returns a 201 Created with the new post's id. Omit scheduledAt to
publish immediately.
Per-channel overrides
Pass an overrides object keyed by channel slug to send a different body
per network:
json
{
"channels": ["x", "linkedin"],
"body": "Default body shipped to every channel.",
"overrides": {
"linkedin": "A longer LinkedIn-flavoured version with more context."
}
}Status
GET /v1/posts/{id} returns the publish status:
json
{
"id": "post_abc123",
"status": "scheduled",
"scheduledAt": "2026-06-01T14:30:00Z",
"channels": ["x", "bluesky", "linkedin"],
"publishResults": []
}After publish time, publishResults contains a per-channel outcome.
Errors
400 invalid_channels: at least one channel slug is unknown or not connected.402 plan_limit: the request would exceed your plan's connected channel cap. Upgrade or remove a channel.429 rate_limited: standard token-bucket. Retry after theRetry-Afterheader.
Was this helpful?