Skip to content
▶Vidiyo
FeedWatchTV guideFor creatorsPricingSupport
DevelopersAbout
Watch nowWatch

Developers

OverviewREST APIMCP Server

Live references

Interactive API explorer ↗OpenAPI spec (JSON) ↗
Get API keys →

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 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"}'
Full guide with Python and TypeScript examples →

Authentication

Every API request needs a bearer token. For automated workflows, use a creator API key.

MethodFormatBest for
Creator API keyvk_live_...Agents, scripts, automation
Web sessionvws_... (cookie)Browser / Studio UI
Device tokenvds_...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

EnvironmentURL
Production APIhttps://api.vidiyo.com
MCP serverhttps://vidiyo-mcp-server.davidnaffis.workers.dev/mcp
Interactive docshttps://api.vidiyo.com/docs
OpenAPI spechttps://api.vidiyo.com/openapi.json
▶Vidiyo

Your own TV channel. Free, on every screen.

Product

  • Watch
  • Feed
  • TV guide
  • For creators
  • Pricing
  • Apps
  • Support

Resources

  • Learn
  • Signal
  • Tools
  • Compare
  • About
  • RSS feed

Developers

  • Overview
  • REST API
  • MCP server

Legal

  • Terms
  • Privacy
  • Cookies
  • DMCA
  • Creator agreement
  • Trust & Safety
Get the app
  • iPhone & iPad
  • Android
  • Roku
  • Fire TV
  • Apple TV
© 2026 Vidiyo. Made for creators, everywhere.