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

# Wistia

> 5 production-ready jobs — viewer-level persona mapping, heatmap-informed creative optimization, CTA performance focus groups, video transcript brand voice creation, and lead-qualified viewer follow-up

Wistia's Data API exposes viewer-level analytics that most video platforms hide — individual visitor engagement, per-second heatmaps, CTA click-through rates, and viewing history tied to email addresses. These five jobs pull that data through Mavera's surfaces (Personas, Mave Agent, Focus Groups, Brand Voice, Generate) to map viewers to psychographic personas, diagnose drop-off points with creative fixes, test CTA variations with synthetic panels, build a brand voice profile from spoken content, and generate personalized follow-up emails for your highest-intent viewers.

***

## API Reference Card

| Detail          | Value                                 |
| --------------- | ------------------------------------- |
| **Base URL**    | `https://api.wistia.com`              |
| **Auth**        | Bearer Token or OAuth 2.0             |
| **Rate limits** | 600 requests/minute                   |
| **Mavera base** | `https://app.mavera.io/api/v1`        |
| **Mavera auth** | `Authorization: Bearer mvra_live_...` |

<Info>
  All examples use two environment variables: `WISTIA_API_TOKEN` and `MAVERA_API_KEY`. The Wistia token is an API access token generated under **Account → Settings → API Access**. It provides full read access to stats, media, and visitor data. Store both keys in your secrets manager. Wistia's 600 req/min limit is generous — you're unlikely to hit it unless you're pulling stats for thousands of videos in a tight loop.
</Info>

***

## Prerequisites

<Steps>
  <Step title="Wistia account">You need a Wistia account with at least one project containing videos with viewer analytics enabled.</Step>
  <Step title="API token">Generate a token at **Account → Settings → API Access**. Select read-all permissions for stats and media 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 WISTIA_API_TOKEN="your_wistia_token"
    export MAVERA_API_KEY="mvra_live_xxxxx"
    ```
  </Step>
</Steps>

***

## Jobs

| # | Job                                                                                            | Wistia Data                                                   | Mavera Surface  | Output                                                |
| - | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | --------------- | ----------------------------------------------------- |
| 1 | [Viewer-Level Persona Mapping](/integrations/wistia/viewer-persona-mapping)                    | GET /v1/stats/visitors.json (email, location, percent viewed) | Personas + Chat | Viewer segments matched to psychographic personas     |
| 2 | [Heatmap-Informed Creative Optimization](/integrations/wistia/heatmap-optimization)            | Engagement heatmap per video                                  | Mave Chat       | Drop-off diagnosis with specific edit recommendations |
| 3 | [CTA Performance × Focus Group](/integrations/wistia/cta-focus-group)                          | CTA click-through data per media                              | Focus Groups    | CTA placement/messaging optimization                  |
| 4 | [Wistia Embeds → Brand Voice Source](/integrations/wistia/spoken-brand-voice)                  | All video transcripts                                         | Brand Voice     | Spoken content voice profile                          |
| 5 | [Lead-Qualified Viewer → Personalized Follow-up](/integrations/wistia/lead-qualified-followup) | Stats by media (>80% watched)                                 | Generate        | Personalized follow-up emails per viewer              |

***

## Rate Limits & Production Notes

| Wistia Endpoint                           | Purpose                  | Rate Cost  |
| ----------------------------------------- | ------------------------ | ---------- |
| `GET /v1/medias.json`                     | List all videos          | 1 req      |
| `GET /v1/medias/{id}.json`                | Single video details     | 1 req      |
| `GET /v1/medias/{id}/captions.json`       | Transcripts              | 1 req      |
| `GET /v1/stats/visitors.json`             | All visitors (paginated) | 1 req/page |
| `GET /v1/stats/medias/{id}.json`          | Per-video engagement     | 1 req      |
| `GET /v1/stats/medias/{id}/visitors.json` | Visitors per video       | 1 req      |

<Warning>
  Wistia's rate limit is **600 requests per minute** — generous but not unlimited. The visitor stats endpoints can return large payloads (100 visitors per page with nested events). For accounts with 50,000+ visitors, full pagination takes 500+ requests. Add 100-200ms delays between calls and monitor your request count. Wistia returns `429 Too Many Requests` when the limit is hit — retry after 1 second. Unlike YouTube, Wistia has no daily quota — only per-minute throttling.
</Warning>

**Production checklist:**

| Concern                | Recommendation                                                                                                                                                |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Token security         | Wistia tokens grant full account access. Use read-only tokens when write access isn't needed. Rotate tokens quarterly.                                        |
| Turnstile gating       | Enable Turnstile on high-intent videos (demos, pricing, case studies) to capture viewer emails for Jobs 1 and 5                                               |
| Webhook triggers       | Use Wistia's [webhook system](https://wistia.com/support/developers/data-api#webhooks) to trigger Job 5 in real-time when a viewer crosses the 80% threshold  |
| CRM integration        | Connect viewer data to your CRM via email match. HubSpot and Salesforce both have Wistia integrations.                                                        |
| Heatmap data freshness | Engagement data updates in near-real-time. For Job 2 (heatmap optimization), wait 48 hours after publishing to collect sufficient data.                       |
| Mavera credits         | Brand Voice creation (Job 4) is a one-time cost. Focus Groups (Job 3) scale with persona count. 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="Wistia Data API" icon="video" href="https://wistia.com/support/developers/data-api">
    Official Wistia API documentation
  </Card>

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

  <Card title="Brand Voice API" icon="microphone" href="/api-reference/brand-voice">
    Full reference for POST /api/v1/brand-voice
  </Card>

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

  <Card title="Personas API" icon="users" href="/api-reference/personas">
    Full reference for POST /api/v1/personas
  </Card>
</CardGroup>
