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.
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.
Upload and publish in one step
The v1 API combines uploading and scheduling into a single request. Here is a complete working example.
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.
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.
Send the upload request
Use curl (or any HTTP client) to POST your video file and the platforms you want to publish to.
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.
Form fields
Send as multipart/form-data. All authentication is via the Authorization: Bearer header.
| Field | Type | Required | Description |
|---|---|---|---|
file | File | required | The video file. Supported: .mp4, .mov, .m4v, .webm. Maximum size: 500 MB. |
platforms | string | required | Comma-separated list of platforms to publish to. Accepted values: "youtube", "tiktok", "instagram". Example: "youtube,tiktok". |
release_date | ISO 8601 string | optional | Schedule the post for a future date and time. Example: 2026-06-01T10:00:00Z. If omitted, publishing starts immediately. |
overwrite | "true" | optional | Set to "true" to replace a previously uploaded file with the same filename. If omitted or "false", a duplicate file returns a 409 error. |
Schedule a future post
Add a release_date field to defer publishing until a specific date and time. Use ISO 8601 format in 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"
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.
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.
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" }
]
}| Field | Meaning |
|---|---|
video.status | pending — publishing has been queued. Monitor via the dashboard. |
schedules | One entry per platform. Each entry has an id, platform, release_date, and status. |
video.duration | Video length in seconds, extracted automatically from the uploaded file. |
Error codes
All errors return JSON with an error string and sometimes a renew_url or enable_url hint.
| HTTP | When it happens | What to do |
|---|---|---|
| 401 | Missing token | Authorization header is missing or malformed. Add -H 'Authorization: Bearer <TOKEN>'. |
| 401 | Invalid token | Token is not recognised. Check it matches the value in Settings → API Access. |
| 403 | No subscription | Your account does not have an active subscription. Choose a plan at the link in the response. |
| 403 | Quota exceeded | You have reached the video limit for your current plan. Upgrade or wait until the next billing period. |
| 403 | Platform not connected | One of the requested platforms is not linked to your account. Go to Settings → Publishing Accounts. |
| 409 | Duplicate file | A video with this filename already exists. Use overwrite=true to replace it. |
| 400 | No file | The file field is missing from the request. |
| 400 | Invalid platforms | platforms field is missing or contains unrecognised values. Accepted: youtube, tiktok, instagram. |
| 413 | File too large | File 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 →