Create a Vimeo app and obtain an access token with the upload scope via OAuth 2.0 (Authorization Code or Personal Access Token for server use).
Initiate an upload by sending a POST request to the user's videos endpoint, specifying upload.approach=tus and upload.size equal to the file size in bytes in the JSON body along with optional video metadata.
From the response, extract the upload.upload_link URL.
Use a tus-compatible client library to upload the video file to the upload_link URL in chunks, supporting resumption if interrupted.
After the tus upload completes, the video enters Vimeo's transcoding pipeline; poll the video resource or use webhooks to detect when it is available.
Set privacy, title, description, and other metadata by sending a PATCH request to the video URI returned during creation.
Known gotchas
The upload link is time-limited; begin the tus upload promptly after receiving it and do not let a session idle beyond the expiry window.
Free Vimeo accounts have weekly upload limits (duration and storage); API uploads count against these same limits.
Vimeo requires the Content-Type for tus PATCH requests to be application/offset+octet-stream; deviating from this causes upload failures.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp