Best practices for presenting attraction information retrieved via accommodations/details endpoint.
Use /attractions/details to retrieve static information for attractions, such as names, descriptions, locations, categories, photos, ratings and supported languages.
Combine its response with current information from /attractions/search when you need to show prices and availability to travellers.
Show the information that helps travellers understand and choose an attraction. Display a field only when it is returned and has a value.
| Information | Data source | Display guidance |
|---|---|---|
| Name | name | Display the localised attraction name prominently. |
| Category | categories | The response contains category IDs. Use /attractions/constants to map them to localised category names and parent categories. These IDs can also be used as filters.categories values in /attractions/search. |
| Description | long_description | Display the description returned for the requested language when available. |
| Location | locations | Display the address and post code when available. The city and country fields are IDs; resolve them to names using /common/location/cities and /common/locations/countries. Use coordinates to show the location on a map. |
| Photos | photos | Display images using the returned photo URLs. |
| Duration | duration | Show the estimated duration in a traveller-friendly format. For example, PT2H means approximately two hours. |
| Ratings | ratings.score, ratings.number_of_reviews | Display the average score with the number of reviews. The score is on a scale from 0 to 5. |
| Languages | supported_languages | Show the languages in which the attraction or experience is available. This is separate from the languages request field, which controls the language of localised details. |
| Badges | badges | Use clear labels or icons for returned badges, such as best_seller, free_cancellation or guest_pickup. |
| Points of interest | points_of_interest | Use the IDs to find or group attractions associated with the same venue. See Group attractions by point of interest. |
| Booking links | urls.web, urls.app | Use a returned detail or search-results URL that suits the traveller’s platform. Do not construct these URLs yourself. |
An attraction can have several locations, such as its venue, entrance, departure point or meeting point. Display each location with its type so travellers can understand its purpose. A location can also include an address, city ID, country code, post code and coordinates.
| Location type | Meaning |
|---|---|
arrival | Where the tour or experience ends. |
attraction | Where the experience takes place or can be accessed, such as a landmark, shop, museum or restaurant. |
departure | Where the tour or experience starts, typically for day trips or multi-stop tours. |
entrance | An entrance point, for example when an attraction has several access points. |
guest_pickup | Where travellers are collected before the tour or experience begins. |
meeting | The designated meeting point for participants before the experience starts. |
pickup | Where travellers can collect their tickets before joining the experience. |
Use coordinates to show each location on a map when available.
Keep the location type visible alongside the address so travellers can distinguish, for example, a meeting point from the place where the experience takes place.
points_of_interest contains venue IDs associated with an attraction. These IDs match the point-of-interest IDs returned by /attractions/points-of-interest endpoint.
An attraction can be associated with a point of interest (or multiple) when it takes place there, visits it or passes it. For example, a canal cruise that passes the Rijksmuseum can include the Rijksmuseum’s ID.
The details response contains IDs only, not the point of interest’s name or location - Use /attractions/points-of-interest to look up an ID and retrieve its localised name, coordinates, city and country, and Booking.com web search-results links.
- The endpoint can return points of interest filtered by city or country, or list them across all locations when no location filter is provided.
- Its city and country filters cannot be combined.
The /attractions/details endpoint returns static attraction information and does not return pricing.
Combine its response with relevant /attractions/search results when you need to show current prices or availability.
- Search for attractions with /attractions/search, including the required currency and dates.
- Retrieve details for selected attraction IDs with /attractions/details.
- Display the static details alongside the current search information.
- Use a returned Booking.com URL to direct travellers to continue on the relevant platform.
If you store attraction details, refresh search results before displaying prices or availability.

| Element | Data source | Notes |
|---|---|---|
| Name | name | Display the localised name. |
| Badges | badges | Use visual tags or icons for badges returned by the API. |
| Categories | categories | Map IDs to localised names using /attractions/constants. |
| Rating | ratings.score, ratings.number_of_reviews | Show the score with the number of reviews. |
| Description | long_description | Display the localised description. |
| Location | locations | Show available address and post code; resolve city and country IDs to names and use coordinates where useful. |
| Point of interest | points_of_interest | Use IDs to group related attractions or find attractions associated with the same venue. |
| Duration | duration | Convert the ISO 8601 duration to a readable format. |
| Photos | photos | Display the returned image URLs. |
| Languages | supported_languages | Show the languages available for the experience. |
| Links | urls.web, urls.app | Use the returned detail or search-results URL for the traveller’s platform. |
- Explore the Search for attractions guide.
- Learn how to display reviews and scores.
- See the Attractions API reference.