API v1 — One-step Upload

Broadcast Upload API v1

Upload a video and publish it to YouTube, TikTok, and Instagram in a single API call. Perfect for automation scripts, scheduled posts, and simple integrations.

Quick Start
POST /api/v1/upload
Authorization: Bearer <YOUR_API_TOKEN>

[email protected]
platforms=youtube,tiktok

Upload

Send a video file (up to 500 MB) from your script or server directly to vBroadcaster.

Publish

The upload immediately queues for publishing to the platforms you choose — YouTube, TikTok, Instagram.

Schedule

Optionally set a future release date per upload. Publishing is deferred until that date and time.

You are not signed in. Examples below use a placeholder token. Sign in to see your real API token.

Simple Workflow

Upload and publish in one step

The v1 API combines uploading and scheduling into a single request. Here is a complete working example.

1

Get your API token

Sign in to vBroadcaster, go to Settings → API Access, and generate your personal token. Keep it secret — it authenticates all API calls on your behalf.

2

Connect your social accounts

Before publishing, connect YouTube, TikTok, or Instagram in Settings → Publishing Accounts. The API will reject platforms that are not yet connected.

3

Send the upload request

Use curl (or any HTTP client) to POST your video file and the platforms you want to publish to.

Example — Upload to YouTube and TikTok immediately
curl -X POST https://vbroadcaster.app/api/v1/upload \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -F "file=@/path/to/my-video.mp4" \
  -F "platforms=youtube,tiktok"

What happens next: The video is stored on your account and queued for publishing to the selected platforms. You can monitor progress in the My Videos dashboard.

Request Parameters

Form fields

Send as multipart/form-data. All authentication is via the Authorization: Bearer header.

FieldTypeRequiredDescription
fileFilerequiredThe video file. Supported: .mp4, .mov, .m4v, .webm. Maximum size: 500 MB.
platformsstringrequiredComma-separated list of platforms to publish to. Accepted values: "youtube", "tiktok", "instagram". Example: "youtube,tiktok".
release_dateISO 8601 stringoptionalSchedule the post for a future date and time. Example: 2026-06-01T10:00:00Z. If omitted, publishing starts immediately.
overwrite"true"optionalSet to "true" to replace a previously uploaded file with the same filename. If omitted or "false", a duplicate file returns a 409 error.
Advanced Workflow

Schedule a future post

Add a release_date field to defer publishing until a specific date and time. Use ISO 8601 format in UTC.

Example — Schedule for June 1st at 10:00 AM UTC
curl -X POST https://vbroadcaster.app/api/v1/upload \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -F "file=@/path/to/my-video.mp4" \
  -F "platforms=youtube,tiktok,instagram" \
  -F "release_date=2026-06-01T10:00:00Z"
Advanced Workflow

Replace an existing video

By default, uploading a file with the same filename returns a 409 Conflict error. Pass overwrite=true to delete the old record and replace it.

Example — Re-upload and replace my-video.mp4
curl -X POST https://vbroadcaster.app/api/v1/upload \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -F "file=@/path/to/my-video.mp4" \
  -F "platforms=youtube" \
  -F "overwrite=true"

Warning: Overwriting a video permanently deletes the original file and all its schedule entries. This action cannot be undone.

Success Response

What the API returns

On success, the API responds with HTTP 200 and a JSON body containing the stored video record and one schedule entry per requested platform.

{
  "video": {
    "id": 42,
    "original_filename": "my-video.mp4",
    "stored_filename": "1748000000000_my-video.mp4",
    "file_size": 52428800,
    "duration": 62.4,
    "width": 1920,
    "height": 1080,
    "status": "pending",
    "created_at": "2026-05-25T10:00:00.000Z"
  },
  "schedules": [
    { "id": 1, "platform": "youtube", "release_date": null, "status": "pending" },
    { "id": 2, "platform": "tiktok",  "release_date": null, "status": "pending" }
  ]
}
FieldMeaning
video.statuspending — publishing has been queued. Monitor via the dashboard.
schedulesOne entry per platform. Each entry has an id, platform, release_date, and status.
video.durationVideo length in seconds, extracted automatically from the uploaded file.
Error Reference

Error codes

All errors return JSON with an error string and sometimes a renew_url or enable_url hint.

HTTPWhen it happensWhat to do
401Missing tokenAuthorization header is missing or malformed. Add -H 'Authorization: Bearer <TOKEN>'.
401Invalid tokenToken is not recognised. Check it matches the value in Settings → API Access.
403No subscriptionYour account does not have an active subscription. Choose a plan at the link in the response.
403Quota exceededYou have reached the video limit for your current plan. Upgrade or wait until the next billing period.
403Platform not connectedOne of the requested platforms is not linked to your account. Go to Settings → Publishing Accounts.
409Duplicate fileA video with this filename already exists. Use overwrite=true to replace it.
400No fileThe file field is missing from the request.
400Invalid platformsplatforms field is missing or contains unrecognised values. Accepted: youtube, tiktok, instagram.
413File too largeFile exceeds the 500 MB limit.

Need more control over publish timing and per-platform status?

API v2 separates uploading from publishing, giving you full control over each step.

Explore API v2 Docs →