Vidiyo Platform
Build on Vidiyo
Automate your channel, plug in AI video generators, build custom dashboards, or integrate Vidiyo into your own tools. Everything is accessible via the REST API or the MCP server.
Reference
REST API
Full HTTP/JSON API covering channels, content, scheduling, uploads, and analytics. Authenticate with a Clerk session or a creator API key.
Browse the API →Integrations
MCP Server
Connect Cursor, Claude, or any MCP-compatible AI to your Vidiyo account. Upload videos, manage schedules, and query analytics using natural language.
Set up MCP →Quickstart — upload and schedule in 4 steps
The pattern for an autonomous video pipeline: get a key, upload a file, wait for transcoding, place it on the schedule.
1. Create an API key in Studio → Account → API Keys
Choose content:write and schedule:write scopes. Copy the token — it's shown once.
export VIDIYO_KEY="vk_live_..."
export CHANNEL_ID="01936f4e-..."2. Init the upload and PUT your file
# Get a presigned URL + content ID
INIT=$(curl -s -X POST https://api.vidiyo.com/v1/creator/uploads/direct/init \
-H "Authorization: Bearer $VIDIYO_KEY" \
-H "Content-Type: application/json" \
-d '{"filename":"episode-1.mp4","title":"Episode 1","sizeBytes":52428800,"channelId":"'$CHANNEL_ID'"}')
export UPLOAD_URL=$(echo $INIT | jq -r '.uploadUrl')
export CONTENT_ID=$(echo $INIT | jq -r '.contentItemId')
# PUT the file bytes directly to R2 (no Vidiyo server in the path)
curl -s -X PUT "$UPLOAD_URL" \
-H "Content-Type: video/mp4" \
-H "Content-Length: 52428800" \
--data-binary @episode-1.mp4
# Finalize — triggers transcoding
curl -s -X POST https://api.vidiyo.com/v1/creator/uploads/direct/complete \
-H "Authorization: Bearer $VIDIYO_KEY" \
-H "Content-Type: application/json" \
-d '{"contentItemId":"'$CONTENT_ID'"}'3. Poll until status is "ready"
# Poll every 30s until status === "ready"
curl https://api.vidiyo.com/v1/creator/content/$CONTENT_ID \
-H "Authorization: Bearer $VIDIYO_KEY"4. Schedule the content
curl -X POST https://api.vidiyo.com/v1/creator/schedule \
-H "Authorization: Bearer $VIDIYO_KEY" \
-H "Content-Type: application/json" \
-d '{"channelId":"'$CHANNEL_ID'","contentItemId":"'$CONTENT_ID'","startsAt":"2026-05-04T14:00:00Z","kind":"content"}'Authentication
Every API request needs a bearer token. For automated workflows, use a creator API key.
| Method | Format | Best for |
|---|---|---|
| Creator API key | vk_live_... | Agents, scripts, automation |
| Clerk JWT | eyJ... | Browser / Studio UI |
| Device token | vds_... | Roku, Fire TV, Apple TV |
All three are sent as Authorization: Bearer <token>. Creator API keys are self-service — generate them in Studio → Account → API Keys.
Base URLs
| Environment | URL |
|---|---|
| Production API | https://api.vidiyo.com |
| MCP server | https://vidiyo-mcp-server.workers.dev/mcp |
| Interactive docs | https://api.vidiyo.com/docs |
| OpenAPI spec | https://api.vidiyo.com/openapi.json |