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

---

# Vimeo User Videos API

A profile's uploads, newest first, as full video records you can list, filter or embed.

`GET /v1/vimeo/users/{user}/videos` returns `data.videos`, the user's uploads newest first. Each item is the video record from the video route: id, url, title, description, dates, duration, dimensions, orientation, tags, categories, privacy, embed permission, thumbnails, owner and stats. Some accounts hide play counts, so `stats.plays` is null on those rows and a `sort=plays` order has no visible effect. `data.user` repeats the requested user and `data.page` carries the page block.

The list is deep: `page` accepts 1 to 20,000 and `limit` accepts 1 to 100 (default 25). Continue with `page.nextCursor` while `page.hasMore` is true. A user that does not exist reads `lookupStatus: not_found`; a user with no uploads reads `found` with an empty array.

## Request

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

## FAQ

### What is in each row?

A full video record: id, url, title, description, uploadedAt, modifiedAt, releasedAt, durationSeconds, width, height, orientation, tags, categories, privacy, embedPermission, thumbnails, owner and stats.

### How many pages are available?

Deep paging: page accepts 1 to 20,000 and limit accepts 1 to 100 (default 25). Continue with page.nextCursor while page.hasMore is true.

### How do I tell a missing user from an empty profile?

lookupStatus is not_found when the user does not exist, is private or was removed. It is found with an empty videos array when the user exists but has no public uploads.

### How many credits does a page 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.
