Create a post
Creates a multi-platform post for one or more edited clips. Each entry under videos references an edit_id (the rendered or apply_template'd clip) plus a list of target connections with platform-specific metadata.
Pass scheduled_at (ISO 8601, must be in the future) to schedule the post; omit it to publish immediately.
Immediate posts kick off rendering + publishing in the background — poll GET /posts/{id} until every item is published or failed. Failed items can be retried with POST /posts/{id}/items/{itemId}/retry.
Networks still rolling out reject the whole request with PLATFORM_UNAVAILABLE before anything is created.
Authorization
apiKey In: header
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/posts" \ -H "Content-Type: application/json" \ -d '{ "videos": [ { "editId": "string", "targets": [ { "connectionId": "string", "metadata": {} } ] } ] }'{ "post_id": "string", "item_count": 0, "scheduled_at": "string", "status": "pending"}List posts GET
Returns a paginated list of posts in this workspace, newest first. Each post includes its items with current status and error codes.
Get a post GET
Returns full status of a post including every item. Poll this endpoint to track immediate posts through `pending → rendering → publishing → published`.