> **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/videos-videoid-captions>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/vimeo/videos-videoid-captions.mdx>

---

# Vimeo Captions API

Caption and subtitle tracks with timing and text, plus public player facts such as owner, storyboard and quality labels.

`GET /v1/vimeo/videos/{videoId}/captions` returns `data.captions`, an array of tracks. Each track has `id`, `language`, `displayLanguage`, `kind` (`captions` or `subtitles`), `label`, `source` (`ai_generated` or `user_uploaded`), `default`, `cuesAvailable` and `cues`. Each cue has `startSeconds`, `endSeconds` and `text`.

`captionsComplete` is true only when every track and every cue file is included. When captions are withheld for a video, the route answers 503 `temporarily_unavailable` and is not billed; it never reports an empty caption list as if the video had none. A private or unlisted video without its privacy link reads `lookupStatus: not_found`. An optional `language` query keeps only tracks in that language, for example `en` or `en-x-autogen`; matching is case-insensitive, and `en` also matches `en-x-autogen`. When the caption data is available, `data.player` adds public player metadata such as `title`, `durationSeconds`, `owner`, `storyboard` and `qualities` with labels and frame rates. Signed stream and caption URLs are never returned.

## Request

- **Endpoint:** `GET /v1/vimeo/videos/{videoId}/captions`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by video id
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/vimeo/videos/videoid/captions/get)
- **Platform page:** [/platforms/vimeo](https://www.socialfetch.dev/platforms/vimeo)

## FAQ

### What does a track include?

id, language, displayLanguage, kind, label, source, default, cuesAvailable and cues. Each cue has startSeconds, endSeconds and text. Use language to filter, for example language=en; en matches en-x-autogen too.

### What does captionsComplete mean?

true means every track and every cue file is included. false means at least one cue file is unavailable; the tracks are still listed with cuesAvailable and cues set to describe what is known.

### Are signed stream or caption URLs returned?

No. The response includes public player metadata only, such as owner, storyboard and quality labels and frame rates. Signed URLs are not exposed.

### How many credits does a captions lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
