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.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the api.video, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
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
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 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.
Configure a custom player and attach a logo for branded playback
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.
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