Connectors · Developer & infrastructure
Wistia MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Wistia and the rest of your systems. It gives your agent 167 Wistia actions (85 reads, 63 writes and 19 that wait for a confirmation) and holds the Wistia credential itself, so the agent never does. It paces Wistia's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "wistia.medias.list", intent: "check which Wistia account is connected"}# List Media · read · 1 upstream call- 167actionsin one signed file
- 85readlook, never change
- 63writecreate and update
- 19wait for a yesdestructive, confirmed first
Set up
Connect Wistia in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Wistia.
API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
api_tokenWistia API access token (Account > Settings > API Access; grant the permissions the actions need)
account { op: "connections.requirements", service: "wistia" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "wistia.medias.list" }# list media · read · 1 upstream callcheck { action: "wistia.bulk.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Wistia at a glance
- Sign-in
- API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
api_token- Limits we pace to
- 600 calls a minute, per connection
- API covered
- Wistia Data API 2026-09 (api.wistia.com/modern)
api.wistia.com - Built from
- Wistia's documentation, read 23 October 2026docs.wistia.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 84 of 85 reads, for up to an hour; a write clears what it affects
- Shared entities
- 2, so ask can line Wistia up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Wistia.
167 actions in 31 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 85readlook, never change
- 63writecreate and update
- 19destructivewait for a confirmation
Medias
5319 read · 29 write · 5 destructive
List Media · Bulk Copy Media · Copy Media · Import Media from URL
Analytics
1717 read · 0 write · 0 destructive
Show Account Embed Locations · Show Account Analytics Timeseries · Show Account Top Content · Show Media Form Conversions
Folders
176 read · 7 write · 4 destructive
List Folders · Copy Folder · Create Folder · Create Folder Sharing
Channels
115 read · 4 write · 2 destructive
Create Channel · List Channels · Create Channel Episode · List Channel Episodes by Channel
Stats
1010 read · 0 write · 0 destructive
List Events · List Visitors · Show Account Stats by Date · Show Media Stats by Date
Webinars
104 read · 4 write · 2 destructive
Create Webinar · List Webinars · Create Webinar Collaborator · List Webinar Collaborators
Brands
62 read · 3 write · 1 destructive
Create Brand · List Brands · Apply Brand · Show Brand
Channel episodes
51 read · 3 write · 1 destructive
List Channel Episodes · Publish Channel Episode · Un-publish Channel Episode · Update Channel Episode
23 more areas · 38 actions
- Media extended audio descriptions 5
- Allowed domains 4
- Review bundles 3
- Tags 3
- Account 2
- Brand preload 2
- Bulk 2
- Deleted media 2
- Account usage 1
- Background job status 1
- Brand kit colors 1
- Caption matches 1
- Captions 1
- Contact 1
- Contacts 1
- Credits 1
- Expiring token 1
- Resource urls 1
- Search 1
- Share links 1
- Speakers 1
- Taggings 1
- Token 1
Top actions
The Wistia API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 3 of Wistia's 3 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
wistia.medias.listList Media | Lists the media belonging to the account. This endpoint can also be used to do a batch fetch based off of the hashed id. ## Requires api token with one of the… | read | content.file.list77 connectors |
wistia.folders.listList Folders | Lists folders (previously called projects) belonging to the account. My Library folders are not included. For tokens scoped to a specific user… | read | content.folder.list62 connectors |
wistia.tags.listList Tags | Lists tags belonging to the account. ## Requires api token with one of the following permissions Tokens with the "Act with a team member's permissions"… | read | crm.tag.list65 connectors |
wistia.searchSearch | Searches across folders, subfolders, medias, channels, channel episodes, and webinars. Also searches through video transcripts, so media results may include… | read | this connector |
wistia.bulk.createCreate Bulk Actions | Submits a batch of up to 1000 create, update, delete, and move actions to be processed asynchronously. Returns a background job status whose Show endpoint… | write | this connector |
wistia.medias.copyCopy Media | This endpoint copies a media and its assets to a destination folder (defaults to source media). ## Requires api token with one of the following permissions… | write | this connector |
wistia.tags.createCreate Tags | Creates a new tag. ## Requires api token with one of the following permissions Tokens with the "Act with a team member's permissions" permission… | write | this connector |
wistia.folders.copyCopy Folder | This copies a folder (previously called project) and all its media and subfolders asynchronously in a background job. This method does not copy the folder’s… | write | this connector |
wistia.medias.trimsCreate Media from Trims | Creates a new media that trims off parts of an existing media. By default, the `trims` parameter specifies time ranges to **remove** from the media. When… | write | this connector |
wistia.brands.createCreate Brand | Creates a brand. A brand is a saved set of branding options (colors, fonts, logos, and layout) that can then be applied to media, folders, and channels.… | write | this connector |
wistia.bulk.purchaseCreate Bulk Purchase | Submits either an `actions` array of up to 1000 orders or one `job` that can resolve to up to 5000 media. Orders are placed asynchronously. Returns a… | write | this connector |
wistia.tags.deleteDelete Tag | Deletes a tag ## Requires api token with one of the following permissions Tokens with the "Act with a team member's permissions" permission… | destructive | this connector |
Try it
Prompts to paste into Claude.
Each one names the Wistia actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Wistia files changed this week, and who changed them?
calls
wistia.medias.list - Writewrite
Create Bulk Actions in Wistia. Show me exactly what you will send before you save it.
calls
wistia.bulk.create
Governance for Wistia
Destructive actions wait for a yes.
19 Wistia actions are destructive. These are all of them:
- Delete Tag
wistia.tags.delete - Delete Brand
wistia.brands.delete - Delete Media
wistia.medias.delete - Delete Folder
wistia.folders.delete - Delete Channel
wistia.channels.delete - Delete Webinar
wistia.webinars.delete - Delete Review Bundle
wistia.review_bundles.delete - Delete Allowed Domain
wistia.allowed_domains.delete - Delete Channel Episode
wistia.channel_episodes.delete - Delete Media Extended Audio Description
wistia.media_extended_audio_descriptions.delete - Delete Captions
wistia.medias.captions.delete - Delete Folder Sharing
wistia.folders.sharings.delete - Delete share link
wistia.medias.share_link.delete - Delete Subfolder
wistia.folders.subfolders.delete - Delete Localization
wistia.medias.localizations.delete - Delete Customizations
wistia.medias.customizations.delete - Delete Channel Collaborator
wistia.channels.collaborators.delete - Delete Webinar Collaborator
wistia.webinars.collaborators.delete - Bulk Delete Subfolders
wistia.folders.subfolders.bulk_delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete Tag?
intent: the user asked me to delete Tag
account { op: "keys.create", name: "wistia-agent", allowed_actions: ["wistia.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "wistia.tags.delete", approver: "[email protected]" }, { match: "wistia.brands.delete", approver: "[email protected]" }, { match: "wistia.medias.delete", approver: "[email protected]" } ]}Cost
What Wistia costs on actionlake.
Every Wistia action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Wistia refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 167 Wistia actions
- 167actions pageeach page of a long list is one call
- 84reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Wistia action.
167 actions by area: the id your agent calls, what it does, and its effect.
Medias53
wistia.medias.archiveArchive Mediawritewistia.medias.bulk_copyBulk Copy Mediawritewistia.medias.captions.createCreate Captionswritewistia.medias.captions.deleteDelete Captionsdestructivewistia.medias.captions.edit_textEdit Captions Textwritewistia.medias.captions.getShow Captionsreadwistia.medias.captions.listList Captions by Mediareadwistia.medias.captions.purchasePurchase Captionswritewistia.medias.captions.updateUpdate Captionswritewistia.medias.copyCopy Mediawritewistia.medias.customizations.access.getShow Access Customizationsreadwistia.medias.customizations.access.updateUpdate Access Customizationswritewistia.medias.customizations.accessibility.getShow Accessibility Customizationsreadwistia.medias.customizations.accessibility.updateUpdate Accessibility Customizationswritewistia.medias.customizations.appearance.getShow Appearance Customizationsreadwistia.medias.customizations.appearance.updateUpdate Appearance Customizationswritewistia.medias.customizations.chapters.getShow Chapters Customizationsreadwistia.medias.customizations.chapters.updateUpdate Chapters Customizationswritewistia.medias.customizations.createCreate Customizationswritewistia.medias.customizations.deleteDelete Customizationsdestructivewistia.medias.customizations.engagement.getShow Engagement Customizationsreadwistia.medias.customizations.engagement.updateUpdate Engagement Customizationswritewistia.medias.customizations.getShow Customizationsreadwistia.medias.customizations.lead_capture.getShow Lead Capture Customizationsreadwistia.medias.customizations.lead_capture.updateUpdate Lead Capture Customizationswritewistia.medias.customizations.playback.getShow Playback Customizationsreadwistia.medias.customizations.playback.updateUpdate Playback Customizationswritewistia.medias.customizations.related_media.getShow Related Media Customizationsreadwistia.medias.customizations.related_media.updateUpdate Related Media Customizationswritewistia.medias.customizations.sharing.getShow Sharing Customizationsreadwistia.medias.customizations.sharing.updateUpdate Sharing Customizationswritewistia.medias.customizations.thumbnail.getShow Thumbnail Customizationsreadwistia.medias.customizations.thumbnail.updateUpdate Thumbnail Customizationswritewistia.medias.customizations.updateUpdate Customizationswritewistia.medias.deleteDelete Mediadestructivewistia.medias.getShow Mediareadwistia.medias.import_urlImport Media from URLwritewistia.medias.listList Mediareadwistia.medias.localizations.createCreate Localizationwritewistia.medias.localizations.deleteDelete Localizationdestructivewistia.medias.localizations.getShow Localizationreadwistia.medias.localizations.listList Localizationsreadwistia.medias.moveMove Mediawritewistia.medias.restoreRestore Mediawritewistia.medias.share_link.deleteDelete share linkdestructivewistia.medias.share_link.getShow share linkreadwistia.medias.share_link.updateUpdate share linkwritewistia.medias.stats.getShow Media Aggregated Statsreadwistia.medias.swapSwap Mediawritewistia.medias.translateTranslate Mediawritewistia.medias.trimsCreate Media from Trimswritewistia.medias.updateUpdate Mediawritewistia.medias.uploadUpload or Import Mediawrite
Analytics17
wistia.analytics.account.embed_locations.listShow Account Embed Locationsreadwistia.analytics.account.getShow Account Analyticsreadwistia.analytics.account.media_by_embed_location.getFind Media By Embed Locationreadwistia.analytics.account.timeseries.listShow Account Analytics Timeseriesreadwistia.analytics.account.top_content.listShow Account Top Contentreadwistia.analytics.medias.conversions.listShow Media Form Conversionsreadwistia.analytics.medias.embed_locations.listShow Media Embed Locationsreadwistia.analytics.medias.embed_locations_timeseries.listShow Media Embed Locations Timeseriesreadwistia.analytics.medias.getShow Media Analyticsreadwistia.analytics.medias.languages.listShow Media Languagesreadwistia.analytics.medias.timeseries.listShow Media Analytics Timeseriesreadwistia.analytics.medias.traffic.listShow Media Traffic Breakdownreadwistia.analytics.webinars.audience.listShow Webinar Audiencereadwistia.analytics.webinars.getShow Webinar Analyticsreadwistia.analytics.webinars.histograms.getShow Webinar Histogramsreadwistia.analytics.webinars.registration.listShow Webinar Registration Timeseriesreadwistia.analytics.webinars.traffic.listShow Webinar Traffic Breakdownread
Folders17
wistia.folders.copyCopy Folderwritewistia.folders.createCreate Folderwritewistia.folders.deleteDelete Folderdestructivewistia.folders.getShow Folderreadwistia.folders.listList Foldersreadwistia.folders.sharings.createCreate Folder Sharingwritewistia.folders.sharings.deleteDelete Folder Sharingdestructivewistia.folders.sharings.getShow Folder Sharingreadwistia.folders.sharings.listList Folder Sharingsreadwistia.folders.sharings.updateUpdate Folder Sharingwritewistia.folders.subfolders.bulk_deleteBulk Delete Subfoldersdestructivewistia.folders.subfolders.createCreate Subfolderwritewistia.folders.subfolders.deleteDelete Subfolderdestructivewistia.folders.subfolders.getShow Subfolderreadwistia.folders.subfolders.listList Subfoldersreadwistia.folders.subfolders.updateUpdate Subfolderwritewistia.folders.updateUpdate Folderwrite
Channels11
wistia.channels.channel_episodes.createCreate Channel Episodewritewistia.channels.channel_episodes.getShow Channel Episodereadwistia.channels.channel_episodes.listList Channel Episodes by Channelreadwistia.channels.collaborators.createCreate Channel Collaboratorwritewistia.channels.collaborators.deleteDelete Channel Collaboratordestructivewistia.channels.collaborators.listList Channel Collaboratorsreadwistia.channels.createCreate Channelwritewistia.channels.deleteDelete Channeldestructivewistia.channels.getShow Channelreadwistia.channels.listList Channelsreadwistia.channels.updateUpdate Channelwrite
Stats10
wistia.stats.account.by_date.listShow Account Stats by Datereadwistia.stats.account.getShow Current Account Statsreadwistia.stats.events.getShow Eventreadwistia.stats.events.listList Eventsreadwistia.stats.medias.by_date.listShow Media Stats by Datereadwistia.stats.medias.engagement.getShow Media Engagementreadwistia.stats.medias.getShow Media Statsreadwistia.stats.projects.getShow Project Statsreadwistia.stats.visitors.getShow Visitorreadwistia.stats.visitors.listList Visitorsread
Webinars10
wistia.webinars.collaborators.createCreate Webinar Collaboratorwritewistia.webinars.collaborators.deleteDelete Webinar Collaboratordestructivewistia.webinars.collaborators.listList Webinar Collaboratorsreadwistia.webinars.createCreate Webinarwritewistia.webinars.deleteDelete Webinardestructivewistia.webinars.getShow Webinarreadwistia.webinars.listList Webinarsreadwistia.webinars.registrations.createCreate Webinar Registrationwritewistia.webinars.registrations.listList Webinar Registrationsreadwistia.webinars.updateUpdate Webinarwrite
Brands6
wistia.brands.applyApply Brandwritewistia.brands.createCreate Brandwritewistia.brands.deleteDelete Branddestructivewistia.brands.getShow Brandreadwistia.brands.listList Brandsreadwistia.brands.updateUpdate Brandwrite
Channel episodes5
wistia.channel_episodes.deleteDelete Channel Episodedestructivewistia.channel_episodes.listList Channel Episodesreadwistia.channel_episodes.publishPublish Channel Episodewritewistia.channel_episodes.unpublishUn-publish Channel Episodewritewistia.channel_episodes.updateUpdate Channel Episodewrite
Media extended audio descriptions5
wistia.media_extended_audio_descriptions.deleteDelete Media Extended Audio Descriptiondestructivewistia.media_extended_audio_descriptions.getShow Media Extended Audio Descriptionreadwistia.media_extended_audio_descriptions.listList Media Extended Audio Descriptionsreadwistia.media_extended_audio_descriptions.orderOrder Extended Audio Descriptionwritewistia.media_extended_audio_descriptions.order_statusGet Order Statusread
Allowed domains4
wistia.allowed_domains.createCreate Allowed Domainwritewistia.allowed_domains.deleteDelete Allowed Domaindestructivewistia.allowed_domains.getShow Allowed Domainreadwistia.allowed_domains.listList Allowed Domainsread
Review bundles3
wistia.review_bundles.createCreate Review Bundlewritewistia.review_bundles.deleteDelete Review Bundledestructivewistia.review_bundles.listList Review Bundlesread
Tags3
wistia.tags.createCreate Tagswritewistia.tags.deleteDelete Tagdestructivewistia.tags.listList Tagsread
Account2
wistia.account.getGet Current Accountreadwistia.account.start_trialStart Account Trialwrite
Brand preload2
wistia.brand_preload.getGet Brand Preloadreadwistia.brand_preload.updateUpdate Brand Preloadwrite
Bulk2
wistia.bulk.createCreate Bulk Actionswritewistia.bulk.purchaseCreate Bulk Purchasewrite
Deleted media2
wistia.deleted_media.listList Deleted Mediareadwistia.deleted_media.restoreRestore Deleted Mediawrite
Account usage1
wistia.account_usage.getGet Account Usageread
Background job status1
wistia.background_job_status.getShow Background Job Statusread
Brand kit colors1
wistia.brand_kit_colors.getGet Brand Kit Colorsread
Caption matches1
wistia.caption_matches.findFind Caption Matchesread
Captions1
wistia.captions.listList Captionsread
Contact1
wistia.contact.dismiss_desktop_install_promptDismiss Desktop Install Promptwrite
Contacts1
wistia.contacts.inviteInvite Contactswrite
Credits1
wistia.credits.balance.getGet Credit Balanceread
Expiring token1
wistia.expiring_token.createCreate Expiring Access Tokenwrite
Resource urls1
wistia.resource_urls.resolveResolve Resource URLsread
Search1
wistia.searchSearchread
Share links1
wistia.share_links.resolveResolve share linkread
Speakers1
wistia.speakers.listList Speakersread
Taggings1
wistia.taggings.bulk_createBulk Tag Mediawrite
Token1
wistia.token.getGet Current Tokenread
Questions
The Wistia MCP server, answered.
Is there a Wistia MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 167 Wistia actions across medias, analytics, folders and channels, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Wistia.
What do I need to connect Wistia?
Wistia API access token (Account > Settings > API Access; grant the permissions the actions need). The free call account { op: "connections.requirements", service: "wistia" } lists exactly what to paste.
Can an AI agent delete or change things in Wistia?
Only if its key allows it, and only with an explicit confirmation. 19 Wistia actions are destructive, including delete Tag, delete Brand and delete Media. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Wistia API limit?
actionlake paces every call to the limits in the Wistia service file: 600 calls a minute per connection. Repeated reads are answered from cache (84 Wistia actions can be), which never reaches Wistia.
What does a Wistia action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (167 Wistia actions page). Cache hits, searches, dry runs and calls Wistia refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Wistia API does it cover?
The Wistia Data API 2026-09 (api.wistia.com/modern) at api.wistia.com. It is built from Wistia's documentation as read on 23 October 2026. 167 actions in 31 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Wistia data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Wistia credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Wistia today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.