api.video MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Manage videos and live streams, inspect captions, players and webhooks, and read play analytics.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 179 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"api.video MCP by usefulapi": {
"url": "https://apivideo.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
apivideo_list_videosread-onlyList videos in the account, with optional filters (title, tags, metadata, description, liveStreamId) and sorting. Read-only. GET /videos.
Parameters:
tags— array — Filter by tags (all must match). Sent as tags[].title— string — Filter by video title (substring).sortBy— string — Field to sort by.metadata— object — Filter by metadata key/value pairs. Sent as metadata[key]=value.pageSize— integer — Results per page (max 100). Default 25.sortOrder— string — Sort direction.currentPage— integer — Page number (1-based). Default 1.description— string — Filter by description (substring).liveStreamId— string — Return only videos recorded from this live stream id.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_get_videoread-onlyGet a single video object by id (title, assets, player URL, status flags). Read-only. GET /videos/{videoId}.
Parameters:
videoId(required) — string — The video id, e.g. vi4k0jvEUuaTdRAEjQ4Jfrgz.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_get_video_statusread-onlyGet encoding and ingest status for a video (upload progress, encoding qualities, playability). Read-only. GET /videos/{videoId}/status.
Parameters:
videoId(required) — string — The video id.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_list_live_streamsread-onlyList live streams in the account, with optional filters (streamKey, name) and sorting. Read-only. GET /live-streams.
Parameters:
name— string — Filter by live stream name (substring).sortBy— string — Field to sort by.pageSize— integer — Results per page (max 100). Default 25.sortOrder— string — Sort direction.streamKey— string — Filter by exact stream key.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_get_live_streamread-onlyGet a single live stream object by id (stream key, RTMP ingest, player URL). Read-only. GET /live-streams/{liveStreamId}.
Parameters:
liveStreamId(required) — string — The live stream id, e.g. li400mYKSgQ6xs7taUeSaEup.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_list_captionsread-onlyList caption tracks for a video (language, source URL, default flag). Read-only. GET /videos/{videoId}/captions.
Parameters:
videoId(required) — string — The video id.pageSize— integer — Results per page (max 100). Default 25.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_list_chaptersread-onlyList chapter tracks for a video. Read-only. GET /videos/{videoId}/chapters.
Parameters:
videoId(required) — string — The video id.pageSize— integer — Results per page (max 100). Default 25.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_list_playersread-onlyList customized player themes in the account. Read-only. GET /players.
Parameters:
sortBy— string — Field to sort by.pageSize— integer — Results per page (max 100). Default 25.sortOrder— string — Sort direction.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_list_webhooksread-onlyList webhooks configured in the account, optionally filtered by event name. Read-only. GET /webhooks.
Parameters:
events— string — Filter by event name, e.g. "video.encoding.quality.completed".pageSize— integer — Results per page (max 100). Default 25.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_get_video_analyticsread-onlyAggregated play analytics for videos over a date range, grouped by a dimension. Read-only. GET /analytics/videos/plays.
Parameters:
from(required) — string — Start date yyyy-mm-dd (inclusive). Required.dimension(required) — string — Dimension to group plays by.to— string — End date yyyy-mm-dd (inclusive).filter— string — Filter expression, e.g. "videoId:vi123".pageSize— integer — Results per page (max 100). Default 25.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_get_live_stream_analyticsread-onlyAggregated play analytics for live streams over a date range, grouped by a dimension. Read-only. GET /analytics/live-streams/plays.
Parameters:
from(required) — string — Start date yyyy-mm-dd (inclusive). Required.dimension(required) — string — Dimension to group plays by.to— string — End date yyyy-mm-dd (inclusive).filter— string — Filter expression, e.g. "liveStreamId:li123".pageSize— integer — Results per page (max 100). Default 25.currentPage— integer — Page number (1-based). Default 1.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
apivideo_create_videodestructiveWRITE. Create a new video object. If `source` (a public video URL) is provided, api.video ingests the video from that URL — recommended for hosted use, since raw file bytes cannot stream through MCP. POST /videos.
Parameters:
title(required) — string — Video title. Required.tags— array — Tags for the video.public— boolean — Whether the video is public (default true) or private.source— string — Public URL of a video file to ingest from. Recommended over uploading bytes.metadata— object — Key/value metadata pairs (sent as [{key,value}]).playerId— string — Id of a custom player theme to attach.panoramic— boolean — Whether the video is a 360/panoramic video.mp4Support— boolean — Whether to also generate a downloadable MP4.description— string — Video description.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
apivideo_update_videodestructiveWRITE. Update fields on an existing video. Only the provided fields are changed. PATCH /videos/{videoId}.
Parameters:
videoId(required) — string — The video id to update.tags— array — Replacement tag list.title— string — New title.public— boolean — New public/private flag.metadata— object — Replacement metadata (sent as [{key,value}]).playerId— string — Player theme id to attach.panoramic— boolean — New panoramic flag.description— string — New description.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
apivideo_delete_videodestructiveWRITE. Permanently DELETE a video and all its assets. This cannot be undone. DELETE /videos/{videoId}.
Parameters:
videoId(required) — string — The video id to permanently delete.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
apivideo_create_live_streamdestructiveWRITE. Create a new live stream, returning a stream key and RTMP ingest URL to broadcast to. POST /live-streams.
Parameters:
name(required) — string — Live stream name. Required.public— boolean — Whether the stream is public (default true) or private.playerId— string — Id of a custom player theme to attach.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.