wistia_get_ media_ customizationsFetches explicitly defined customizations for the video.
Ask which videos people watched most last month, retitle and tag a batch of uploads, add captions to a new video, import a file from a link into the right folder, and see who signed up for your next webinar, all from your AI client.
PopMCPWistia
Every Wistia API endpoint a customer can use is here, from media, folders and captions to channels, webinars, stats and analytics, with everyday tools loaded by default and the rest one search away.
168 tools in the full catalog: 89 read and 79 write. 37 load by default, and the rest are found with tool search.
wistia_get_ media_ customizationsFetches explicitly defined customizations for the video.
wistia_update_ media_ customizationsAllows for partial updates on a video’s customizations.
wistia_copy_ mediaThis endpoint copies a media and its assets to a destination folder (defaults to source media).
wistia_delete_ mediaDeletes a media.
wistia_get_ mediaFetches a single media by its hashed id.
wistia_get_ media_ reportEverything about how one video performs, in one call: its details (name, duration, folder, status), lifetime stats (loads, plays, play rate, hours watched, engagement, visitors), the engagement graph summary, and analytics for a date range (default the last 30 days).
wistia_import_ media_ from_ urlThis endpoint imports a media file from a given URL.
wistia_list_ all_ mediaEvery media in the account (or one folder) as compact rows, walking the pages for you: hashed_id, name, type, duration in seconds, status, created and updated times, folder and tags.
wistia_list_ mediaLists the media belonging to the account.
wistia_move_ mediaMoves up to 100 media to a folder and optional subfolder.
wistia_update_ mediaUpdates the attributes on a media.
wistia_create_ captionsAdds captions to a specified media by providing an SRT file or its contents directly.
wistia_get_ captionsReturns a media's captions in the specified language.
wistia_list_ media_ captionsLists captions belonging to a specific media.
wistia_get_ accountRetrieves a summary of the Wistia account including account name, description, URL and counts of records.
wistia_get_ account_ overviewA snapshot of the Wistia account in one call: name and counts (media, folders, channels), plan and usage limits, lifetime stats (loads, plays, hours watched, visitors) and the top videos by plays for a date range (default the last 30 days).
wistia_list_ channel_ episodes_ by_ channelLists Channel Episodes belonging to the channel passed in the path.
wistia_get_ media_ analyticsRetrieve aggregate analytics for a video over a date range.
wistia_create_ folderCreates a new folder (previously called project).
wistia_get_ folderRetrieves a single folder (previously called project).
wistia_list_ foldersLists folders (previously called projects) belonging to the account.
wistia_list_ subfoldersLists subfolders in a specific folder.
wistia_get_ account_ analyticsRetrieve aggregate analytics for the entire account over a date range.
wistia_get_ account_ top_ contentRank the account's content by a chosen metric over a date range.
wistia_get_ webinarReturns the webinar associated with the hashed id.
wistia_list_ channelsLists all Channels belonging to an account.
wistia_list_ webinarsLists webinars belonging to the account.
wistia_get_ media_ engagementRetrieve engagement data for a video.
wistia_get_ media_ statsRetrieve stats for a video.
wistia_list_ tagsLists tags belonging to the account.
wistia_get_ account_ statsRetrieve account-wide video stats.
wistia_get_ background_ job_ statusRetrieves the status of a background job.
wistia_list_ viewing_ eventsRetrieve a list of events.
wistia_list_ webinar_ registrationsRetrieve a paginated list of registrations for a webinar.
wistia_wait_ for_ background_ jobWait for a Wistia background job (media import from a URL, bulk copy, move, archive or restore, bulk tagging, bulk actions or purchases, translations) to finish and return its final status and results.
wistia_bulk_ tag_ mediaThis method accepts a list of medias to tag.
wistia_searchSearches across folders, subfolders, medias, channels, channel episodes, and webinars.
wistia_create_ media_ customizationsSet customizations for a video.
wistia_delete_ media_ customizationsDeletes all explicit customizations for a video, making it act as if it has never been customized.
wistia_get_ access_ customizationsFetches the explicitly-set password-protection settings for the video, including the stored password.
wistia_get_ accessibility_ customizationsFetches the explicitly-set accessibility customizations (caption display and styling, transcript display, and audio description) for the video.
wistia_get_ appearance_ customizationsFetches the explicitly-set appearance customizations (player color, gradient, rounded corners, control contrast, and customer logo) for the video.
wistia_get_ chapters_ customizationsFetches the explicitly-set chapter customizations (the chapter list and its visibility) for the media.
wistia_get_ engagement_ customizationsFetches the explicitly-set engagement customizations (the end/pause Call To Action and timed annotation links) for the video.
wistia_get_ lead_ capture_ customizationsFetches the explicitly-set lead-capture plugins (Turnstile, Wistia Form, and HubSpot/Marketo/Pardot form embeds) for the video.
wistia_get_ playback_ customizationsFetches the explicitly-set playback customizations (autoplay, mute, controls visibility, player control buttons, end behavior, looping, quality bounds, and embed/runtime flags) for the video.
wistia_get_ related_ media_ customizationsFetches the explicitly-set related-media ("discover more") customizations (which videos to recommend, when to show them, label and button text) for the video.
wistia_get_ sharing_ customizationsFetches the explicitly-set sharing customizations (the social/embed/download share bar: enabled channels, tweet text, download type, and page URL/title) for the video.
wistia_get_ thumbnail_ customizationsFetches the explicitly-set thumbnail customizations (still image URL, alt text, fit strategy, and the looping video thumbnail / text-overlay plugins) for the video.
wistia_update_ access_ customizationsApplies a partial update to a video's password-protection settings.
wistia_update_ accessibility_ customizationsApplies a partial update to a video's accessibility customizations.
wistia_update_ appearance_ customizationsApplies a partial update to a video's appearance customizations.
wistia_update_ chapters_ customizationsApplies a partial update to a media's chapter customizations.
wistia_update_ engagement_ customizationsApplies a partial update to a video's engagement customizations.
wistia_update_ lead_ capture_ customizationsConfigures a single lead-capture provider for the video, mapping it to the appropriate underlying plugin.
wistia_update_ playback_ customizationsApplies a partial update to a video's playback customizations.
wistia_update_ related_ media_ customizationsApplies a partial update to a video's related-media customizations.
wistia_update_ sharing_ customizationsApplies a partial update to a video's sharing customizations.
wistia_update_ thumbnail_ customizationsApplies a partial update to a video's thumbnail customizations.
wistia_archive_ mediaThis method accepts a list of up to 100 medias to archive per request.
wistia_bulk_ copy_ mediaThis method accepts a list of medias to copy to a destination folder.
wistia_get_ media_ aggregated_ statsAggregated tracking statistics for a video embedded on your site.
wistia_restore_ archived_ mediaRestores archived medias to your account.
wistia_swap_ mediaSwap one media with another media.
wistia_translate_ mediaTranslates the transcript for a media.
wistia_delete_ captionsRemoves the captions file from a media for the specified language.
wistia_edit_ captions_ textApplies targeted find-and-replace corrections to a media's transcript for the specified language, preserving the timings of unchanged words.
wistia_find_ caption_ matchesFinds exact text in caption tracks without modifying them.
wistia_list_ captionsLists captions belonging to the account.
wistia_purchase_ captionsThis method is for purchasing English captions for a media.
wistia_update_ captionsThis method is for replacing the captions on a video or audio media for the specified language.
wistia_create_ channel_ episodeCreates a new channel episode in a channel.
wistia_delete_ channel_ episodeDeletes an existing channel episode in a channel.
wistia_get_ account_ usageRetrieves plan, usage, and limit information for the current account.
wistia_get_ brand_ kit_ colorsRetrieves the current account's brand colors for the Wistia desktop app's background picker.
wistia_get_ brand_ preloadRetrieves Brandfetch-derived brand info for the current account's contact domain, plus a boolean indicating whether the account already has any brand kits configured.
wistia_get_ channel_ episodeReturns the Channel Episode associated with a channel hashed id and channel episode hashed id.
wistia_get_ credit_ balanceRetrieves the current account's available credit balance and expected next recurring credit grant time.
wistia_get_ current_ tokenRetrieves a summary of the token used to make the API request.
wistia_list_ channel_ episodesLists Channel Episodes belonging to an account.
wistia_publish_ channel_ episodePublishes an existing channel episode in a channel.
wistia_unpublish_ channel_ episodeUn-publishes an existing channel episode in a channel.
wistia_update_ brand_ preloadPersists the account's default page logo (by Bakery hashed_id) and default player color.
wistia_update_ channel_ episodeUpdates an existing channel episode in a channel.
wistia_get_ media_ analytics_ timeseriesRetrieve analytics timeseries data for a video over a date range with configurable granularity.
wistia_get_ media_ embed_ locationsRetrieve embed location analytics for a video.
wistia_get_ media_ embed_ locations_ timeseriesRetrieve timeseries analytics for a video broken down by embed location.
wistia_get_ media_ form_ conversionsRetrieve form conversion data for a video.
wistia_get_ media_ languagesRetrieve language analytics for a video.
wistia_get_ media_ traffic_ breakdownRetrieve traffic breakdown analytics for a video, grouped by a specified dimension such as UTM campaign, UTM source, UTM medium, referrer domain, or viewer screen size.
wistia_apply_ brandApplies a brand to a media, folder, or channel, so that resource is styled by the brand's colors, fonts, logos, and layout.
wistia_bulk_ delete_ subfoldersDeletes multiple subfolders asynchronously.
wistia_copy_ folderThis copies a folder (previously called project) and all its media and subfolders asynchronously in a background job.
wistia_create_ brandCreates a brand.
wistia_create_ subfolderCreates a new subfolder within a folder.
wistia_delete_ brandDeletes a brand.
wistia_delete_ folderDeletes a folder (previously called project) and the media inside it.
wistia_delete_ subfolderDeletes one subfolder and moves its media to the folder's root level.
wistia_get_ brandReturns the brand with the given id.
wistia_get_ subfolderRetrieves detailed information about a specific subfolder, including all media contained within it.
wistia_list_ brandsLists the brands belonging to the account.
wistia_update_ brandUpdates a brand.
wistia_update_ folderUpdates a folder (previously called project) Token permission: Read, update & delete anything.
wistia_update_ subfolderUpdates a subfolder's name and/or description.
wistia_create_ channelCreates a channel.
wistia_create_ folder_ sharingCreates a new sharing object for a folder by specifying the email of the person to share with and other optional parameters.
wistia_create_ webinarCreates a new webinar.
wistia_delete_ channelDeletes a channel.
wistia_delete_ extended_ audio_ descriptionDeletes an extended audio description by its hashed id.
wistia_delete_ folder_ sharingDeletes a sharing on a folder.
wistia_delete_ webinarDeletes an existing webinar.
wistia_find_ media_ by_ embed_ locationFind the media embedded at a given URL.
wistia_get_ account_ analytics_ timeseriesRetrieve analytics timeseries data for the entire account over a date range with configurable granularity.
wistia_get_ account_ embed_ locationsRetrieve embed location analytics for the entire account.
wistia_get_ channelReturns the Channel associated with the hashedId.
wistia_get_ extended_ audio_ descriptionRetrieves a single extended audio description by its hashed id, including download links.
wistia_get_ extended_ audio_ description_ order_ statusReturns the current status of an extended audio description order.
wistia_get_ folder_ sharingRetrieves the details of a specific sharing object for a given folder.
wistia_get_ webinar_ analyticsRetrieve aggregate analytics for a webinar.
wistia_get_ webinar_ audienceRetrieve audience data for a webinar.
wistia_get_ webinar_ histogramsRetrieve engagement histogram data for a webinar.
wistia_get_ webinar_ registration_ timeseriesRetrieve registration timeseries data for a webinar with configurable granularity.
wistia_get_ webinar_ traffic_ breakdownRetrieve traffic breakdown analytics for a webinar, grouped by a specified dimension such as UTM campaign, UTM source, UTM medium, or referrer domain.
wistia_list_ extended_ audio_ descriptionsLists all extended audio descriptions belonging to the account.
wistia_list_ folder_ sharingsLists the sharings of contacts and contact groups on a folder.
wistia_order_ extended_ audio_ descriptionOrders an extended audio description for a media.
wistia_update_ channelUpdates a channel.
wistia_update_ folder_ sharingUpdates a sharing on a folder.
wistia_update_ webinarUpdates an existing webinar.
wistia_create_ allowed_ domainCreates an allowed domain for the account.
wistia_create_ localizationCreates a new localization.
wistia_delete_ allowed_ domainDeletes an allowed domain from the account.
wistia_delete_ localizationDeletes a localization.
wistia_delete_ share_ linkDeletes the share link for a media, revoking the URL.
wistia_get_ allowed_ domainReturns the details of an allowed domain.
wistia_get_ localizationObtain detailed information about a localization.
wistia_get_ share_ linkFetches the share link for a single media.
wistia_list_ allowed_ domainsLists allowed domains belonging to the account.
wistia_list_ localizationsLists all the localizations for a media.
wistia_resolve_ share_ linkResolves a share link URL segment: the part after /s/ in a share link like https://example.wistia.com/s/summer-sale: to the share link and the media it points to, including the media's hashed ID.
wistia_update_ share_ linkUpdates the share link for a single media.
wistia_create_ channel_ collaboratorInvites a collaborator to a channel by specifying their email address and role.
wistia_create_ review_ bundleCreates a review bundle from a set of existing media, producing a single link that can be shared for review.
wistia_create_ tagsCreates a new tag.
wistia_create_ webinar_ collaboratorInvites a collaborator (producer) to a webinar by specifying their email address.
wistia_delete_ channel_ collaboratorRemoves a collaborator's access to a channel.
wistia_delete_ review_ bundlePermanently deletes a review bundle, identified by its hashed id.
wistia_delete_ tagDeletes a tag Token permission: Read, update & delete anything.
wistia_delete_ webinar_ collaboratorRemoves a collaborator's producer access to a webinar.
wistia_get_ media_ stats_ by_ dateRetrieve stats for a media organized by day, between a start and end date paramater (inclusive).
wistia_list_ channel_ collaboratorsLists the collaborators (contacts and contact groups) that have been granted access to a channel.
wistia_list_ review_ bundlesLists review bundles belonging to an account.
wistia_list_ webinar_ collaboratorsLists the collaborators (contacts and contact groups) that have been granted producer access to a webinar.
wistia_create_ webinar_ registrationRegister a person for a webinar by providing their email, first name, and last name.
wistia_get_ account_ stats_ by_ dateRetrieve account-wide stats organized by day, between a start and end date parameter (inclusive).
wistia_get_ viewing_ eventRetrieve information for a single event.
wistia_get_ visitorThis endpoint provides detailed information about a specific visitor.
wistia_list_ deleted_ mediaLists media that has been soft-deleted and is still inside the account's restore window.
wistia_list_ visitorsThis endpoint provides a list of visitors that have watched videos in your account.
wistia_restore_ deleted_ mediaRestores one or more soft-deleted media.
wistia_create_ bulk_ actionsSubmits a batch of up to 1000 create, update, delete, and move actions to be processed asynchronously.
wistia_create_ bulk_ purchaseSubmits either an actions array of up to 1000 orders or one job that can resolve to up to 5000 media.
wistia_create_ media_ from_ trimsCreates a new media that trims off parts of an existing media.
wistia_get_ folder_ statsStats for one folder: plays, visitors, hours watched and more.
wistia_invite_ contactsInvites one or more people to the account by email.
wistia_list_ speakersLists reusable speaker profiles belonging to the account.
wistia_resolve_ resource_ urlsResolves a resource's hashed ID and type to its canonical app URL(s): deep links an authorized user can open in the Wistia UI.
wistia_upload_ media_ from_ urlImport a media file into Wistia from a URL (the Upload API).
Credentials off one Wistia screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In Wistia, the account owner opens Account Settings, then the API tab, clicks New token, ticks Read, update & delete anything (or Read all data for read-only use) and copies the token into PopMCP. Wistia shows a token only once, and nothing needs approval.
••••••••••••3f7aRenaming, moving, deleting, adding captions and anything else that changes Wistia waits until an owner or admin allows write actions; new connections start read-only. Tools that charge your Wistia account, such as ordering captions, dubbing or audio descriptions, say so before they run.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Wistia credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Which of my videos got the most plays in the last 30 days, and how much of each did people watch?
wistia_get_account_top_contentok
Then just ask for the work
“Which of my videos got the most plays in the last 30 days, and how much of each did people watch?”
“Import the video at this link into my Product Demos folder and tell me when it is ready to play”
“Tag every video in the Webinars folder with replay and move the ones older than a year to the Archive folder”
“Add these English captions to the onboarding video, then translate its transcript into Spanish”
“Who registered for next week's webinar, and how did the last one do?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Wistia behind an AI client.
An API token from your Wistia account. The account owner opens Account Settings, then the API tab (account.wistia.com/account/api), clicks New token, names it, ticks the permissions and copies it straight away, because Wistia shows a token only once. Read, update & delete anything lets the AI manage your library; Read all data is enough to read everything, stats included. PopMCP checks the token against your account and stores it encrypted.
Only the account owner can create API tokens in Wistia, so a manager asks the owner for one. PopMCP also supports Sign in with Wistia, which owners and managers can approve on Wistia's own page; where it is not switched on yet, the API token is the way in.
The Data API (media, folders and subfolders, tags, captions and transcripts, translations and dubbing, trims, player customizations, brands, share links, review bundles, channels and episodes, webinars and registrations, allowed domains and bulk actions), the Stats API, the Analytics API and the Upload API's import from a link. Everyday tools load by default and the rest are one search away in your AI client.
Only if you ask it to order something. Buying captions, dubbing a video, ordering audio descriptions and bulk purchases are billed to your Wistia account, and each of those tools says so in its description so the AI checks with you first. Reading stats and analytics and managing your library cost nothing extra.
It imports from a link: give it a public or pre-signed URL that downloads the file directly, and Wistia fetches it into the folder you choose. Pushing a large video through an AI chat is not practical, so direct file uploads are left out. Imports run in the background, and the AI can wait for them to finish.
14 in total. Change detection: video added, video ready, processing failed, video updated, video deleted, captions added, translation added, webinar registration, webinar created, folder created and channel episode added. Polled: someone watched a video. Two watch a level you set: plays of one video and plays across the account. Wistia sets its own webhooks up only in its settings, so PopMCP reads these from the API.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Wistia in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Wistia on the consent screen. The Wistia tools are then available in that session, and no Wistia credential is stored on your machine.
Loading 168 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 37-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 168 here. A trigger is something PopMCP watches for you: 14 Wistia events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Wistia.
Launch a hosted MCP endpoint for Wistia, keep tool access under control, and start testing real workflow prompts right away.