Skip to content
Vidiyo
FeedWatchTV guideFor creatorsYour brandPricingAppsSupport
DevelopersAbout
Watch nowWatch

Developers

OverviewREST APIMCP Server

Live references

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

Integrations

MCP Server

The Vidiyo MCP server exposes your account as Model Context Protocol tools (99 tools). Connect Cursor, Claude Desktop, or any MCP-compatible agent, then upload videos, manage schedules, Autopilot, marketplace, and analytics with natural language or tool calls.

Connect your MCP client

Cursor IDE

Add this to .cursor/mcp.json in your project root, then restart Cursor:

{
  "mcpServers": {
    "vidiyo": {
      "url": "https://mcp.vidiyo.com/mcp"
    }
  }
}

Claude (web, Desktop, and mobile)

Claude connects to remote MCP servers natively. Go to Settings → Connectors → Add custom connector, name it Vidiyo, and enter the MCP URL above. Enable it in a chat via the + menu, then verify: "Use the ping tool to check the Vidiyo MCP server." For Claude Code:

claude mcp add --transport http vidiyo https://mcp.vidiyo.com/mcp

ChatGPT

Requires a paid plan. Enable Settings → Connectors → Advanced settings → Developer Mode, then Connectors → Create with the MCP URL and authentication set to None (you authenticate in-session with set_api_key). Enable the connector per chat via + → More → Developer Mode.

Grok

Go to grok.com/connectors → New Connector → Custom and enter the MCP URL. For the xAI API, pass the URL as an mcp tool with server_url and server_label.

MCP Inspector (debugging)

npx @modelcontextprotocol/inspector@latest # Enter: https://mcp.vidiyo.com/mcp

Authentication

Method 1 — API Key (recommended for agents)

For autonomous agents, CI pipelines, and any workflow that runs without a browser.
Generate a key in Studio → Account → API Keys, then call set_api_key.
set_api_key(api_key: "vk_live_...")

The key is stored in the Durable Object session and sent on every API call. It is not echoed back or logged. The tool verifies the key against the API before storing it and will reject invalid or revoked keys immediately.

Method 2 — Google OAuth (for interactive users)

  1. Call authenticate — returns a URL
  2. Visit the URL in your browser and sign in with Google
  3. Return to your MCP client — the session is linked
  4. JWTs refresh automatically; sessions persist for the Durable Object's lifetime

Tools

Core (4 tools)

ToolAuthDescription
pingNoneHealth check. Returns server status and auth method.
authenticateNoneStart Google OAuth. Returns a URL for the user to visit.
set_api_keyNoneAuthenticate with a creator API key. For agents without a browser.
whoamiYesCurrent user's profile and active auth method.

Browse (10 tools — no auth)

Optional brand scopes catalog tools to a Brand Kit allowlist (X-Vidiyo-Brand).

ToolAuthDescription
list_channelsNonePaginated channel list, sorted by recency. Optional brand.
get_channelNoneChannel detail by slug. Optional brand.
get_channel_scheduleNoneSchedule blocks for a channel on a date. Optional brand.
get_now_playingNoneCurrent content + next upcoming on a channel. Optional brand.
searchNoneSearch channels and content. Optional brand.
get_trendingNoneTrending search terms. Optional brand.
get_home_feedNoneFeatured, live, and popular channels. Optional brand.
get_contentNonePublic content item by UUID.
list_categoriesNoneAll categories with channel counts.
get_categoryNoneCategory detail with paginated channels.

Brand Kits / Your brand (9 tools)

ToolAuthDescription
get_brandNonePublic Brand Kit by slug (active only).
resolve_brandNoneResolve a Brand Kit from a hostname (platform or verified custom).
get_my_brand_kitYesYour Brand Kit manage DTO + entitlement.
create_my_brand_kitYesCreate a draft Brand Kit.
update_my_brand_kitYesPatch channels, chrome recipes, legal URLs, exclusive, slate URL.
publish_my_brand_kitYesPublish draft to active when entitled and publish-ready.
list_my_brand_domainsYesCustom domains + CNAME target.
attach_brand_domainYesAttach a custom hostname via Cloudflare for SaaS.
detach_brand_domainYesRemove a custom hostname from your Brand Kit.

Playback (1 tool — no auth)

ToolAuthDescription
get_stream_urlNoneHLS master playlist URL, now-playing EPG, and VMAP ad tag for a channel. Optional brand.

On Demand (4 tools)

ToolAuthDescription
browse_on_demandNoneCatalog rails: Most Popular, New This Month, Leaving Soon, by category.
list_on_demand_titlesNoneCursor-paginated On Demand catalog.
get_on_demand_titleNoneTitle detail + related titles.
get_on_demand_playbackNoneSeekable SSAI VOD HLS URL (resume when signed in).

Content library (7 tools)

ToolAuthDescription
list_my_contentcontent:readList your content library. Filter by status: 'ready' to find schedulable videos.
get_my_content_itemcontent:readFull detail for one owned item: renditions, captions, thumbnails, transcode status.
update_contentcontent:writeUpdate title, description, channel, rating, or tags.
delete_contentcontent:writeSoft-delete a content item.
retry_transcodecontent:writeRe-queue a failed transcode without re-uploading.
init_direct_uploadcontent:writeStart a direct-to-R2 upload. Returns a presigned URL + contentItemId.
complete_direct_uploadcontent:writeFinalize after the PUT succeeds. Triggers transcoding.
Two ways to upload a video. If your agent can make an HTTP PUT (Cursor, Claude Code, scripts), use init_direct_upload + complete_direct_upload. If it's a chat client that can't send file bytes (Claude web, ChatGPT, Grok), host the file at a public URL and use ingest_from_url — it works for any video, not just AI-generated content.

Schedule management (5 tools)

ToolAuthDescription
get_scheduleschedule:readSchedule blocks + gaps for a channel + date window.
create_schedule_blockschedule:writePlace a ready content item at a specific time. Returns 409 on overlap.
update_schedule_blockschedule:writeMove, resize, or swap content of an existing block.
delete_schedule_blockschedule:writeRemove a block. Content item is not deleted.
fill_schedule_gapsschedule:writeTrigger async auto-fill to cover gaps with library content.

Channel management (13 tools)

ToolAuthDescription
get_my_channelschannel:readList all channels you own, including drafts.
get_channel_dashboardchannel:readRealtime viewers, 7-day overview, now-playing, content counts.
create_channelchannel:writeCreate a new channel.
update_channelchannel:writeUpdate name, description, kind, category, vod_enabled.
publish_channelchannel:writePublish a draft channel.
unpublish_channelchannel:writeTake a channel offline.
delete_channelchannel:writeSoft-delete a channel you own.
get_my_profileYesAuthenticated user's profile.
generate_channel_imageschannel:writeStart an AI artwork candidate batch for a channel.
list_channel_image_candidateschannel:readList latest AI artwork candidates.
select_channel_imagechannel:writeAdopt a ready candidate as channel art.
get_channel_rtmpchannel:readRTMP ingest URL + stream key for live channels.
rotate_channel_rtmpchannel:writeRotate the RTMP stream key.

Analytics (7 tools)

ToolAuthDescription
get_analytics_overviewanalytics:readPer-channel KPIs: views, sessions, watch minutes, trends.
get_content_performanceanalytics:readPer-content metrics with pagination.
get_viewer_demographicsanalytics:readCountry and platform breakdown.
get_realtime_viewersanalytics:readLive viewer count and per-minute activity.
get_creator_overviewanalytics:readCross-channel totals with per-channel breakdown.
get_analytics_timeseriesanalytics:readDaily series for views, sessions, watch minutes, or ad impressions.
get_creator_analytics_summaryanalytics:readCompact today-vs-last-week snapshot.

Favorites and follows (12 tools)

ToolAuthDescription
list_my_favoritesYesUser's favorited channels.
add_favoriteYesFavorite a channel by UUID or slug.
remove_favoriteYesUnfavorite a channel.
list_followed_creatorsYesCreators the user follows.
follow_creatorYesFollow a creator by username.
unfollow_creatorYesUnfollow a creator.
list_followed_channelsYesChannels the user follows.
follow_channelYesFollow a channel by UUID or slug.
unfollow_channelYesUnfollow a channel.
list_followed_collectionsYesChannel collections the user follows.
follow_collectionYesFollow a collection by UUID.
unfollow_collectionYesUnfollow a collection.

Ingest, AI creation, Autopilot, and credits (15 tools)

ToolAuthDescription
ingest_from_urlcontent:writeIngest any publicly downloadable video URL (not just AI output). The upload path for chat clients that can't PUT file bytes.
estimate_generationYesPrice an AI generation in credits without submitting. Free.
request_generationcredits:spendSubmit an AI video generation. Spends credits.
get_generationYesStatus of one creation job.
list_generationsYesRecent creation jobs, newest first.
cancel_generationYesCancel a pre-submission job; refunds the hold.
create_briefcredits:spendRecurring Autopilot programming brief on a channel.
list_briefsYesBriefs with status and next run time.
get_briefYesOne brief plus recent run history.
update_briefcredits:spendEdit brief fields or pause/resume. Creative fields merge with the current brief.
delete_briefcredits:spendArchive a brief (stops future runs).
run_briefcredits:spendTrigger a brief run now. Spends credits within caps.
get_brief_reviewYesClips awaiting approval for review-mode briefs.
approve_brief_contentcredits:spendApprove a review-queue clip onto the brief channel.
get_creditsYesCredits balance and recent transactions.

Marketplace (6 tools)

ToolAuthDescription
get_marketplace_termsYesActive Vidiyo Open License (required before share).
list_marketplace_listingsYesBrowse listings you can schedule onto your channels.
get_marketplace_listingYesListing detail for evaluation.
share_to_marketplaceYesShare a ready owned video (rights consent required).
withdraw_from_marketplaceYesWithdraw your content from the marketplace.
get_marketplace_earningsYesEarnings for shared content.

Webhooks (4 tools)

ToolAuthDescription
list_webhookscontent:writeYour outbound webhook subscriptions with status and delivery stats.
create_webhookcontent:writeSubscribe an HTTPS endpoint to pipeline events. Returns the signing secret once.
delete_webhookcontent:writeRemove a subscription.
enable_webhookcontent:writeRe-enable a subscription auto-disabled after delivery failures.

Payouts and viewer (2 tools)

ToolAuthDescription
get_payout_summaryYesStripe Connect status, payout history, pending balance.
get_continue_watchingYesIn-progress viewing sessions with position and last-watched time.

Autonomous agent workflow

The complete flow for an AI agent that generates videos throughout the day and schedules them automatically:

# 1. Authenticate with API key (no browser needed)
set_api_key(api_key: "vk_live_...")

# 2. Upload a generated video
init_direct_upload(
  filename: "daily-briefing.mp4",
  title: "Daily Briefing — May 3",
  size_bytes: 52428800,
  content_type: "video/mp4",
  channel_id: "01936f4e-..."
)
# → { contentItemId, uploadUrl }
# Agent PUTs the file bytes to uploadUrl via HTTP

complete_direct_upload(content_item_id: "01936f4e-...")

# 3. Wait for transcoding (poll until status === "ready")
get_my_content_item(id: "01936f4e-...")   # repeat every 30s

# 4. Find an open slot
get_schedule(
  channel_id: "01936f4e-...",
  from: "2026-05-03T00:00:00Z",
  to: "2026-05-04T00:00:00Z"
)
# → inspect gaps[] to find open windows

# 5. Schedule the content
create_schedule_block(
  channel_id: "01936f4e-...",
  content_item_id: "01936f4e-...",
  starts_at: "2026-05-03T14:00:00Z"
)

Error handling

StatusMCP response
401Authentication required. Call authenticate or set_api_key.
403 (scope)API key is missing required scope(s): schedule:write
403 (ownership)You don't own this channel.
404The requested resource was not found.
409That time slot already has a block. Move or shorten it first.
429Rate limit exceeded. Please wait before retrying.
503The Vidiyo API is currently unavailable. Please try again later.

MCP endpoints

EnvironmentURL
Productionhttps://mcp.vidiyo.com/mcp
Staginghttps://mcp-stg.vidiyo.com/mcp
Local devhttp://localhost:8787/mcp

Transport: Streamable HTTP (SSE fallback supported). Standard MCP protocol — no vendor extensions.

Get API keys →REST API referenceVidiyo for AI creators
Vidiyo

Clips, live streams, and your own TV channel. Free on every screen.

Product

  • Watch
  • Feed
  • TV guide
  • For creators
  • Who it's for
  • Your brand
  • 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
  • Android TV
  • Apple TV
  • Samsung
  • LG
  • Vizio
© 2026 Vidiyo. Made for creators, everywhere.