Skip to content

Changelog

The API is unversioned: fields and endpoints are added, never renamed or removed, so nothing here breaks code written against an earlier entry.

A Variant published to YouTube now carries its counts in metrics: views, likes, comments, shares, minutes watched, average view duration and percentage, and subscribers gained, as YouTube reports them, with days holding them by day. Every other Network’s metrics stays null, as do webhook payloads. Data model.

channelOptions.{id}.placement in POST /api/posts sends a Facebook Page or Instagram Post to the feed (the default), as a story, or to both with feed_and_story, which makes two Variants. A Story carries no text and exactly one image or video; a Channel without Stories refuses story with a blocker. Variants, and so the variant.* webhooks, carry placement. Reference.

The reference now lists GET /api/posts’s query: from, to, limit and cursor. They were already accepted, and nothing about them changed.

POST /api/variants/{id}/retry on a failed Variant whose Channel has been disconnected now answers 409 channel_disconnected, and the Variant stays failed. It used to answer 200 and queue it, and the Variant was then cancelled again. Connecting the account again lets it be tried. Errors.

channelOptions.{id}.youtube.title in POST /api/posts sets a video’s title. Left out, the title is still the Post’s first sentence. A YouTube Post that ends up with no title, because it has no text and sends none, is now refused with a blocker instead of failing at YouTube when it is due. TikTok and YouTube.

GET and POST /api/webhooks and DELETE /api/webhooks/{id} were documented below but answered 404 until now; they are served, and callable from the reference’s explorer. Nothing about their requests or responses changed.

The MCP tools create_media_upload and complete_media_upload, twins of POST /api/media and POST /api/media/{id}/complete, and { "assetId": "…" } in schedule_post and publish_now media. An assistant with a shell uploads a local file with curl, so its bytes never pass through the conversation. AI assistants.

variant.published and variant.failed, sent to endpoints registered with POST /api/webhooks, signed in Pubrivo-Signature and retried for 24 hours. Needs the new webhooks:manage permission. Webhooks.

media in POST /api/posts takes { "url": "https://…" } beside { "assetId": "…" }. Pubrivo checks what the address holds when the Post is created and fetches it before publishing. Media.

Leave out scheduledAt to publish immediately. Needs the new posts:publish permission, as does POST /api/variants/{id}/retry. Publishing now.

Keys and Authorized apps schedule at least 15 minutes ahead; the same Post sent twice within 10 minutes comes back once; and every Post they make carries via, its maker’s name.

https://app.pubrivo.com/mcp, with OAuth sign-in, a Workspace pick, and the tools list_channels, list_posts, schedule_post, publish_now and cancel_post. AI assistants.

  • GET /api/channels
  • GET /api/posts, GET /api/posts/{id}
  • POST /api/posts, POST /api/posts/{id}/cancel
  • POST /api/variants/{id}/retry
  • POST /api/media, POST /api/media/{id}/complete, DELETE /api/media/{id}
  • API keys, in Settings › API keys
  • The OpenAPI document, at /developers/openapi.json