Attractions search - use cases 3.2 Beta
Explore common ways to search for attractions and experiences using the Demand API.
Use the /attractions/search endpoint to retrieve available experiences, activities, and tickets for a given location or set of filters.
The following examples show how to structure typical search requests for different traveller use cases.
Attractions by countries
A partner wants to show all attractions in the Netherlands and Belgium during a traveller’s trip across both countries.
- Obtain the country codes for the Netherlands and Belgium from /common/locations/countries endpoint.
- Use the returned codes as the destination in your request.
- Specify dates and currency.
{
"currency": "EUR",
"countries": ["nl", "be"],
"dates": {
"start_date": "2025-11-18",
"end_date": "2025-11-20"
},
"rows": 20,
"sort": { "by": "most_popular" }
}Search by city
Use a city ID to return attractions in that area.
This is the most common use case for travellers exploring things to do in a specific destination.
A couple looking for attractions in Amsterdam in Spanish or French.
- Obtain the
idfor Amsterdam from /locations/cities endpoint. - Use the returned
cityid (-2140479) as the destination in your search. - Specify dates and languages.
Example request
{
"currency": "EUR", //This is mandatory
"cities": [
2140479
],
"dates": {
"start_date": "2025-11-18",
"end_date": "2025-11-20"
},
"supported_languages": [
"es",
"fr"
]
},Search by attraction IDs
A partner already stores attraction IDs and wants to fetch updated pricing and cancellation details.
Example:
{
"currency": "EUR",
"attractions": ["PR0dwCIbnsiU", "AFd2wcIjMauX"],
"dates": {
"start_date": "2025-11-18",
"end_date": "2025-11-20"
}
}There is maximum of 100 attraction IDs per request.
Search by coordinates (geo-based)
A business traveller looking for an overnight stay in Amsterdam, who wants attractions close to the Amsterdam Central Station.
For this case, use latitude and longitude rather than city as the destination, to retrieve nearby attractions.
This is ideal for mobile apps or experiences where the traveller’s current location is known.
- Call /common/locations/landmarks with Amsterdam's id (
-2140479) to obtain the list of key landmarks in Amsterdam and coordinates. - Copy the
latitudeandlongitudeof Amsterdam Central Station. - Set the returned coordinates and
radiusto1KM for the search. - Sort the results by
nearest_location, to prioritise attractions closest to the station.
{
"currency": "EUR",
"cities": [
2140479
],
"coordinates": {
"latitude": 52.3676,
"longitude": 4.9041,
"radius": 1
},
"dates": {
"start_date": "2025-11-18",
"end_date": "2025-11-20"
},
"sort": {
"by": "nearest_location"
}
}
}
Search with filters
Apply filters such as supported languages and/or minimum review score/count to refine results.
Filtering helps partners surface relevant results and improve traveller experience.
Example:
{
"currency": "EUR",
"cities": [
2140479,
2800866
],
"dates": {
"start_date": "2025-09-18",
"end_date": "2025-09-20"
},
"filters": {
"rating": {
"minimum_review_score": 4.2,
"minimum_review_count": 100
},
"supported_languages": [
"en",
"es",
"fr",
"de"
]
},
"rows": 50,
"sort": {
"by": "most_popular"
}
}
Best practices
- Use pagination parameters to manage large result sets.
- Combine geo and filter parameters for hyperlocal, personalised recommendations.
- Sort options typically include
highest_review_score,nearest_location,most_popular, andlowest_price_first. - Always pass the affiliate ID header to ensure correct attribution.
- For more information on setting up search requests, explore the Search for attractions section.
- Refer to the Pagination guide for more details.