List and search videos

Returns a paginated list of videos. Supports rich filtering across experience categories, audience segments, vibes, keywords, tags, geography, time context, geo-radius proximity and Xeni property ID.For general keyword searches (e.g. 'hotel', 'rooftop', 'park'), use the `search` parameter - it searches the full video index without requiring an exact value from the `/keywords` or `/tags` endpoints. Multiple values for the same filter are combined with OR logic. Set `includeCoordinates=true` to also receive a `coordinates` array of up to 500 map points for the full filtered result set, for rendering a map alongside the list.

Authentication

x-api-keystring
API key issued with your NaviSavi plan

Query parameters

pageintegerOptional>=1Defaults to 1

Page number (1-based)

limitintegerOptional1-100Defaults to 20

Results per page (max 100)

experienceCategorieslist of enumsOptional
Filter by one or more experience categories
audienceSegmentslist of enumsOptional
Filter by one or more audience segments
vibeslist of stringsOptional

Filter by one or more vibes in the format “{vibe_category} > {vibe}”, e.g. “Personal & Intimate > Solo travel”

placeCategorieslist of enumsOptional

Filter by one or more place types (venue or location category)

keywordslist of stringsOptional
Filter by one or more keyword names
tagslist of stringsOptional
Filter by one or more tag names
searchstringOptional>=1 character
Free-text search against video content, locations, and points of interest. Matches any video whose search index contains the term (case-insensitive). Use this instead of `keywords` or `tags` when you do not have an exact value from those lists - e.g. `hotel`, `rooftop`, `park`, `cinema`. Can be combined with other filters.
countrieslist of stringsOptional
Filter by one or more country names
regionslist of stringsOptional
Filter by one or more region names
localitieslist of stringsOptional
Filter by one or more locality names
locationslist of stringsOptional
Filter by one or more location names
destinationslist of stringsOptional
Filter by one or more destination slugs
minDurationdoubleOptional>=0Defaults to 0
Minimum video duration in seconds
maxDurationdoubleOptional>=0Defaults to 30
Maximum video duration in seconds
monthstringOptional
Filter by month name
seasonenumOptional
timeOfDayenumOptional

Case-insensitive match

latdoubleOptional-90-90
Latitude of the search centre. Must be provided together with lng and radiusKm.
lngdoubleOptional-180-180
Longitude of the search centre. Must be provided together with lat and radiusKm.
radiusKmdoubleOptional0.1-500

Search radius in kilometres (0.1-500). Must be provided together with lat and lng.

xeniPropertyIdlist of stringsOptional
Filter by one or more Xeni property IDs, to find videos matching a specific hotel or place to stay on the Xeni system
includeCoordinatesenumOptional

When true, include a coordinates array of up to 500 lightweight map points covering the entire filtered result set (not just the current page), suitable for rendering alongside the list. Off by default.

Allowed values:
thumbnailWidthintegerOptional>=1Defaults to 1280
Thumbnail width in pixels
thumbnailHeightintegerOptional>=1Defaults to 720
Thumbnail height in pixels
thumbnailTimedoubleOptional>=0Defaults to 4

Time offset in seconds for thumbnail frame (clamped to video duration, or 30s if unknown)

thumbnailTypeenumOptionalDefaults to png
Thumbnail image format
Allowed values:
minResolutionenumOptional
Minimum video resolution for contentUrl. Must be provided together with maxResolution.
maxResolutionenumOptional
Maximum video resolution for contentUrl. Must be provided together with minResolution.

Response

Paginated list of videos
datalist of objects
metaobject
coordinateslist of objects

Map points for the entire filtered result set (not just the current page), capped at 500. Present only when includeCoordinates=true. Independent of pagination, so request it once (e.g. on page 1) and reuse it while paging the same filters.

Errors

400
Bad Request Error
403
Forbidden Error
500
Internal Server Error