Search
searchFind Wistia folders, media, channels, webinars, and spoken-word transcript matches by query, tags, dates, or custom metadata.
Instructions
Searches across folders, subfolders, medias, channels, channel episodes, and webinars. Also searches through video transcripts, so media results may include transcript matches with timestamps when the query matches spoken content.
Requires api token with one of the following permissions
Read all dataTokens with the "Act with a team member's permissions" permission
(all:delegate_to_contact_permissions scope) can also be used. Requests
made with such a token are authorized using the permissions of the
contact assigned to the token.
Read-only account operation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | The search query string | |
| tags | No | Filter results by one or more tag names. When multiple tags are provided, results matching any of the specified tags are returned (OR logic). | |
| account | No | Named private Wistia account; selects credentials, not a remote account ID. | |
| include | No | Pass `custom_metadata` to include each media result's custom metadata field values (same shape as the Get Custom Metadata Field Values endpoint). Only available on accounts with access to custom metadata (other accounts receive a 403 when this parameter is passed). | |
| created_after | No | Filter results created on or after this datetime. Must be a valid ISO8601 timestamp in UTC (ending with 'Z'). | |
| resource_type | No | Filter results by one or more resource types. | |
| created_before | No | Filter results created on or before this datetime. Must be a valid ISO8601 timestamp in UTC (ending with 'Z'). | |
| custom_metadata | No | Filter media by custom metadata field value, keyed by field key: `custom_metadata[<field_key>]=<value>`. Only available on accounts with access to custom metadata (other accounts receive a 403 when this parameter is passed). Custom metadata only exists on media, so results contain media only and `resource_type` must include `media`. Use an empty `q` to match all media. The value shape depends on the field's type: - Select, text, url, and email fields take a value (`custom_metadata[region]=emea`) or an array of values matched as OR (`custom_metadata[region][]=emea&custom_metadata[region][]=amer`). Select fields match on option keys. - Boolean fields take `true` or `false`. - Number, money, and time fields take an exact number (`custom_metadata[year]=2026`) or a range object (`custom_metadata[budget][min]=100&custom_metadata[budget][max]=500`; either bound may be omitted). - Date and datetime fields take a `YYYY-MM-DD` date matching that UTC day, or a range object with ISO8601 bounds (`custom_metadata[shoot_date][after]=2026-01-01`, `custom_metadata[shoot_date][before]=2026-02-01T00:00:00Z`). A bare-date bound covers its whole UTC day: `after` starts at the day's beginning and `before` runs through the day's end. - Contact fields (`contact_ref`, `contact_multi_ref`) only support the presence filter below; a value filter on them is rejected. - Any field type accepts a presence filter: `custom_metadata[region][exists]=false` returns media missing the field entirely (useful for metadata coverage audits), and `exists=true` returns media that have any value for it. Unknown or archived field keys return a 400, as do select option keys that don't exist on the field. The primary match set holds at most 100 media with no pagination; a non-blank `q` can add up to 100 more transcript-only matches, and an empty-`q` audit returns at most 100. Narrow large audits (e.g. with `created_after`/`created_before`) to complete full coverage. |