Tripadvisor Place Cruise API
Our Tripadvisor Place API returns place_result with type: cruise for a cruise ship page. Along with the fields every place can have, it can contain cruise_line, overview, itineraries, decks, cabins, activities, entertainment, dining and more.
The API endpoint is https://serpapi.com/search?engine=tripadvisor_place
Head to the playground for a live and interactive demo.
API examples
Example for cruise with place_id: 15691866
{
...
"place_result": {
"type": "cruise",
"name": "Symphony of the Seas",
"rating": 4.0,
"reviews": 353,
"cruise_line": "Royal Caribbean International",
"images": [
"https://media-cdn.tripadvisor.com/media/photo-m/1280/16/44/6a/19/ultimate-family-suite.jpg",
"https://media-cdn.tripadvisor.com/media/photo-m/1280/16/44/68/14/spacious-interior-cabin.jpg",
...
],
"itineraries": [
{
"title": "7 NIGHT WESTERN CARIBBEAN CRUISE",
"nights": 7,
"destination": "Caribbean - Western",
"departure_port": "Galveston",
"ports": [
{
"day": 1,
"name": "Galveston",
"place_id": "55879",
"serpapi_link": "https://serpapi.com/search.json?engine=tripadvisor_place&place_id=55879&tripadvisor_domain=www.tripadvisor.com"
},
{
"day": 2,
"name": "Cruising"
},
...
],
"departure_dates": [
"2026-10-25",
"2026-11-01",
...
],
"deals": {
"departure_date": "2027-01-24",
"offers": [
{
"provider": "Cruises.com",
"cabin_type": "suite",
"price": "$3654.00",
"extracted_price": 3654.0,
"original_price": "$3679.00",
"extracted_original_price": 3679.0,
"link": "https://www.cruisecritic.com/redirect/vendor-redirect/?url=https%3A%2F%2Fwww.cruises.com%2Fsc.do%3Fd%3D01%2F24%2F2027%26d2%3D01%2F31%2F2027%26i%3D945034%26c%3D44%26v%3D1045%26utm_medium%3Dcomparison_engine%26utm_source%3Dcdot-trip_advisor%26utm_campaign%3Dta_meta_comparison_desktop%26ccdid%3D%3CDID%3E&sailing_id=2022567&vendor_id=31&url_checksum=b620e5973bd18e986b3bdad2fa84a333ec14aaea&product_name=Meta"
},
{
"provider": "Cruises.com",
"cabin_type": "balcony",
"price": "$767.00",
"extracted_price": 767.0,
"original_price": "$824.00",
"extracted_original_price": 824.0,
"link": "https://www.cruisecritic.com/redirect/vendor-redirect/?url=https%3A%2F%2Fwww.cruises.com%2Fsc.do%3Fd%3D01%2F24%2F2027%26d2%3D01%2F31%2F2027%26i%3D945034%26c%3D44%26v%3D1045%26utm_medium%3Dcomparison_engine%26utm_source%3Dcdot-trip_advisor%26utm_campaign%3Dta_meta_comparison_desktop%26ccdid%3D%3CDID%3E&sailing_id=2022567&vendor_id=31&url_checksum=b620e5973bd18e986b3bdad2fa84a333ec14aaea&product_name=Meta"
},
...
]
}
},
...
],
...
}
}
Example of overview and decks
{
...
"place_result": {
...
"overview": {
"passengers": 5518,
"crew": 2200,
"passengers_to_crew_ratio": 2.51,
"passengers_to_space_ratio": 41.3,
"launch_year": 2018
},
"decks": [
{
"level": 3,
"floor_plan": "https://cruise-static.tacdn.com/ships/deck-plans/6599b61f9663b8d6fb7ee1036c9f262b.png",
"cabins": [
{
"name": "Interior",
"category": "1V"
},
{
"name": "Ocean View",
"category": "2N"
},
...
]
},
{
"level": 4,
"floor_plan": "https://cruise-static.tacdn.com/ships/deck-plans/3264e21922bbab11d58bab26cd906890.png"
},
...
],
...
}
}
Example of cabins
{
...
"place_result": {
...
"cabins": [
{
"type": "inside",
"min_size": 149,
"max_size": 260,
"connected_rooms": 128,
"accessible_rooms": 8,
"max_passengers": 6,
"count": 524
},
{
"type": "outside",
"min_size": 179,
"max_size": 271,
"connected_rooms": 32,
"accessible_rooms": 2,
"max_passengers": 6,
"count": 266
},
...
],
...
}
}
Example of activities, entertainment and dining
{
...
"place_result": {
...
"activities": [
{
"name": "CruiseCritic Meet and Mingle",
"count": 1,
"requires_additional_fees": false
},
{
"name": "Dance Classes",
"count": 1,
"requires_additional_fees": false
},
...
],
"entertainment": [
{
"name": "Casino Royale",
"count": 1,
"requires_additional_fees": true
},
{
"name": "Dazzles",
"count": 1,
"requires_additional_fees": false
},
...
],
"dining": [
{
"name": "Main Dining Room",
"cuisine": "American",
"count": 1,
"requires_additional_fees": false
},
{
"name": "Wonderland",
"cuisine": "Avant Garde",
"count": 1,
"requires_additional_fees": true
},
...
],
...
}
}
Example of review_distribution and reviews_list
{
...
"place_result": {
...
"review_distribution": [
{
"rating": "Excellent",
"count": 180
},
{
"rating": "Very Good",
"count": 64
},
...
],
"reviews_list": [
{
"title": "Great service, new ship.",
"snippet": "Beautiful ship, but somewhat crowded. Service was above excellent. Places we visit a lot include Crown lounge, casino, solarium bistro, and main dining room. Everything was excellent with only a few complaints. Food in the wind jammer halfway was fair. Would definitely return again.",
"link": "https://www.tripadvisor.com/ShowUserReviews-g1-d15691866-r1081265513-Symphony_of_the_Seas-World.html",
"rating": 5,
"date": "2026-10-10",
"author": {
"username": "247stuartw",
"link": "https://www.tripadvisor.com/Profile/247stuartw",
"avatar": "https://media-cdn.tripadvisor.com/media/photo-o/1a/f6/e2/4a/default-avatar-2020-42.jpg",
"contributions": 51,
"hometown": "Texas"
}
},
...
],
...
}
}
JSON structure overview
{
"place_result": {
...
"cruise_line": "String - Name of the cruise line (e.g., 'Royal Caribbean International').",
"overview": {
"passengers": "Integer - Passenger capacity.",
"crew": "Integer - Number of crew members.",
"passengers_to_crew_ratio": "Number - Passengers per crew member (e.g., 2.51).",
"passengers_to_space_ratio": "Number - Gross tonnage per passenger (e.g., 41.3).",
"launch_year": "Integer - Year the ship was launched.",
"refurbish_year": "Integer - Year the ship was last refurbished."
},
"itineraries": [
{
"title": "String - Itinerary title (e.g., '7 NIGHT WESTERN CARIBBEAN CRUISE').",
"nights": "Integer - Number of nights.",
"destination": "String - Cruise destination (e.g., 'Caribbean - Western').",
"departure_port": "String - Port of departure.",
"ports": [
{
"day": "Integer - Day of the cruise.",
"name": "String - Port name, or 'Cruising' for days at sea.",
"place_id": "String - Place ID of the port's destination.",
"serpapi_link": "String - SerpApi link to the port's destination."
},
...
],
"departure_dates": "Array - Upcoming departure dates (YYYY-MM-DD).",
// Only when Tripadvisor returns prices
"deals": {
"departure_date": "String - Departure date the offers are for (YYYY-MM-DD).",
"offers": [
{
"provider": "String - Name of the booking provider.",
"cabin_type": "String - Cabin type (e.g., 'inside', 'outside', 'balcony', 'suite').",
"price": "String - Price per person (e.g., '$672.00').",
"extracted_price": "Number - Numeric price per person (e.g., 672.0).",
"original_price": "String - Original price per person, when discounted.",
"extracted_original_price": "Number - Numeric original price per person.",
"link": "String - URL to the offer."
},
...
]
}
},
...
],
"decks": [
{
"level": "Integer - Deck level.",
"name": "String - Deck name (e.g., 'Main Deck').",
"floor_plan": "String - URL of the deck's floor plan image.",
"cabins": [
{
"name": "String - Cabin name (e.g., 'Interior').",
"category": "String - Cabin category code (e.g., '1V')."
},
...
]
},
...
],
"cabins": [
{
"type": "String - Cabin type (e.g., 'inside', 'outside', 'balcony', 'suite').",
"min_size": "Integer - Minimum cabin size in square feet.",
"max_size": "Integer - Maximum cabin size in square feet.",
"connected_rooms": "Integer - Number of connected rooms.",
"accessible_rooms": "Integer - Number of accessible rooms.",
"max_passengers": "Integer - Maximum passengers per cabin.",
"count": "Integer - Number of cabins of this type."
},
...
],
"activities": [
{
"name": "String - Activity name (e.g., 'Rock Climbing Wall').",
"count": "Integer - Number of venues on the ship.",
"requires_additional_fees": "Boolean - Whether the activity may require additional fees."
},
...
],
"entertainment": [
{
"name": "String - Entertainment name (e.g., 'Casino Royale').",
"count": "Integer - Number of venues on the ship.",
"requires_additional_fees": "Boolean - Whether the entertainment may require additional fees."
},
...
],
"dining": [
{
"name": "String - Restaurant or bar name.",
"cuisine": "String - Cuisine (e.g., 'Steakhouse').",
"count": "Integer - Number of venues on the ship.",
"requires_additional_fees": "Boolean - Whether dining may require additional fees."
},
...
],
"review_distribution": [
{
"rating": "String - Rating (e.g., 'Excellent').",
"count": "Number - Number of reviews with this rating."
},
...
]
}
}