Skip to content

Posts

POST /public/v1/posts
Terminal window
curl 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.

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.

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 /public/v1/posts/:id
PUT /public/v1/posts/:id/status

Moves a post between draft and scheduled.

{ "status": "draft" }

status is draft or schedule.

PUT /public/v1/posts/:id/settings

Updates 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" } }

Sometimes a post is published but Beeive can’t find its live version, so analytics and links are missing.

GET /public/v1/posts/:id/missing

Lists 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" }