Search
Changed onSearches 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 data
Tokens 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.
Expiring access tokens created with authorizations cannot be used: search responds with a 403, whatever the authorizations grant.
Request
- Base URLhttps://api.wistia.com/modern
- URLhttps://api.wistia.com/modern/search
- AuthHTTP bearer
Query parameters
The search query string
Filter results by one or more tag names. When multiple tags are provided, results matching any of the specified tags are returned (OR logic).
Filter results by one or more resource types.
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 and text 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 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.
- 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.
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).
Filter results created on or after this datetime. Must be a valid ISO8601 timestamp in UTC (ending with 'Z').
Filter results created on or before this datetime. Must be a valid ISO8601 timestamp in UTC (ending with 'Z').
Headers
Response
Search results
Example response
{
"data": {
"folders": [
{
"id": 22570,
"name": "My Folder Title",
"description": "About My Folder",
"media_count": 2,
"created": "2010-08-13T18:47:39+00:00",
"updated": "2010-08-19T21:47:00+00:00",
"hashed_id": "4d23503f70",
"public_id": "4bD",
"kind": "shared"
}
],
"subfolders": [
{
"hashed_id": "abc123def4",
"name": "Marketing Videos",
"description": "Collection of all marketing and promotional videos",
"position": 1,
"created": "2024-01-15T10:30:00+00:00",
"updated": "2024-01-20T14:45:00+00:00"
}
],
"medias": [
{
"folder_hashed_id": "4d23503f70",
"transcript_matches": [
{
"text": "today we'll talk about product demo",
"start_time_seconds": 3,
"start_time_formatted": "0:03",
"thumbnail_url": "https://example.com/thumb.jpg?video_still_time=3.0"
}
],
"custom_metadata_field_values": [
{
"key": "client",
"field_type": "single_select",
"updated_at": "2026-07-17T21:47:00Z",
"last_write": {
"at": "2026-08-25T17:55:00Z",
"source": "api",
"actor": {
"id": "abc123de",
"name": "Jane Doe"
}
}
}
]
}
],
"webinars": [
{
"id": "abc123def456",
"hashed_id": "abc123def456",
"title": "Wellness Session: Coping with Outie Memories",
"description": "A comprehensive session on managing work-life balance",
"scheduled_for": "2024-03-20T15:30:00-05:00",
"event_duration": 60,
"time_zone": "America/New_York",
"lifecycle_status": "ready",
"registration_status": "published",
"created_at": "2024-03-15T10:30:00Z",
"updated_at": "2024-03-15T10:30:00Z",
"audience_link": "https://lumon-industries.wistia.com/live/events/abc123def456",
"host_link": "https://lumon-industries.wistia.com/live/events/abc123def456/onair",
"panelist_link": "https://lumon-industries.wistia.com/live/events/abc123def456/onair/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"thumbnail_url": "https://embed-ssl.wistia.com/deliveries/abc123def456.jpg"
}
]
}
}Changes
- info
endpoint added
- info