# Vimeo API for Developers: Uploads, Scopes, Player SDK and Plan Gates

> What developers can build on the Vimeo API and on which plan: OAuth scopes, tus uploads and quotas, file links, the Player SDK, Enterprise APIs and the terms.

_Source: https://professionalstoolkit.com/articles/vimeo-for-developers — The Professional's Toolkit · updated October 2026_

---


**300 GB** — Largest single file a Vimeo API upload can carry, up to 24 hours long; the cap is the same on every plan, but your storage or quota applies first, and Free needs upload approval.



- **API 3.4** — REST, OAuth 2.0, four grant types
- **Standard+** — needed for the video_files scope
- **10 a minute** — requests per AI API endpoint


## What a developer can build on Vimeo, and on which plan

Vimeo gives developers two separate tools. The first is a REST API, now at version 3.4, that uploads videos, edits metadata, sets privacy, builds folders and showcases, manages teams and pulls a few kinds of analytics. The second is the Player SDK, a JavaScript library that controls an embedded player and listens to what viewers do in it. **The API is free to call on every plan**, Free included, but several of its most useful parts are gated by the account it acts on. Direct file links need Standard or higher, the AI and full Analytics APIs are Enterprise only, and the Live and webinar APIs need Enterprise with the Events add-on.

A side project can start on a Free account, yet uploads there need Vimeo's approval first. A product that plays files in its own player needs Standard, listed at $25 per seat a month billed annually or $41 billed monthly, with 5 seats included, so confirm the total at checkout. Live streams themselves start on Advanced, at $75 per seat a month billed annually, but the Live and AI APIs mean an Enterprise contract, which has no published price. We read the developer docs and the Developer Addendum; we did not ship an app.

| What you want to build | Free | Starter | Standard | Advanced | Enterprise |
| --- | --- | --- | --- | --- | --- |
| Call the REST API and read public data | Yes | Yes | Yes | Yes | Yes |
| Upload through the API | After approval | Yes | Yes | Yes | Yes |
| Direct file links (video_files scope) | No | No | Yes | Yes | Yes |
| Embed presets with your logo | No | No | Yes | Yes | Not listed |
| Live API and webinar API | No | No | No | No | With Events |
| AI API and full Analytics API | No | No | No | No | Yes |

## Getting in: apps, tokens and scopes

Every developer registers an app on the My Apps page and accepts the Developer Addendum and the Terms of Service. For your own data, the quickest route is a **personal access token** generated on that page. Copy it right away, because a lost token string cannot be recovered. Every request needs a token. A missing or invalid one returns HTTP 401, and the upload guide names error code 8002 for an unrecognized token.

### Four grant types, four use cases

Authentication runs on OAuth 2.0 with four grant types [1]. Client credentials is the simplest, and it reaches public data only, even if you ask for more scopes. Authorization code is the normal flow for an app that acts for other Vimeo members, and you need a separate token for each account whose private data you touch. The implicit grant returns a token that lives one hour. The device code grant serves browserless or limited-input devices, and its user code expires after 3600 seconds. Basic authentication still works, but Vimeo does not recommend it, since it identifies the app rather than the user and returns no metadata.

### The scopes that quietly check the plan

Scopes decide what a token may do, from public and private to upload, video_files and the newer ai scope. Two of them carry a plan check. **The video_files scope only works for members on Standard or higher**, so an app that hands out file links will fail for Free and Starter users. The ai scope is required for every AI endpoint, and those are Enterprise only. Token handling has its own rules. Tokens in a query string work only with the public scope, because of leak risk. Vimeo deletes tokens that look inactive, and staff may revoke an exposed secret without notice.


> 💡 **Set privacy in the upload call:** Send privacy.view, privacy.embed and privacy.download in the same request that creates the video. That way nothing sits public while your code catches up.


## Uploading at scale without losing a file

Uploads all begin the same way: a POST request that creates a video placeholder in the account. The guide warns that this placeholder stays even if no file ever arrives, so a failed job can leave empty entries behind. After that you choose one of three methods. **Resumable tus uploads are what Vimeo recommends for just about everyone**, because a broken transfer can resume and your code can poll progress. With chunking libraries Vimeo suggests chunks of 128 to 512 MB. Smaller ones can be slower. Each file can be up to 300 GB and 24 hours long [2].

### Form uploads, pull uploads and the traps in each

A form-based POST suits a simple browser upload. It cannot resume, so if it fails the user must send the whole file again. Pull uploads hand Vimeo a URL that must resolve straight to a video file and stay under 16,384 characters, and CDN links must be public and unsigned, or presigned with an expiry of six hours or more. Point it at something that is not a video and you still get HTTP 201; the failure shows up later as uploading_error or transcoding_error in the video status. Check that status before you mark a job done.

### Quotas, approval and the Free account

Paid plans get API upload access automatically. Free accounts need an approved developer app and a support ticket, reviewed by hand in up to five business days. Uploads then count against storage: 2TB on Starter, 4TB on Standard and 7TB on Advanced, while Free counts only embeddable and non-public videos against its 3 GB. Older accounts differ. Starter, Standard and Advanced accounts created before June 17, 2024 get a set number of videos instead, and some legacy accounts keep weekly quotas while Vimeo migrates them. The upload guide still lists those quotas (500 MB a week on Free, 5 GB on Starter, 20 GB on Standard), so check your account's model before a large import.

When a limit runs out, the API answers with HTTP 403 and an error code (4101, 4102 or 4104), so treat those codes as a storage problem, not an authentication one. Replacing a source file later keeps the video's settings, URL and thumbnail, which matters for libraries that are embedded across many pages. The 300GB and 24-hour limits per file apply on every plan.


> ⚠ **Downgrades break file links:** Downgrading to Free or Starter stops direct file links shared or embedded in other players; they return on Standard or higher. Keep a fallback to the standard embed.


## File links, downloads and your own player

For apps that want the raw files, the API returns three kinds of links, and **their lifetimes differ**. Play links expire after 24 hours. Download links are valid for 24 hours too. Files links do not expire at all, which sounds convenient, yet Vimeo advises against using them in third-party players. A token needs the public, private and video_files scopes to read any of them, which brings back the Standard gate. HLS files of uploaded videos can be downloaded once optimization and transcoding finish; live videos are excluded.

Downgrading to Free or Starter stops direct file links you have shared or embedded in other players, and they return on a move back to Standard or higher. Vimeo's page on lapsed legacy plans adds that API apps and tokens stay valid, while file links and domain-level embed privacy set through the API stop working. An app that quietly depends on file links will break the day a customer downgrades. Build a fallback to the standard embed, and test for it. The API also cannot authenticate past a video's password to allow playback, so a password-protected video stays locked for the viewers your app serves. Expect that wall.

## Shaping the player: embed presets, oEmbed and the Player SDK

Vimeo recommends oEmbed over building an iframe by hand. One catch applies to private videos: on a domain-restricted video, oEmbed returns truncated data unless the allowed domain is sent in the request header. Embed privacy itself is a per-video domain allowlist you can add to, list and remove from in the API. **Embed presets** are reusable sets of player appearance and behavior settings for Standard and Advanced members, and they can carry your own logo. The API can attach a preset to a video or remove one from a folder, but only the account owner can create presets.

### What the Player SDK can and cannot do

The Player SDK is completely separate from the REST API. You load it from player.vimeo.com or install it from npm as @vimeo/player. It can change autoplay and looping, set player size and control color, and run your functions on playback events such as play, pause, ended and timeupdate. Two limits catch people. **The SDK does not apply to live events**, and unlisted videos cannot be referenced by ID; you need the full URL with its h parameter. For player settings by plan, see our [Vimeo embed guide](/articles/vimeo-embed).

On Enterprise accounts with interactive video, hotspot and button clicks arrive as Player SDK events, along with any custom payload values set on them. Vimeo's help article shows the pattern for a shop: the player calls the Shopify Ajax Cart API, so a viewer adds a product to the cart without leaving the video. That is a real commerce hook.

## Folders, showcases and teams under their old names

The library side of the API has one quirk that confuses every newcomer. Folders used to be called projects, and showcases used to be called albums. **The endpoint paths still use the old names**, so code that creates a folder calls a project endpoint, and code that builds a showcase calls an album endpoint. Search the reference for both words.

Through the API you can create folders, add videos and add team members, depending on the folder owner's plan. On Free and Starter a folder is visible to the owner only. On Standard, Advanced and Enterprise the owner or a team administrator can invite members who add and manage videos. Showcases are curated collections for public or private sharing with custom logos and thumbnails, and the API can fill them from folder contents and events.

## Analytics, and why you will be polling

Analytics through the API is thinner than the marketing pages suggest. The public reference lists one essential analytics method, bandwidth for the user. **The full Analytics API is an Enterprise feature that you request from support**, sending the name and client ID of your API app. Once enabled it carries the data in the analytics reports, including views, impressions, finishes, downloads and unique viewers. Engagement analytics such as viewer retention are not in the public API at all; they export as CSV only.

Push notifications are a muddier picture. One Vimeo product page says webhooks fire when an upload completes or a transcode is ready. The help center's developer article says the opposite: the API has no webhook or push notification for transcode completion, and developers must poll. Our advice is plain. Plan to poll, and keep each request lean. Vimeo OTT is different, with 24 documented webhook topics, but it runs on its own API.

## The Enterprise-only APIs: live, webinars and AI

The Live API is available only on Enterprise with the Events feature added, and even then you ask Vimeo support to switch it on. It creates live events, returns an HLS or M3U8 playback link for recurring events, and manages destinations, scenes, graphics and embed domains. One-time events are being deprecated, so build around recurring ones. Webinar registrations can flow in through the API too, but bulk API imports do not send confirmation emails. Our [live streaming guide](/articles/vimeo-live-streaming) covers the plan side.

The AI API launched for Enterprise on April 24, 2026, with nine endpoints: POST and GET for transcription, subtitle translation, audio dubbing and AskAI, plus one for supported languages [3]. It needs only a token with the ai scope. Each endpoint allows 10 requests a minute, about 600 videos an hour, and there is no bulk endpoint. Calls draw on the same AI credit pool and rates as the web app.

Vimeo also runs an MCP server in public beta, which connects an account to AI assistants such as Claude. Through it an assistant can search videos, pull analytics, manage showcases, read comments and fetch transcripts, but it cannot delete videos. It is still a beta. The help article gates it with a legacy plan name, so check what your current plan allows.

## Rate limits and the Developer Addendum

Vimeo publishes no general rate figure, only the penalty. Going over returns a 429 error and blocks requests for up to a minute, and abusive apps can be blocked outright. The addendum tells you to follow the limits and lets Vimeo adjust them. Higher AI allowances go through your account manager, and Vimeo says the fields parameter also earns a higher general limit.

The addendum was renamed from the API License Addendum on March 9, 2026, and widened to cover MCP servers, SDKs, CLI tools, event streams and webhooks [4]. Its rules shape products, not only code. **You may not use Vimeo data to train or improve AI models.** You may not show ads in the Vimeo player or charge end users for an app built on the API without written approval.

Apps that touch private or unlisted videos or account analytics fall under Advanced Access, with extra consent rules and sign-in only through approved methods such as OAuth. Credentials must stay out of public repositories and client-side code. Vimeo can also monitor API use, change any interface and end access at any time. Treat that last clause as a design input.


> 💡 **Read the Developer Addendum first:** It bans ads in the Vimeo player and charging end users without written approval, and forbids training AI on Vimeo data. Check your business model against it before you write code.


## Deprecated pieces to avoid

Several older tools still turn up in tutorials. The Advanced API is fully deprecated, and its requests fail. The Simple API is unmaintained, with oEmbed as its replacement. The PUT streaming upload ended with API 3.4 in early 2018 and was replaced by tus. Vimeo also warns that its internal, undocumented APIs can change without notice, and that heavy scraping can get a server's IP banned.

The On Demand API is the trap with a date on it. The reference still lists pages, genres, promotions, seasons, purchases and rentals with no shutdown notice, yet Vimeo On Demand stopped new subscriptions and renewals on 21 September 2026, new On Demand pages can no longer be created, and the service shuts down on 20 November 2026. Do not build anything new on it. Vimeo points sellers to OTT, which has its own API.

## How teams wire Vimeo into real products

Vimeo's customer stories show the API in production. Me and My Golf reads thumbnails, captions and download URLs through the API, and with autoplay and thumbnail preloading it cut the gap between videos by 80 percent, to nearly one second. SCAD moved 500K videos with Vimeo engineers through an API integration in two quarters. Welcome to the Jungle now uploads 700 to 1,000+ videos a month.

Support has limits worth knowing. Vimeo only troubleshoots problems you can reproduce with its official libraries for PHP, Python and Node.js, or with curl, and it offers no developers for hire. The Try it out button on the developer site acts on real account data, so an edit or delete test changes your library. Use a spare account for experiments.


## FAQ

**Is the Vimeo API free?**

Yes. The API is free to access on every plan, Free included, though some features need a paid account, the AI and full Analytics APIs are only on Enterprise, and the Live and webinar APIs need Enterprise with the Events add-on.

**Which Vimeo plan do I need for direct video file links?**

Standard or higher. The video_files scope only works for members on Standard and above, and direct file links need the public, private and video_files scopes.

**Can I upload to Vimeo through the API on a Free account?**

Only after approval. Free accounts need an approved developer app and a support ticket, reviewed by hand in up to five business days. Uploads then count against the Free plan's 3 GB for embeddable and non-public videos; accounts created before June 17, 2024 may have different limits, and the upload guide still lists an older weekly quota.

**Does the Vimeo API have webhooks?**

Vimeo's pages disagree: a product page says webhooks fire on upload complete and transcode ready, but the help center's developer article says the API has no webhook or push notification for transcode completion and developers must poll. Plan to poll. Vimeo OTT has its own API with documented webhooks.

**What are the Vimeo API rate limits?**

Vimeo does not publish a general figure; going over returns a 429 error and blocks requests for up to a minute. Each AI API endpoint is limited to 10 requests a minute.

**Can I use the Vimeo API to sell videos through On Demand?**

No longer. Vimeo On Demand stopped new subscriptions and renewals on 21 September 2026, new On Demand pages can no longer be created, and the service shuts down on 20 November 2026, so do not build new work on the On Demand API.


## The bottom line

Vimeo's API is a solid way to upload, organize and embed video, and calling it costs nothing extra. The plan underneath decides the rest. Start on Starter if you only need uploads and embeds, move to Standard the moment your product needs file links or presets, and talk to Enterprise sales only for the AI and full Analytics APIs, or for the Live and webinar APIs with the Events add-on. Use tus, poll instead of waiting for webhooks, skip the On Demand API, and read the Developer Addendum before you design a business model. Full plan prices are in our [Vimeo pricing breakdown](/articles/vimeo-pricing).



## Sources

[1] developer( ); Join Log In The API The Player The MCP Server Blog Contact Sales Create an app Home API Working with Authentication Working wi — https://developer.vimeo.com/api/authentication (2026-10)
[2] developer( ); Join Log In The API The Player The MCP Server Blog Contact Sales Create an app Home API Working with Video Uploads Working wit — https://developer.vimeo.com/api/upload/videos (2026-10)
[3] Vimeo Help: How to use the Vimeo AI API — https://help.vimeo.com/hc/en-us/articles/45762682270097-How-to-use-the-Vimeo-AI-API (2026-10)
[4] Developer Addendum — https://vimeo.com/legal/service-terms/api (2026-10)
[5] Vimeo pricing page — https://vimeo.com/upgrade-plan
[6] Vimeo Help Center — https://help.vimeo.com/hc/en-us/articles/12425432033937-About-Vimeo-plans
[7] Vimeo Terms of Service — https://vimeo.com/legal
[8] G2, Vimeo reviews — https://www.g2.com/products/vimeo/reviews

