Docs/Platform

Posting to Multiple Accounts

How Conbersa content runs work: ingest media from any public URL, then post it across platforms sequentially from one instruction. Experimental.

Updated September 23, 2026 · 3 min read

One video, many accounts. You give Conbersa the media once, say where it should go, and it handles the rest. The media reaches the devices once; the platforms go one after another.

Experimental. Content tools are marked experimental until the multi-platform posting path is validated end to end.

Step 1 — Ingest media

ingest_content takes any direct public URL — or base64 bytes.

{ "url": "https://drive.google.com/file/d/FILE_ID/view" }

Supported sources include Google Drive links shared as anyone with the link, Cloudflare R2, Supabase Storage, S3, Dropbox, and presigned URLs. Unsafe or non-public URLs are rejected.

For raw bytes:

{ "content_base64": "....", "filename": "clip.mp4" }

The result contains conbersa-file:// URIs. Hold on to them — start_content_run needs them.

Step 2 — Start the content run

start_content_run takes a list of platform groups and the ingested files:

{
  "groups": [
    { "platform": "tiktok", "pad_ids": ["pad_1", "pad_2"], "caption": "New drop", "sound_url": "https://..." },
    { "platform": "instagram", "pad_ids": ["pad_3"], "caption": "New drop" }
  ],
  "files": [{ "uri": "conbersa-file://..." }],
  "content_type": "video",
  "max_steps": 200
}

Rules:

  • One group per platform. Supported: tiktok, facebook, instagram.
  • pad_ids per group — the devices that post on that platform.
  • caption is per group, so each platform can say something different.
  • sound_url is TikTok-only.
  • files come from ingest_content.

The tool returns a run result with a group_id and a session_link. Platforms run sequentially — the run finishes one before it starts the next.

Step 3 — Watch and stop

Open the session link to watch the run in the cockpit. To check progress in code, call get_content_run_status(run_id); to halt it, call stop_content_run(run_id). Stopping stops the live platform and cancels the queued ones.

Why sequential?

One platform at a time keeps each device on one app, cuts contention, and makes failures easy to isolate. It's also how a careful human would do it: finish the TikTok posts, then move to Instagram.

Captions and device locks

  • Never leave captions empty. A blank caption can make a platform step fail or get skipped.
  • Content runs lock their devices the same way engagement runs do. Check busy first with list_devices.
  • Steps are capped by max_steps (default 200). Lower it to fail fast while testing.

Scheduling content

If you'd rather not run it now, schedule it: create_schedule with run_type="content_upload", platform_groups, files, and timing. See Scheduling runs.

Next

FAQ

Frequently asked questions

Ingest the media once with ingest_content — pass a public URL or base64 bytes — then call start_content_run with one platform group per platform. Each group lists the pad_ids for that platform and an optional caption. Media is pushed to devices once and platforms run sequentially.
Any direct public http(s) link works: Google Drive share links set to anyone-with-the-link, Cloudflare R2, Supabase Storage, S3, Dropbox, and presigned URLs. You can also send raw bytes as base64. Unsafe URLs are rejected before upload.
Not yet. Content tools are marked experimental until the multi-platform posting path is validated end to end. They work, but expect the interface and behavior to evolve. Engagement and schedule tools are stable.