> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mavera.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Vimeo

> 5 production-ready jobs — marketing video library analysis, pre-publish creative testing, engagement × Mavera scoring correlation, caption-based content extraction, and webinar series intelligence

Vimeo's API gives you direct access to your entire video library — metadata, engagement stats, text tracks, and private uploads — that most teams only browse through the dashboard. These five jobs pull that data through Mavera's surfaces (Video Analysis, Focus Groups, Mave Agent, Chat, Generate) to score your creative catalog by emotional impact, gate publishing with quality thresholds, correlate Mavera scores against real engagement, extract repurposable content from captions, and track audience retention across webinar series.

***

## 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_...`               |

<Info>
  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](https://developer.vimeo.com/apps). Store both keys in your secrets manager and never expose them client-side.
</Info>

***

## Prerequisites

<Steps>
  <Step title="Vimeo app">Create an app at [developer.vimeo.com/apps](https://developer.vimeo.com/apps). Request the scopes: `public`, `private`, `video_files`, `stats`, `upload`.</Step>
  <Step title="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.</Step>
  <Step title="Mavera API key">Get your key from [Mavera dashboard](https://app.mavera.io/settings/api-keys).</Step>

  <Step title="Environment variables">
    ```bash theme={"dark"}
    export VIMEO_ACCESS_TOKEN="your_vimeo_token"
    export MAVERA_API_KEY="mvra_live_xxxxx"
    ```
  </Step>
</Steps>

***

## Jobs

| # | Job                                                                                                 | Vimeo Data                                          | Mavera Surface                | Output                                                                        |
| - | --------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ----------------------------- | ----------------------------------------------------------------------------- |
| 1 | [Marketing Video Library Analysis](/integrations/vimeo/video-library-analysis)                      | GET /me/videos (full library)                       | Video Analysis                | Scored catalog by emotional impact, message clarity, behavioral effectiveness |
| 2 | [Pre-Publish Creative Testing](/integrations/vimeo/pre-publish-testing)                             | Upload draft (private) → GET /videos/{id}           | Video Analysis + Focus Groups | Quality gate with improvement feedback                                        |
| 3 | [Video Engagement × Mavera Scoring Correlation](/integrations/vimeo/engagement-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](/integrations/vimeo/caption-content-extraction)                  | GET /videos/{id}/texttracks                         | Chat + Generate               | Blog, social, email repurposes from transcripts                               |
| 5 | [Webinar Series Intelligence](/integrations/vimeo/webinar-intelligence)                             | GET /me/albums/{id}/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 |

<Warning>
  Vimeo enforces rate limits per access token: **\~100 requests/minute** on free plans, **\~600 requests/10 minutes** on Pro/Business/Premium. The API returns `429 Too Many Requests` with a `Retry-After` header (in seconds). Always respect this header. For large library scans (500+ videos), implement exponential backoff and spread requests across 10-minute windows. Monitor your rate limit headers: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset`.
</Warning>

**Production checklist:**

| 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](https://app.mavera.io/settings/usage)          |

***

## What's Next

<CardGroup cols={2}>
  <Card title="All Integrations" icon="plug" href="/integrations">
    50+ API integrations with full code
  </Card>

  <Card title="Vimeo API Reference" icon="video" href="https://developer.vimeo.com/api/reference">
    Official Vimeo API documentation
  </Card>

  <Card title="Video Analysis" icon="chart-bar" href="/api-reference/video-analysis">
    Full reference for POST /api/v1/video-analysis
  </Card>

  <Card title="Focus Groups API" icon="comments" href="/api-reference/focus-groups">
    Full reference for POST /api/v1/focus-groups
  </Card>

  <Card title="Mave Agent" icon="brain" href="/api-reference/mave">
    Full reference for POST /api/v1/mave/chat
  </Card>

  <Card title="Generate API" icon="wand-magic-sparkles" href="/api-reference/generate">
    Full reference for POST /api/v1/generate
  </Card>
</CardGroup>
