For Agents
Upload, transcode, and stream live or on-demand videos through api.video, plus configure custom players and pull per-asset analytics through a 47-endpoint REST API.
Get started with api.video in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"upload a video and get a playback url"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with api.video API.
Upload a new video and let api.video transcode it for adaptive playback across devices
Create a live stream with a unique stream key and a configurable thumbnail
Retrieve play and engagement analytics for a specific videoId or liveStreamId
Configure a custom player and attach a logo for branded playback
GET STARTED
Use for: I need to upload a video and get a playback URL, Create a live stream and retrieve the stream key, Get analytics for a specific video by id, Configure a custom player with a brand logo
Not supported: Does not handle DRM rights management, end-user authentication for paid content, or audio-only podcasting — use for video upload, live streaming, player configuration, and analytics only.
Jentic publishes the only available OpenAPI document for api.video, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for api.video, keeping it validated and agent-ready. api.video is a video infrastructure platform that encodes on the go to enable immediate playback across devices. The API covers video upload and management, live-streaming, players, account, analytics for live and on-demand assets, and authentication. Use it to add video upload, encoding, and playback to a product without building or operating a media pipeline.
Refresh the API key auth token before it expires to keep long-running agents authenticated
Pull session-level event analytics to power a viewer journey dashboard
Patterns agents use api.video API for, with concrete tasks.
★ User-Generated Video Upload Pipeline
A community platform lets members upload videos without running a transcoder. An agent posts uploaded files to /videos, and api.video transcodes them for adaptive bitrate playback on web and mobile. The platform stores the returned videoId and embeds the player without operating any encoding infrastructure.
POST a video file to /videos and return the assigned videoId and playback URL to the calling app
Live Stream Setup for Webinars
An events team running a webinar needs a live stream with a custom thumbnail and a branded player. An agent calls /live-streams to provision the stream, sets a thumbnail through /live-streams/{liveStreamId}/thumbnail, and configures the player branding via /players. Setup that used to take hours of console clicking becomes a few API calls.
Create a live stream, set its thumbnail, and configure a player with the brand logo for the broadcast
Per-Video Analytics Dashboards
Marketing teams want to see how each video performs without exporting CSVs by hand. An agent walks /analytics/videos/{videoId} and /analytics/sessions/{sessionId}/events for each tracked asset and writes the data into a dashboard. Insights about play-through and drop-off become a daily automated pull.
Retrieve analytics for each tracked videoId and aggregate plays, watch time, and completion into a dashboard
Long-Running Auth Refresh for Agents
An agent that runs uploads continuously must refresh its api.video token before it expires. /auth/refresh exchanges the current token for a fresh one without re-prompting for the API key. The agent can sit in a tight upload loop without periodic credential failures.
Detect imminent token expiry, call POST /auth/refresh, and replace the stored bearer token before the next upload
AI Agent Video Operations via Jentic
An AI agent that produces video content uses Jentic to upload, configure players, and pull analytics. Jentic exposes the api.video operations as discoverable tools, so the agent never reads the api.video reference — it searches by intent and executes the matching call.
Use Jentic to find the api.video upload operation, execute it with the file and metadata, and return the playback URL
47 endpoints — jentic publishes the only available openapi specification for api.
METHOD
PATH
DESCRIPTION
/auth/api-key
Exchange an API key for a bearer token
/auth/refresh
Refresh an expiring bearer token
/account
Retrieve account metadata and quota
/live-streams
Create a live stream
/live-streams/{liveStreamId}
Retrieve a live stream
/players
List configured custom players
/analytics/videos/{videoId}
Retrieve per-video engagement analytics
/auth/api-key
Exchange an API key for a bearer token
/auth/refresh
Refresh an expiring bearer token
/account
Retrieve account metadata and quota
/live-streams
Create a live stream
/live-streams/{liveStreamId}
Retrieve a live stream
Three things that make agents converge on Jentic-routed access.
Credential isolation
api.video API keys are stored encrypted in the Jentic vault. Agents trigger uploads, live-stream creation, and analytics calls through Jentic without seeing the raw API key, and Jentic handles the bearer-token exchange.
Intent-based discovery
Agents search Jentic with intents like 'upload a video' and Jentic returns the matching api.video operation along with the request shape — file, title, and metadata fields — without needing to read the api.video reference.
Time to first call
Direct api.video integration: 1-2 days for auth exchange, upload, refresh, and analytics flows. Through Jentic: under an hour per flow.
Alternatives and complements available in the Jentic catalogue.
Mux
Mux is a developer-focused video infrastructure platform with a similar upload, encode, and playback surface to api.video.
Pick Mux for granular streaming-tier control; choose api.video for simpler upload-and-go flows with built-in analytics.
Vimeo
Vimeo's API combines hosting and a polished player surface; api.video focuses on infrastructure for app builders.
Use Vimeo when the user-facing player and discovery matter; pick api.video for headless video-in-product use cases.
Bunny.net
Bunny.net's CDN and storage often pair with api.video for global delivery of large video catalogs.
Pair them when api.video handles ingest and encoding while Bunny.net handles edge delivery.
Specific to using api.video API through Jentic.
Why is there no official OpenAPI spec for api.video?
api.video does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call api.video via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the api.video API use?
api.video uses HTTP bearer-token authentication. Exchange your API key for a bearer token via POST /auth/api-key, send the token in the Authorization header, and renew it through POST /auth/refresh before it expires. Through Jentic, the API key is held in the credential vault and the token exchange is handled at execution time.
Can I create a live stream with the api.video API?
Yes. POST /live-streams provisions a live stream and returns a stream key, ingest URL, and playback URL. You can then customise the thumbnail with POST /live-streams/{liveStreamId}/thumbnail. The stream is reusable across events.
What are the rate limits for the api.video API?
The spec does not declare numeric rate limits. api.video enforces account-based throttling on uploads and analytics queries. Build retries with backoff on 429 and avoid tight polling on /analytics endpoints — fetch in batches and cache the results.
How do I upload a video through Jentic?
Install the SDK with `pip install jentic`. Search Jentic for `upload a video to api.video`, load the schema for the video upload operation, and execute it with the file and title. Jentic injects the bearer token and returns the new videoId.
Can I get analytics for a specific video?
Yes. GET /analytics/videos/{videoId} returns engagement and watch-time metrics for a specific asset. For per-session events, use /analytics/sessions/{sessionId}/events. Live-stream analytics live under /analytics/live-streams/{liveStreamId}.
/players
List configured custom players
/analytics/videos/{videoId}
Retrieve per-video engagement analytics