Create a post
Publishes now, schedules (scheduled_at), or saves a draft. Each target can have its own content, media_ids, and platform options (targets[].options, see the *Options schemas). Validated against every target platform before anything is saved.
Requires the write scope.
bearerAuthorizationBearer <token>An API key (tb_live_...) from the dashboard, or an OAuth access token.
Idempotency-Key?string1-128 characters of [A-Za-z0-9_-]. The same key and body returns the first response (200, Idempotent-Replayed: true); a different body returns 409 idempotency_conflict.
Tebar-Profile?stringLimits an owner key to one profile (id or external_id). Unknown: 404 profile_not_found.
application/json- body
content?stringlength <= 5000media_ids?array<>items <= 20[]media_urls?array<>1 <= items <= 20targets*array<>1 <= items <= 10scheduled_at?stringdate-timeidea_id?stringuuidReplayed by Idempotency-Key.
application/json- response
id*stringuuidprofile_id*stringuuidcontent*string|nulltype*string"text""image""video""carousel"status*string"draft""scheduled""publishing""published""partial""failed""canceled"source*string"dashboard""api""mcp"idea_id*|nullscheduled_at*|nullcreated_at*stringdate-timemedia*array<>targets*array<>curl -X POST 'https://api.tebar.app/v1/posts' \
-H 'Content-Type: application/json' \
-d '{
"targets": [
{
"account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65"
}
]
}'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"profile_id": "bfcb6779-b1f9-41fc-92d7-88f8bc1d12e8",
"content": "string",
"type": "text",
"status": "draft",
"source": "dashboard",
"idea_id": "513dcbd6-3206-4305-8a7e-8651161eebfb",
"scheduled_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"media": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "image",
"expired": true,
"public_url": "string",
"poster_url": "string",
"alt_text": "string"
}
],
"targets": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
"platform": "threads",
"username": "string",
"display_name": "string",
"status": "pending",
"options": {
"property1": null,
"property2": null
},
"content": "string",
"media": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "image",
"expired": true,
"public_url": "string",
"poster_url": "string",
"alt_text": "string"
}
],
"cover": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "image",
"expired": true,
"public_url": "string",
"poster_url": "string",
"alt_text": "string"
},
"platform_post_id": "string",
"permalink": "string",
"error_code": "string",
"error_message": "string",
"retry_after": "2019-08-24T14:15:22Z",
"published_at": "2019-08-24T14:15:22Z"
}
]
}List posts GET
Newest first, a cursor page (limit up to 100). With from and to (ISO 8601, up to 45 days): posts whose scheduled_at, or created_at, falls in [from, to), oldest first, one page (limit up to 500, no cursor). Requires the read scope.
Get a post GET
Includes the status of each target. Requires the read scope.