Pulse Publish
Pulse Publish API · by DebugInit

The publishing API for every network.

Add video publishing to your product with one integration. Upload once, set a caption per network, and publish to LinkedIn, X, YouTube Shorts, Instagram, TikTok, Pinterest and more, through their official APIs, with human approval built in.

  • 11 networks, one API
  • REST + MCP for AI agents
  • OpenAPI 3.1
  • Approval built in
One video goes through your approval, then out to every network you picked your video tap to approve inPgfIG@BsMPXYTTk

One upload. Tap the ring to approve, the video to edit its caption, a network to leave it out.

Hover a network to see what Pulse Publish handles for it.
DebugInit
The DebugInit ecosystem

A core product of the DebugInit ecosystem.

Designed, written and run in-house by the DebugInit team: our own connectors to every network, not a wrapper around someone else's service. The publishing engine behind Pulse, alongside Myna, Signals and the rest of the family.

Explore the ecosystem
What you can build

Publishing, without eleven integrations.

Each network has its own upload protocol, limits, review rules and token lifetimes. Pulse Publish absorbs all of that behind one API, so you ship the feature, not the plumbing.

  • 01

    Social and creator tools

    Let users schedule one video to all their accounts, with a caption tuned for each network and a preview that counts characters the way each network does.

  • 02

    Agency and brand workflows

    Queue client videos to company Pages and Showcase Pages, target an audience, and keep a person's approval on every post before it goes public.

  • 03

    Pipelines and CI

    Render a release video in your pipeline, upload it, queue it, and let a teammate approve. The API answers in plain JSON with clear errors.

  • 04

    AI agents

    Connect Claude, Cursor or any MCP client. The agent drafts and queues; a human approves. The same rules apply as for the REST API.

Integration

Four calls to a live post.

  1. 1

    Upload

    POST /v1/media with the raw video and cover.

  2. 2

    Create

    POST /v1/posts: targets, time, a caption per network.

  3. 3

    Approve

    POST …/approve from your UI, by the person who is accountable.

  4. 4

    Read the result

    GET /v1/posts/{id}: the live link, or the network's own error.

curl -X POST "$PP/v1/posts" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "launch",
  "at": "2026-11-20T09:30:00+05:30",
  "title": "Launch day",
  "video": "launch.mp4",
  "targets": ["linkedin", "x"],
  "caption": "We are live."
}'
curl
# the accountable person approves in your UI; it goes out at its time
curl -X POST "$PP/v1/posts/launch/linkedin/approve" \
  -H "Authorization: Bearer $TOKEN"

# → { "network": "linkedin", "approval": "ok", "status": "waiting" }
Shell
# or let an AI agent do it, over MCP
claude mcp add --transport http pulse-publish https://publish.debuginit.com/mcp \
  --header "Authorization: Bearer $TOKEN"
Networks

11 networks, one API.

Each through its official API. The limits shown are the ones the API checks before anything is sent.

  • LinkedInvideo posts on a personal profilecaption up to 3000 characters · title up to 200 · video up to 30 min · files up to 500 MB · custom cover
  • LinkedIn Pagecompany Pages and Showcase Pages, with audience targetingcaption up to 3000 characters · title up to 200 · video up to 30 min · files up to 500 MB · custom cover
  • Facebook PageReels on a Facebook Pagecaption up to 63206 characters · title up to 255 · video up to 90 s · files up to 1 GB · custom cover
  • InstagramReels on a professional accountcaption up to 2200 characters · video up to 15 min · files up to 300 MB · custom cover
  • Threadsvideo posts on Threadscaption up to 500 characters · video up to 5 min · files up to 1 GB · needs a public video URL
  • Blueskyvideo posts, signed in with an app passwordcaption up to 300 characters · video up to 3 min · files up to 300 MB
  • Mastodonvideo posts on any instance; links count as 23caption up to 500 characters · files up to 99 MB · custom cover
  • Pinterestvideo Pins with title, link and alt textcaption up to 800 characters · title up to 100 · video up to 15 min · files up to 2 GB · custom cover
  • Xvideo posts with chunked upload; links count as 23, emoji as 2caption up to 280 characters · video up to 20 min · files up to 8 GB
  • YouTube ShortsShorts with resumable upload and a custom thumbnailcaption up to 5000 characters · title up to 100 · video up to 3 min · custom cover
  • TikTokvideos through the Content Posting APIcaption up to 2200 characters · video up to 10 min · files up to 4 GB
Production-ready

Safe to put in front of users.

It publishes in your users' names, so it is built to do nothing a person didn't mean.

  • Approval tied to content

    An approval covers exactly that video, cover, caption and settings. Change anything and it must be approved again: no stale approvals.

  • Network tokens never reach your app

    Sign-ins to LinkedIn, X and the rest are held by Pulse Publish. Your app only ever holds its own DebugInit ID token.

  • Built in-house, not a wrapper

    Every connector is written by the DebugInit team in Rust and talks straight to each network's official API. There is no third-party publishing service or SDK underneath, so nothing between you and the networks resells, throttles or reads your posts.

  • Official APIs only

    No scraping, no shared passwords, nothing that puts your users' accounts at risk.

  • Predictable errors

    A plain sentence for every failure, the network's own message when it refused, and status codes you can branch on.

Get started

Ship publishing this week.

Get access with your DebugInit ID, follow the five-minute quick start, and publish your first video through the API.