---
title: "Recommendations"
method: POST
path: "/recommendations/search"
tags: ["Agentic Search"]
---

# Recommendations

`POST /recommendations/search`

Returns AI-powered Location recommendations for a natural-language query.

 <p>Accepts a free-text query plus optional geographic context, category filters, and a result limit,
 and returns a ranked set of recommended Locations (and Experiences), each with supporting review
 citations. Built on Tripadvisor's user-generated content and metadata for use in agentic workflows.

## Query parameters

- `locale` string[]

## Request body

- RecommendationSearchRequest
  - `exclude_location_ids` integer[] — List of location ids to filter from the response set. Can be used to simulate pagination.
  - `geo` Geography, required
    - `id` integer — Tripadvisor unique geographical identifier (Geo ID) for the destination. Takes precedence over destination_name if both are provided and search_area is not.
    - `name` string — Name of the destination. Used as geographic context if geo_id or search_area are not provided.
    - `search_area` SearchArea
      - `centroid_latitude` number, required — Latitude of the search area center.
      - `centroid_longitude` number, required — Longitude of the search area center.
      - `search_radius_meters` number, required — Radius of the search area in meters.
  - `limit` integer — Maximum number of locations to return.
  - `query` string, required — Free-text search query from the user. If no destination name, geo_id, or search area is provided, Tripadvisor will attempt to infer the destination context from the free-text query.
  - `response_preference` 'quality' | 'speed'
  - `top_level_categories` TopLevelCategory[] — A set of top level categories (aka PlaceTypes) to filter or focus the search (e.g., ['Eat & Drink', 'Accommodation'], ['Attraction']).

## Response `200`

the ranked recommendation results for the query

- RecommendationsSearchResponse — The response to an Agentic Search recommendations request: the ranked set of recommended results for the query.
  - `search_results` RecommendationSearchResult[], required — The recommended results, ordered from most to least relevant for the query. Each result is either a Location or an Experience.
    - `experience` RecommendationExperience — A recommended Experience (a bookable tour, activity, or attraction ticket), carrying the subset of Experience detail relevant to a recommendation result.
      - `coordinates` Coordinates
        - `latitude` number, required — Geographic latitude coordinate in decimal degrees (-90 to 90)
        - `longitude` number, required — Geographic longitude coordinate in decimal degrees (-180 to 180)
      - `description` Translation[] — Editorial descriptions of the Experience, provided in one or more languages.
        - `language` string, required — Language code for the translation (e.g., "en", "es", "fr")
        - `value` string, required — Translated text content in the specified language
      - `id` integer, required — Tripadvisor's unique identifier for this Experience.
      - `names` Translation[] — The Experience's name in one or more languages.
        - `language` string, required — Language code for the translation (e.g., "en", "es", "fr")
        - `value` string, required — Translated text content in the specified language
      - `overall_traveller_ratings` OverallTravellerRatings
        - `bubble_rating` number — Overall bubble rating score (typically 1.0 to 5.0)
        - `total_review_count` integer — Total number of reviews contributing to this rating
      - `providers` object — Booking providers for the Experience, keyed by provider identifier.
      - `tags` string[] — Descriptive tags associated with the Experience.
    - `location` RecommendationLocation — A recommended Location, carrying the subset of Location detail relevant to a recommendation result.
      - `accommodation` Accommodation
        - `brand` string — Hotel brand name (e.g. <code>&quot;Marriott&quot;</code>, <code>&quot;Hilton&quot;</code>).
        - `chain` string — Hotel chain affiliation (e.g. <code>&quot;Marriott International&quot;</code>).
        - `prices` Price[] — Rate ranges for the accommodation, one entry per currency.
          - `currency` string — ISO 4217 currency code for the rates (e.g. <code>&quot;USD&quot;</code>, <code>&quot;EUR&quot;</code>).
          - `max_rate` number — Maximum room rate in the specified currency.
          - `min_rate` number — Minimum room rate in the specified currency.
        - `room_count` integer — Total number of rooms at the accommodation.
        - `star_rating` integer — Official star rating of the accommodation (1–5).
      - `addresses` Address[], required — Postal addresses for the Location, including a pre-formatted single-line representation per language.
        - `city` string — City or municipality name
        - `country_code` string — ISO 3166-1 alpha-2 country code (e.g., "US", "CA", "GB")
        - `country_name` string — Full country name
        - `formatted` string — Complete formatted address string
        - `language` string — Language code for the address text (e.g., "en", "es", "fr")
        - `postal_code` string — Postal or ZIP code
        - `state` string — State, province, or region name
        - `street_address` string — Primary street address line containing building number and street name
        - `street_address2` string — Secondary street address line for apartment, suite, or unit information
      - `awards` AwardV1[] — Tripadvisor awards the Location has received (e.g. Travelers' Choice).
        - `category` string — Category of the award (e.g., "restaurants", "hotels")
        - `geo` string — Geographic location where the award was received
        - `image` ImageUrl
          - `key` string — Unique identifier for the image
          - `url` string — URL to access the image
        - `name` string — Name of the award
        - `type` 'Certificate of Excellence' | 'Travelers' Choice'
        - `year` integer — Year the award was received
      - `categories` Category[] — The categories this Location is classified under, including the top-level category and parent hierarchy.
        - `display_name` string — Human-readable display name for the category
        - `hierarchy` string — Hierarchical path of the category (e.g., "restaurants > fine_dining")
        - `id` string, required — Unique identifier for the category
        - `parent_category` ParentCategory
          - `display_name` string — Display name for the parent category
          - `id` string — Unique identifier for the parent category
          - `parent_category` object
        - `top_level_category` 'Accommodation' | 'Experience' | 'Attraction' | 'Eat & Drink'
      - `coordinates` Coordinates, required
        - `latitude` number, required — Geographic latitude coordinate in decimal degrees (-90 to 90)
        - `longitude` number, required — Geographic longitude coordinate in decimal degrees (-180 to 180)
      - `descriptions` Translation[] — Editorial descriptions of the Location, provided in one or more languages.
        - `language` string, required — Language code for the translation (e.g., "en", "es", "fr")
        - `value` string, required — Translated text content in the specified language
      - `id` integer, required — Tripadvisor's unique identifier for this Location.
      - `names` TranslationWithPrimary[], required — The Location's name in one or more languages. One name per language is flagged as the primary name.
        - `language` string, required — Language code for the translation (e.g., "en", "es", "fr")
        - `primary` boolean — Indicates if this is the primary language version of the text
        - `value` string, required — Translated text content in the specified language
      - `neighborhoods` Neighborhood[] — Neighborhoods (sub-geographic areas) that the Location is part of.
        - `geo_id` string
        - `name` string
      - `opening_hours` OpeningHours, required
        - `formatted` string[] — Human-readable formatted opening hours strings
        - `periods` Period[] — List of opening hours periods for different days of the week
          - `closes` string — Closing time in HH:MM format (24-hour)
          - `day_of_week` 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'
          - `opens` string — Opening time in HH:MM format (24-hour)
        - `timezone` string — Timezone identifier for the opening hours (e.g., "America/New_York")
      - `phone_numbers` PhoneNumber[], required — Contact phone numbers for the Location, each tagged with its type (e.g. phone, fax).
        - `type` string, required — Type of phone number (e.g., "main", "fax", "mobile", "toll-free") <p> One of: <ul> <li>phone</li> </ul>
        - `value` string, required — The phone number value in international format (e.g., "+1-555-123-4567")
      - `rankings` RankingV1[] — The Location's rank within its Geo and category (e.g. "#23 of 500 Hotels in Lisbon").
        - `category` string — Category name for the ranking
        - `category_id` string — Category ID for the ranking
        - `display_text` string — Human-readable display text for the ranking
        - `geo` string — Geographic location name where the ranking applies
        - `geo_id` integer — Geographic ID where the ranking applies
        - `rank` integer — Current rank position (1-based)
        - `total` integer — Total number of items in the ranking category
      - `status` Status, required
        - `closed_date` string — Date when the location was closed
        - `reopen_date` string — Date when the location is scheduled to reopen
        - `value` 'OPEN' | 'CLOSED' | 'TEMPORARILY_CLOSED', required
      - `traveler_ratings` TravelerRatings, required — Aggregated traveler rating information for a Location, summarizing all of its reviews.
        - `breakdowns` Breakdown[] — Distribution of reviews across each rating value (e.g. how many reviews rated the Location 5, 4, 3).
          - `count` integer
          - `rating` integer
          - `rating_name` string
        - `language_counts` LanguageCount[] — Number of reviews available for the Location per language.
          - `count` integer
          - `language` string
        - `overall` Overall
          - `count` integer — Total number of reviews contributing to this rating
          - `icon_url` string — URL to the rating icon/image
          - `rating` number — Overall rating score (typically 1.0 to 5.0)
        - `subratings` SubRating[] — Average ratings broken down by aspect (e.g. service, cleanliness, value).
          - `count` integer
          - `icon_url` string
          - `rating` number
          - `type` string
          - `type_name` string
      - `urls` Urls, required
        - `android_intent` string
        - `menu` string
        - `official` string
        - `tripadvisor` Tripadvisor
          - `main` string
          - `photos` string
          - `questions_answers` string
          - `write_review` string
    - `review_sources` ReviewSource[], required — Citations to the Tripadvisor reviews that justify this recommendation in the context of the query. Returns an empty array when no specific sources are attributed to this result for the query.
      - `id` integer, required — Unique identifier for the Tripadvisor review.
      - `snippet` string, required — A relevant text snippet from the review that supports or is related to the recommendation and query.
    - `type` 'location' | 'experience', required

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.dev/tripadvisor/apis/partner-api.md) · [All operations](https://skmtc.dev/tripadvisor/apis/partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tripadvisor/partner-api/revisions/b42bdf9fd6a5/schema)
