Docs menu
API reference

Scheduling & Publishing

Slots, approvals, and shipping posts.

Schedule a post

POST/v1/public/posts/{postId}/schedule
scopespublish

Schedules (or reschedules) a variant. Requires the channel to be connected and a future time. A schedule records the slot; check eligibleToPublish for whether it will actually publish (billing, approval, and plan gates can hold it).

Path and query parameters
postIdrequiredstringPost id
Body
scheduledAtrequiredstringWhen to publish (ISO timestamp, must be in the future)
platformenum: instagram | facebook | linkedin | tiktok | youtube_shorts | pinterest | xDefaults to the primary variant
request
curl -X POST https://api.taka.ai/v1/public/posts/POST_ID/schedule \
  -H "Authorization: Bearer taka_live_..." \
  -H "Content-Type: application/json" \
  -d '{"scheduledAt": "2026-09-01T09:30:00Z", "platform": "instagram"}'
response
{
  "variantId": "abc123",
  "platform": "instagram",
  "scheduledAt": "2026-09-01T09:30:00Z",
  "eligibleToPublish": true,
  "needsApproval": false
}

Unschedule a post

POST/v1/public/posts/{postId}/unschedule
scopescontent:write

Removes the variant from its slot and returns it to draft. Nothing is deleted.

Path and query parameters
postIdrequiredstringPost id
Body
platformenum: instagram | facebook | linkedin | tiktok | youtube_shorts | pinterest | xDefaults to the primary variant
request
curl -X POST https://api.taka.ai/v1/public/posts/POST_ID/unschedule \
  -H "Authorization: Bearer taka_live_..." \
  -H "Content-Type: application/json" \
  -d '{"platform": "instagram"}'
response
{
  "variantId": "abc123",
  "platform": "instagram",
  "scheduledAt": "2026-09-01T09:30:00Z",
  "eligibleToPublish": true,
  "needsApproval": false
}

Approve a review-mode post

POST/v1/public/posts/{postId}/approve
scopespublish

Stamps approval on the post so it publishes at its slot. CAUTION: approving a post whose slot already passed publishes it IMMEDIATELY (the missed-slot recovery); publishedImmediately says when that happened.

Path and query parameters
postIdrequiredstringPost id
Body
platformenum: instagram | facebook | linkedin | tiktok | youtube_shorts | pinterest | xDefaults to the primary variant
request
curl -X POST https://api.taka.ai/v1/public/posts/POST_ID/approve \
  -H "Authorization: Bearer taka_live_..." \
  -H "Content-Type: application/json" \
  -d '{"platform": "instagram"}'
response
{
  "variantId": "abc123",
  "approved": true,
  "publishedImmediately": false,
  "scheduledAt": "2026-09-01T09:30:00Z"
}

Publish a post now

POST/v1/public/posts/{postId}/publish
scopespublish

Publishes to the connected channel. A review-mode post must be approved first (409 APPROVAL_REQUIRED). Instagram/Facebook/LinkedIn/X return the result inline; TikTok/YouTube/Pinterest return 202 with a job to poll. success:false responses carry a plain-language error and whether retrying can help.

Path and query parameters
postIdrequiredstringPost id
Idempotency-KeystringStrongly recommended: prevents accidental double publishes on retries.
Body
platformenum: instagram | facebook | linkedin | tiktok | youtube_shorts | pinterest | xDefaults to the primary variant
request
curl -X POST https://api.taka.ai/v1/public/posts/POST_ID/publish \
  -H "Authorization: Bearer taka_live_..." \
  -H "Content-Type: application/json" \
  -d '{"platform": "instagram"}'
response
{
  "variantId": "abc123",
  "platform": "instagram",
  "success": true,
  "permalink": "https://www.instagram.com/p/Cabc123/",
  "postId": "17912345678901234",
  "error": null,
  "retryable": false
}

Also answers 202: when the platform needs longer than a request, you get the job envelope instead and poll it.