List posts
Returns a paginated list of posts in this workspace, newest first. Each post includes its items with current status and error codes.
Authorization
apiKey In: header
Query Parameters
Page number (default: 1)
1 <= valueItems per page (default: 20, max: 100)
1 <= value <= 100Value in
- "pending"
- "processing"
- "completed"
- "partial"
- "failed"
Response Body
application/json
curl -X GET "https://example.com/posts"{ "posts": [ { "id": "string", "status": "pending", "scheduled_at": "string", "created_at": "string", "updated_at": "string", "item_count": 0, "items": [ { "id": "string", "platform": "youtube", "connection_id": "string", "edit_id": "string", "render_id": "string", "status": "pending", "published_url": "string", "error_code": "string", "metadata": { "youtube": { "title": "string", "description": "string", "categoryId": "string", "privacyStatus": "public", "license": "youtube", "embeddable": true, "publicStatsViewable": true, "madeForKids": true, "selfDeclaredMadeForKids": true, "tags": [ "string" ], "notifySubscribers": true, "coverImageId": "string" }, "tiktok": { "title": "string", "privacyLevel": "PUBLIC_TO_EVERYONE", "disableDuet": true, "disableComment": true, "disableStitch": true, "videoCoverTimestampMS": 0, "brandContentToggle": true, "brandOrganicToggle": true, "isAigc": true }, "instagram": { "caption": "string", "captionGroups": { "hook": [ "string" ], "emoji": [ "string" ], "body": [ "string" ], "cta": [ "string" ], "hashtags": [ "string" ] }, "captionParts": [ "string" ], "captionAutoEnvelope": true, "captionTemplate": "string", "coverUrl": "string", "coverImageId": "string", "thumbOffset": 0, "shareToFeed": true, "audioName": "string", "collaborators": [ "string" ], "userTags": [ "string" ], "trialReel": "off" }, "facebook": { "description": "string", "postType": "reel", "videoTitle": "string", "coverImageId": "string" }, "bluesky": { "text": "string", "languages": [ "string" ], "coverImageId": "string" }, "threads": { "text": "string", "replyControl": "everyone", "coverImageId": "string" }, "linkedin": { "text": "string", "visibility": "PUBLIC", "coverImageId": "string" }, "pinterest": { "boardId": "string", "title": "string", "description": "string", "link": "string", "coverImageUrl": "string", "coverImageId": "string" }, "carmedia": { "title": "string", "description": "string", "visibility": "public", "coverImageId": "string" }, "twitter": { "text": "string", "replySettings": "everyone", "coverImageId": "string" } }, "created_at": "string", "updated_at": "string", "posted_at": "string" } ] } ], "pagination": { "current_page": 0, "total_pages": 0, "total_count": 0, "has_next_page": true, "has_previous_page": true, "limit": 0 }}Get a connection GET
Returns a single connection by ID, with the latest captured audience metrics.
Create a post 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.