canonical: https://jentic.com/apis/vimeo.com/vimeo

# Vimeo API

Host, manage, and distribute video content through 328 endpoints covering the full Vimeo platform - videos, channels, groups, albums, users, on-demand content, and analytics. The API supports OAuth 2.0 with granular scopes for upload, edit, delete, and privacy control. Videos are automatically transcoded to multiple renditions with adaptive streaming, and the platform provides embeddable player customization, team collaboration, and commerce features through Vimeo On Demand.

## For AI agents

Upload, manage, and distribute videos on Vimeo with full control over privacy settings, embed configurations, channels, albums, and on-demand commerce. Covers 328 endpoints across the Vimeo platform.

## Scope

Does not handle live transcoding infrastructure, CDN configuration, or viewer-level QoE metrics - use for video hosting, social distribution, and on-demand commerce only.

## Capabilities

- Upload videos with resumable tus protocol and track transcoding progress through status callbacks
- Configure per-video privacy settings including password protection, domain-level embed restrictions, and unlisted access
- Organize content into channels, albums, and groups with membership and moderation controls
- Sell video content through Vimeo On Demand with promotional codes, region-based pricing, and purchase tracking
- Customize embedded player appearance including colors, logos, buttons, and playback behavior per video
- Search and filter videos across the Vimeo catalog by category, duration, upload date, and content rating

## Use cases

### AI Agent Video Distribution Automation

AI agents automate video publishing workflows through Jentic - uploading content, setting privacy and embed restrictions, organizing into channels or albums, and distributing embed codes. The agent searches for the relevant operation, receives the OAuth scope requirements and request schema, and executes the full publish flow without manual dashboard interaction. Vimeo's 12 OAuth scopes provide fine-grained permission control for each action.

Example prompt: Upload a video using the tus resumable protocol via POST /me/videos, set privacy to 'password' with a specified password, then add the video to an existing album via PUT /me/albums/{album_id}/videos/{video_id}

### Video Content Organization

Structure large video libraries into channels, albums, and groups with per-item membership control. Channels support moderation workflows where admins approve submissions. Albums enable curated collections with custom sorting. Groups provide community spaces where multiple users contribute and discuss video content. Each organizational unit has independent privacy and access settings.

Example prompt: Create a new channel via POST /channels with name and privacy settings, then add three videos to it via PUT /channels/{channel_id}/videos/{video_id}

### Vimeo On Demand Commerce

Sell video content with region-based pricing, rental and purchase options, and promotional code distribution through the On Demand endpoints. Creators set prices per region, define rental windows, and track purchases and revenue. Promotional codes offer discounted access for marketing campaigns. The API exposes customer purchase history and active subscription status for access control in external applications.

Example prompt: Retrieve all On Demand pages for the authenticated user via GET /me/ondemand/pages, then list purchases for a specific page via GET /ondemand/pages/{ondemand_id}/purchases

### Embed and Player Customization

Generate embeddable video players with custom appearance and behavior settings per video or account-wide. Control player colors, logo display, playback speed options, social sharing buttons, and end-screen behavior through the API. Domain-level embed restrictions ensure videos only play on authorized websites, preventing unauthorized redistribution while maintaining branded playback experiences.

Example prompt: Update the embed settings for a video via PATCH /videos/{video_id} to set custom player colors and restrict embedding to two specific domains

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /me/videos | Create a video upload ticket |
| GET | /videos/{video_id} | Get video metadata and status |
| PATCH | /videos/{video_id} | Update video metadata and privacy |
| PUT | /me/albums/{album_id}/videos/{video_id} | Add a video to an album |
| POST | /channels | Create a new channel |
| GET | /categories/{category}/videos | List videos in a category |
| GET | /me/videos | List authenticated user's videos |
| DELETE | /videos/{video_id} | Delete a video permanently |

## Key resources

- **Videos** — Upload, transcode, manage metadata, privacy, and text tracks for video content
- **Channels** — Create topic-based channels with moderated video submissions and subscriber management
- **Albums** — Curate video collections with custom ordering and per-album privacy settings
- **Users** — Manage user profiles, followers, liked videos, and account settings
- **On Demand** — Sell and rent video content with region pricing, promo codes, and purchase tracking
- **Categories** — Browse and filter the Vimeo video catalog by content categories and genres

## Why Jentic

- **Setup:** Wiring the Vimeo API by hand means running its OAuth 2.0 authorization-code flow, mapping the create, edit, delete, and video scopes to each call, and refreshing bearer tokens across its large endpoint surface yourself. Through Jentic you install once, import the Vimeo API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Vimeo puts the video id in the URL path (/videos/{video_id}), so a rule can pin your agent to one video and the operations around it. You choose the operations it may call, so a destructive one like deleting a video is not included unless you add it.
- **Credential handling:** Your Vimeo OAuth token is stored once, encrypted, by your own Jentic One instance and injected at execution time. The client secret and refresh token never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upload a video with privacy settings' or 'add a video to an album', and Jentic returns the matching Vimeo operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Mux API** — Infrastructure-focused video API with detailed viewer analytics but without social features or embedded player customization
- **api.video** — Developer-first video hosting API with simpler surface area and built-in player
- **Cloudinary Upload API** — Image and media asset management for thumbnails, poster frames, and promotional imagery alongside Vimeo video content

## FAQ

### What authentication does the Vimeo API use?

The Vimeo API uses OAuth 2.0 with both authorization code and client credentials flows. It defines 12 scopes (create, delete, edit, email, interact, private, promo_codes, public, purchase, purchased, stats, upload, video_files) for granular permission control. Bearer tokens are passed in the Authorization header. Through Jentic, OAuth tokens are managed in your Jentic One instance - agents receive scoped bearer tokens without handling the OAuth flow.

### Can I upload videos using the Vimeo API?

Yes. The Vimeo API supports video uploads via the tus resumable upload protocol through POST /me/videos. You first create an upload ticket specifying the file size, then upload the binary data to the returned upload link in chunks. The API tracks transcode progress and notifies when the video is ready for playback. The 'upload' OAuth scope is required.

### What are the rate limits for the Vimeo API?

Vimeo applies rate limits that vary by authentication type and plan tier. Authenticated requests with OAuth tokens get higher limits than unauthenticated client-credential requests. The API returns X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers with every response to help you track usage.

### How do I manage video privacy through the Vimeo API?

Use PATCH /videos/{video_id} with the privacy object to set view access (anybody, nobody, password, disable, unlisted), embed restrictions (public, private, whitelist), and download permissions. For domain-restricted embeds, use the privacy.embed field set to 'whitelist' and configure allowed domains via the video's domain whitelist endpoint.

### How do I upload a video through Jentic with an AI agent?

Install the Jentic SDK with pip install jentic, then search for 'upload video to vimeo'. Jentic returns the POST /me/videos operation with the tus upload flow schema and required OAuth scope (upload). The agent creates the upload ticket, posts the file, and monitors transcode status - Jentic handles OAuth token injection so credentials stay out of the agent's context.

### Can I organize videos into channels and albums?

Yes. Create channels via POST /channels with name, description, and privacy settings, then add videos with PUT /channels/{channel_id}/videos/{video_id}. Albums work similarly via POST /me/albums and PUT /me/albums/{album_id}/videos/{video_id}. Both support custom video ordering and independent privacy settings separate from individual video privacy.

### Can I limit what my agent is allowed to do with the Vimeo API?

Yes. Because you run your own self-hosted Jentic One instance, your rules decide which Vimeo operations and credentials the agent may use. Vimeo puts the video id in the URL path (for example /videos/{video_id}), so you can pin the agent to a single video and the operations around it, such as GET /videos/{video_id} to read metadata or PATCH /videos/{video_id} to update privacy. You pick the exact operations it may call, so a destructive one like DELETE /videos/{video_id} is left out unless you explicitly add it.
