Posts
Create a post
Section titled “Create a post”POST /public/v1/postscurl https://app.beeive.com/public/v1/posts \ -X POST \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "schedule", "date": "2026-12-31T09:00:00.000Z", "shortLink": false, "tags": [], "posts": [ { "integration": { "id": "CHANNEL_ID" }, "value": [ { "content": "Our new feature is live!", "image": [{ "id": "MEDIA_ID", "path": "https://..." }] }, { "content": "Read more on our blog: https://example.com", "image": [] } ] } ] }'| Field | Type | Description |
|---|---|---|
type |
string | schedule to publish at date, now to publish immediately, or draft to save without publishing. |
date |
string | Publish date, ISO 8601 in UTC. Required for every type. |
shortLink |
boolean | Shorten links in the content. |
tags |
array | Tags as { "value": "...", "label": "..." }. Use [] for none. |
posts |
array | One item per channel. See below. |
Each item in posts:
| Field | Type | Description |
|---|---|---|
integration.id |
string | The channel ID from List channels. |
value |
array | The post, then any comments or thread items, in order. |
value[].content |
string | The text. |
value[].image |
array | Media as { "id": "...", "path": "..." }, using the values Upload returns. Use [] for none. |
value[].delay |
number | Optional. Minutes to wait before posting this comment. |
settings |
object | Optional. Channel-specific settings, such as a video title. See Get channel settings. |
To post the same thing to several channels, add one item to posts for each
channel.
Validation
Section titled “Validation”Scheduled and immediate posts are checked against the same rules as the
Beeive app, such as length limits, required media and required settings. A
post that breaks a rule returns 400, naming the channel and the problem.
Drafts only need some text or an image.
List posts
Section titled “List posts”GET /public/v1/posts?startDate=...&endDate=...| Query | Description |
|---|---|
startDate |
Required. Start of the range, ISO 8601. |
endDate |
Required. End of the range, ISO 8601. |
customer |
Optional. Only posts for this group (customer). |
Returns every post in the range, whatever its state: draft, scheduled, published or failed.
{ "posts": [ ... ] }Delete a post
Section titled “Delete a post”DELETE /public/v1/posts/:idChange status
Section titled “Change status”PUT /public/v1/posts/:id/statusMoves a post between draft and scheduled.
{ "status": "draft" }status is draft or schedule.
Update settings
Section titled “Update settings”PUT /public/v1/posts/:id/settingsUpdates the channel-specific settings of a draft or scheduled post that hasn’t been published. The content and date don’t change. The settings you send are merged with the existing ones.
{ "settings": { "title": "A better title" } }Link a published post
Section titled “Link a published post”Sometimes a post is published but Beeive can’t find its live version, so analytics and links are missing.
GET /public/v1/posts/:id/missingLists recent content from the network that could be this post. Then link the right one:
PUT /public/v1/posts/:id/release-id{ "releaseId": "ID_FROM_THE_NETWORK" }