Listing Search
Search individual listings — restaurants, attractions, and experiences — with geo, category, and personalisation filters.
Overview
The/v2/listing-search endpoint returns a paginated list of individual listings from the Obvlo content engine. Listings represent single points of interest such as restaurants, hotels, attractions, or experiences.
You can filter by geography, free-text query, activity tags, and guest personalisation attributes.
Localised fields and the lang parameter
Several listing fields (name, summary, tagline, address, category, activityTags, keywords, priceLevelText, planVisit, whatToExpect, additionalTextAttributes, preferences, integratedCategories) carry translated content.
The shape of these fields depends on whether lang is provided:
lang | Field shape | Example |
|---|---|---|
Provided (e.g. lang=en-GB) | Plain value — a single string (or array/object) for the requested language. | "summary": "A great place to eat." |
| Omitted | Language map — one key per available language code. | "summary": { "en-GB": "A great place to eat.", "fr-FR": "Un excellent endroit." } |
lang is omitted, at least the default language (en-GB) is always included in the map.
Request
Required parameters
| Parameter | Type | Description |
|---|---|---|
orgId | string | Your organisation ID. |
Optional parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
profileId | string | — | Scope results to a specific host profile. |
searchQuery | string | — | Full-text query matched against listing names and descriptions. |
latlng | string | — | Geo-center for proximity ranking. Format: latitude,longitude (e.g. 51.5074,-0.1278). |
radius | string | — | Search radius in metres around latlng. |
page | string | "1" | Page number (1-based). |
hitsPerPage | string | "10" | Results per page. Maximum 20. |
userCategory | string | — | Filter by user category (e.g. couple, family, solo). |
tripType | string | — | Filter by trip type (e.g. leisure, business). |
userInterests | string | — | Comma-separated interest tags used for personalised ranking. |
activityTags | string | — | Comma-separated activity tags to filter results (e.g. outdoor,family-friendly). |
lang | string | — | BCP 47 language code for localised response fields (e.g. en, fr, de). |
rankBy | string | score | Ranking strategy: score (relevance) or distance (nearest first, requires latlng). |
Examples
Basic search for an organisation
Geo-filtered search near Paris
Filter by activity tags
Personalised search with a specific language
Ranked by distance
Response
- With lang=en-GB
- Without lang (language map)
Response fields
| Field | Type | Description |
|---|---|---|
results | array | Array of listing objects (see below). |
total | integer | Total number of listings matching the query. |
pages | integer | Total number of pages at the requested hitsPerPage. |
Listing object
| Field | Type | Description |
|---|---|---|
id | string | Unique listing identifier. |
contentType | string | Always "listing". |
name | string | object | Listing name. Plain string when lang is provided; language map otherwise. |
summary | string | object | Short description. Plain string when lang is provided; language map otherwise. |
tagline | string | object | One-line tagline. Plain string when lang is provided; language map otherwise. |
address | string | object | Street address. Plain string when lang is provided; language map otherwise. |
neighborhood | string | Neighbourhood or area name (not localised). |
category | string | object | Primary category. Plain string when lang is provided; language map otherwise. |
activityTags | array | object | Activity tags. Array when lang is provided; language map of arrays otherwise. |
geoLocation | array | Coordinates as [latitude, longitude]. |
geoDistance | number | Distance in metres from the requested latlng (when provided). |
googleRating | number | Google Places rating (0–5). |
googleMapsUrl | string | Link to Google Maps. |
phoneNumber | string | Contact phone number. |
websiteUrl | string | Official website URL. |
priceLevel | integer | Numeric price level (1–4). |
priceLevelText | string | object | Price label (e.g. ££). Plain string when lang is provided; language map otherwise. |
openingHours | object | Opening hours data. See Opening hours object. |
photos | array | Array of photo objects. See Image object. |
languageCodes | array | Language codes for which content is available. |
score | number | Relevance score (0–1) used for ranking. |
status | string | Listing status (e.g. active). |
Opening hours object
| Field | Type | Description |
|---|---|---|
openNow | boolean | Whether the listing is currently open. |
nextCloseTime | string | ISO 8601 datetime of next closing time. |
isUnavailable | boolean | true if opening hours data is not available. |
periods | array | Array of { open, close } period objects. |
open and close objects with:
| Field | Type | Description |
|---|---|---|
day | integer | Day of week (0 = Sunday, 6 = Saturday). |
time | string | 24h time string without colon (e.g. "0900"). |
Image object
| Field | Type | Description |
|---|---|---|
id | string | Unique image identifier. |
category | string | Image category tag. |
attributions | array | Attribution strings for the image. |
images | array | Array of { size, url } variant objects. |
Authorizations
Path Parameters
Organization Account Number
Query Parameters
Unique profile identifier
Adding a user category will only return guides that match the category. Possible values: business, family, friends, solo, or couples
Adding a trip type will rank guides based on trip type suitability. Possible values: business, pleasure, or both. Default: both
Comma-separated list of user interests to rank results by weighted match. Available values can be retrieved from the /getPersonalizationOptions endpoint.
Page index used to get next page of responses
Hits per page, maximum 20
A text query containing a name and optionally a location
Radius in meters from center of search
Latitude and Longitude as the center of search, comma separated. Ex: 55.953251,-3.188267
Ranking strategy. One of: 'distance', 'relevance', 'score'
Comma-separated list of activity tags to filter listings
BCP-47 language code (e.g. en-GB). When provided, localizable fields are returned as a single string instead of a language map.