API Reference Card
| Detail | Value |
|---|---|
| Base URL | https://api.vimeo.com |
| Auth | OAuth 2.0 Bearer token |
| Rate limits | ~100 req/min (free), ~600 req/10 min (paid plans) |
| Mavera base | https://app.mavera.io/api/v1 |
| Mavera auth | Authorization: Bearer mvra_live_... |
All examples use two environment variables:
VIMEO_ACCESS_TOKEN and MAVERA_API_KEY. The Vimeo token requires the public, private, video_files, and stats scopes. Generate one at Vimeo Developer → My Apps. Store both keys in your secrets manager and never expose them client-side.Prerequisites
Vimeo app
Create an app at developer.vimeo.com/apps. Request the scopes:
public, private, video_files, stats, upload.Access token
Generate a personal access token under your app’s Authentication tab, or implement the full OAuth 2.0 flow for multi-user access.
Mavera API key
Get your key from Mavera dashboard.
Jobs
| # | Job | Vimeo Data | Mavera Surface | Output |
|---|---|---|---|---|
| 1 | Marketing Video Library Analysis | GET /me/videos (full library) | Video Analysis | Scored catalog by emotional impact, message clarity, behavioral effectiveness |
| 2 | Pre-Publish Creative Testing | Upload draft (private) → GET /videos/ | Video Analysis + Focus Groups | Quality gate with improvement feedback |
| 3 | Video Engagement × Mavera Scoring Correlation | GET /me/videos (stats: plays, finishes, engagement) | Video Analysis + Mave Chat | Which Mavera metric best predicts real engagement |
| 4 | Caption-Based Content Extraction | GET /videos//texttracks | Chat + Generate | Blog, social, email repurposes from transcripts |
| 5 | Webinar Series Intelligence | GET /me/albums//videos (series metadata) | Video Analysis + Mave Chat | Cross-session engagement trends and drop-off diagnosis |
Rate Limits & Production Notes
| Vimeo Endpoint | Rate Cost | Strategy |
|---|---|---|
GET /me/videos | 1 req | Paginate at 100/page; cache for 1 hour |
GET /videos/{id} | 1 req | Batch metadata requests where possible |
GET /videos/{id}/texttracks | 1 req | Cache transcripts locally — they rarely change |
GET /me/albums/{id}/videos | 1 req | Single call covers up to 50 videos |
PATCH /videos/{id} | 1 req | Used for updating privacy settings post-review |
| Concern | Recommendation |
|---|---|
| Token scopes | Request minimum scopes needed: public + private for read, add upload only for Job 2, add stats for Jobs 1/3/5 |
| Rate limit headers | Read X-RateLimit-Remaining before each request. If below 10, sleep until X-RateLimit-Reset |
| Video privacy | Draft testing (Job 2) should use privacy.view: "nobody" to prevent accidental public exposure |
| Webhook integration | Use Vimeo webhooks (video.upload.complete) to trigger Job 2 automatically on upload |
| Transcript caching | Cache downloaded text tracks to avoid re-downloading. Use the modified_time field to invalidate cache |
| Mavera credits | Video Analysis consumes more credits than Chat. Monitor at Dashboard |
What’s Next
All Integrations
50+ API integrations with full code
Vimeo API Reference
Official Vimeo API documentation
Video Analysis
Full reference for POST /api/v1/video-analysis
Focus Groups API
Full reference for POST /api/v1/focus-groups
Mave Agent
Full reference for POST /api/v1/mave/chat
Generate API
Full reference for POST /api/v1/generate