> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/vimeo>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/vimeo.mdx>

---

# Vimeo API. Videos, people and collections as JSON.

One video, a profile, a channel, a group, a showcase, a search or a tag feed, in one response shape. Name the id or handle, get JSON.

- 31 routes
- Typed not_found
- 1 credit per request

Social Fetch exposes 31 routes under `/v1/vimeo`. Video routes cover one video, its embed record, its caption and subtitle tracks with parsed cues, its comments, credits and likers, and a browse list. User routes cover a profile, the user's videos, likes, appearances, showcases, channels, groups, followers and following. Channel, group and showcase routes cover the record and its videos, plus subscribers or members where Vimeo lists them. Search covers videos, users, channels and groups, and the catalog routes cover categories, tag videos and On Demand titles.

Every response uses the `{ data, meta }` envelope. Record lookups carry `data.lookupStatus`, so a deleted, private, password-protected or never-existing video, user, channel, group, showcase or On Demand title comes back as a typed `not_found` instead of an error. The embed route adds `restricted`, which means the owner has switched embedding off.

Lists page with an opaque `cursor` or a page number. The user, channel, group and showcase video, member and subscriber lists are deep and take `limit` up to 100 (default 25). The follower list stops at 10,000 rows; following is deep. Each page of a list is its own request.

## What you can get

- A video's title, plain and HTML description, upload and release dates, tags, categories, thumbnails, owner, privacy, embed permission and public counts.
- Embed markup in one call, with `restricted` when the owner has turned embedding off.
- Caption and subtitle tracks with language, kind, source and parsed `cues`, plus `captionsComplete` when a cue file is unavailable.
- Profiles with bio, links, account flags, counts, avatar sizes, social links and last-changed time.
- Channels, groups and showcases with their videos, subscribers or members, and the counts Vimeo reports.
- Video, user, channel and group search plus categories, tag feeds and On Demand titles with prices and genres.

## Vimeo endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Video | GET /v1/vimeo/videos/{videoId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/get) |
| Embed | GET /v1/vimeo/videos/{videoId}/embed | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/embed/get) |
| Captions | GET /v1/vimeo/videos/{videoId}/captions | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/captions/get) |
| Browse | GET /v1/vimeo/videos/browse | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/browse/get) |
| Comments | GET /v1/vimeo/videos/{videoId}/comments | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/comments/get) |
| Credits | GET /v1/vimeo/videos/{videoId}/credits | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/credits/get) |
| Likes | GET /v1/vimeo/videos/{videoId}/likes | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/likes/get) |
| User | GET /v1/vimeo/users/{user} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/get) |
| User videos | GET /v1/vimeo/users/{user}/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/videos/get) |
| User likes | GET /v1/vimeo/users/{user}/likes | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/likes/get) |
| User appearances | GET /v1/vimeo/users/{user}/appearances | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/appearances/get) |
| User showcases | GET /v1/vimeo/users/{user}/showcases | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/showcases/get) |
| User channels | GET /v1/vimeo/users/{user}/channels | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/channels/get) |
| User groups | GET /v1/vimeo/users/{user}/groups | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/groups/get) |
| Followers | GET /v1/vimeo/users/{user}/followers | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/followers/get) |
| Following | GET /v1/vimeo/users/{user}/following | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/user/following/get) |
| Channel | GET /v1/vimeo/channels/{channel} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/channels/channel/get) |
| Channel videos | GET /v1/vimeo/channels/{channel}/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/channels/channel/videos/get) |
| Subscribers | GET /v1/vimeo/channels/{channel}/subscribers | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/channels/channel/subscribers/get) |
| Group | GET /v1/vimeo/groups/{group} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/groups/group/get) |
| Group videos | GET /v1/vimeo/groups/{group}/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/groups/group/videos/get) |
| Members | GET /v1/vimeo/groups/{group}/members | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/groups/group/members/get) |
| Showcase | GET /v1/vimeo/showcases/{showcaseId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/showcases/showcaseid/get) |
| Showcase videos | GET /v1/vimeo/showcases/{showcaseId}/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/showcases/showcaseid/videos/get) |
| Search videos | GET /v1/vimeo/videos/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/search/get) |
| Search users | GET /v1/vimeo/users/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/users/search/get) |
| Search channels | GET /v1/vimeo/channels/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/channels/search/get) |
| Search groups | GET /v1/vimeo/groups/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/groups/search/get) |
| Categories | GET /v1/vimeo/categories | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/categories/get) |
| Tag videos | GET /v1/vimeo/tags/{tag}/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/tags/tag/videos/get) |
| On Demand | GET /v1/vimeo/ondemand/{slug} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/ondemand/slug/get) |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_…`). New accounts get 100 free credits, enough to try every Vimeo route on a few records.
2. **Pick the record and route.** Use `GET /v1/vimeo/videos/76979871` for one video or `GET /v1/vimeo/users/staff/videos` for a profile's newest uploads. Video ids are digits, users accept a handle, a numeric id or `user<id>`, and showcases take an id. Send `x-api-key` on every request.
3. **Page and branch.** Check `data.lookupStatus` before you store a row, keep requesting with `page.nextCursor` while `page.hasMore` is true, and bill from `meta.creditsCharged`.

## Pricing

Each Vimeo route charges one credit per completed request, shown on every endpoint page. Each page of a list is its own request. Credits never expire on pay-as-you-go packs, and `meta.creditsCharged` on every response is the billing source of truth.

## Compared with the official API

Vimeo's developer API is built for apps you register, each with its own permissions. Social Fetch gives you one key and one response shape across video, profile, channel, group, showcase, comment, credit and catalog routes. Lookups return typed `not_found` values, lists share the same `page` block, and a video's embed and captions sit next to the video record instead of in a separate surface.

## FAQ

### Is there a Vimeo API for videos, profiles and collections?

Yes. Social Fetch has 31 Vimeo routes under /v1/vimeo: video, embed, captions, comments, credits and likers; user profiles and their videos, likes, appearances, showcases, channels, groups, followers and following; channel, group and showcase records with their videos, subscribers or members; video, user, channel and group search; categories, tag videos and On Demand titles; and a browse route. Authenticate with your Social Fetch API key in x-api-key.

### How do I identify a video, user, channel, group or showcase?

Videos take a digits-only id such as 76979871. Users take a vanity handle such as staff, a numeric id such as 152184, or user185091330. Channels take a slug such as staffpicks or a numeric id. Groups take a slug such as creativeapps or a numeric id. Showcases take a digits-only album id such as 11959649. On Demand titles take a slug or numeric id.

### What does lookupStatus mean?

found means the record was returned. not_found means the video, user, channel, group, showcase or On Demand title does not exist, is private, is password protected or was removed; Vimeo does not distinguish those cases. HTTP 200 only means the request finished, so branch on data.lookupStatus. The embed route also returns restricted when the owner has switched embedding off.

### How are lists paged?

Every list returns a page block with page, perPage, total, hasMore and nextCursor. Send page.nextCursor back as cursor to continue with the same filters; the cursor stops working if you change them. A page past the last one is an empty page with hasMore false. total is null when no total is available, and Vimeo's totals can drift between pages.

### What are the limits I should know about?

The follower list stops at 10,000 rows and sets `capped: true` when that limit is reached. Following, and the user, channel, group and showcase video, member and subscriber lists, are deep and take `limit` up to 100. Showcase rows carry play counts where available, and `playsAvailable` is false when some counts are missing; the videos are still complete. Captions are available for some videos only: when they are withheld, the route answers 503 `temporarily_unavailable` and is not billed, rather than returning an empty list. A private or unlisted video without its privacy link reads `not_found`.

### What do captions include?

Each track carries id, language, displayLanguage, kind, label, source, default, cuesAvailable and cues. A cue has startSeconds, endSeconds and text. captionsComplete is true only when every track and every cue file is included. The player block adds public player metadata such as owner, storyboard and stream quality labels.

### Can I get comments and credits?

Yes. video.comments.list returns comments newest first with author, text, createdAt, editedAt and replyCount. video.credits.list returns each credited name, role and user, with creditsComplete saying whether every credit Vimeo reports was returned. video.likes.list returns the users who liked a video.

### How much does the Vimeo API cost?

Every Vimeo route charges one credit per completed request, and each page of a list is billed separately. Check meta.creditsCharged on every response. New accounts start with 100 free credits.

### Can I use the Vimeo routes from the SDK, agents or MCP?

Yes. Every Vimeo route has a method on client.vimeo in the TypeScript SDK, a typed MCP tool, and reachability through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.

## Related

- [Vimeo Video API](https://www.socialfetch.dev/platforms/vimeo/videos-videoid): One video's title, tags, owner, privacy and counts (`GET /v1/vimeo/videos/{videoId}`).
- [Vimeo User API](https://www.socialfetch.dev/platforms/vimeo/users-user): A profile with bio, links, counts and followers (`GET /v1/vimeo/users/{user}`).
- [Vimeo Search API](https://www.socialfetch.dev/platforms/vimeo/videos-search): Video search with sort, licence and trending filters (`GET /v1/vimeo/videos/search`).
- [Vimeo Captions API](https://www.socialfetch.dev/platforms/vimeo/videos-videoid-captions): Caption and subtitle tracks with parsed cues (`GET /v1/vimeo/videos/{videoId}/captions`).
- [Ask in plain English](https://www.socialfetch.dev/ask): Route a natural-language Vimeo question to the matching operation.
- [Hosted MCP](https://www.socialfetch.dev/mcp): Call Vimeo tools from Cursor or Claude with the same credit metering as REST.
