{
  "openapi": "3.0.1",
  "info": {
    "title": "TripAdvisor Scraper — Hotels, Restaurants & Attractions",
    "description": "Scrape TripAdvisor hotels, restaurants, and attractions at scale. Enter a city name or paste any list/detail URL. Extract 50+ fields per item — ratings, reviews, prices, photos, contact info, nearby places, opening hours, Q&A, and more. Supports 50+ regional domains.",
    "version": "1.0",
    "x-build-id": "teDu0Ni2pVAJ1JNqD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/delicious_zebu~tripadvisor-hotel-details-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-delicious_zebu-tripadvisor-hotel-details-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/delicious_zebu~tripadvisor-hotel-details-scraper/runs": {
      "post": {
        "operationId": "runs-sync-delicious_zebu-tripadvisor-hotel-details-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/delicious_zebu~tripadvisor-hotel-details-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-delicious_zebu-tripadvisor-hotel-details-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "hotelsQueries": {
            "title": "Search keywords",
            "uniqueItems": true,
            "type": "array",
            "description": "City or region names. Example: Tokyo, Paris, New York City.",
            "items": {
              "type": "string"
            }
          },
          "hotelClasses": {
            "title": "Star class",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by hotel star rating. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "5 Star",
                "4 Star",
                "3 Star",
                "2 Star",
                "1.5 Star",
                "1 Star"
              ]
            }
          },
          "hotelStyles": {
            "title": "Style",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by hotel style. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Budget",
                "Mid-range",
                "Luxury",
                "Family-friendly",
                "Business",
                "Romantic",
                "Modern"
              ]
            }
          },
          "hotelAmenities": {
            "title": "Amenities",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by amenities. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Free Wifi",
                "Breakfast included",
                "Pool",
                "Pets Allowed",
                "Free parking",
                "Restaurant",
                "Spa",
                "Air conditioning"
              ]
            }
          },
          "hotelPropertyTypes": {
            "title": "Property type",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by property type. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Motels",
                "Hostels",
                "Resorts",
                "Condos",
                "Lodges",
                "Campgrounds",
                "Capsule hotels",
                "All-Inclusive",
                "Villa"
              ]
            }
          },
          "hotelTravelerRating": {
            "title": "Minimum traveler rating",
            "enum": [
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Only show hotels with this rating or higher."
          },
          "hotelSort": {
            "title": "Sort by",
            "enum": [
              "Best Value",
              "Traveler Ranked",
              "Price (low to high)",
              "Distance to city center"
            ],
            "type": "string",
            "description": "Sort order for results. Default matches TripAdvisor website.",
            "default": "Best Value"
          },
          "hotelCheckIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "Format: YYYY-MM-DD (e.g. 2026-06-01). If not set, defaults to tomorrow. Affects price and availability."
          },
          "hotelCheckOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "Format: YYYY-MM-DD (e.g. 2026-06-03). If not set, defaults to the day after check-in."
          },
          "hotelRooms": {
            "title": "Rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Number of rooms.",
            "default": 1
          },
          "hotelAdults": {
            "title": "Adults",
            "minimum": 1,
            "type": "integer",
            "description": "Number of adult guests.",
            "default": 2
          },
          "hotelChildrenAges": {
            "title": "Children ages",
            "type": "array",
            "description": "List of children's ages, e.g. [3, 7]. Leave empty for adults only."
          },
          "restaurantsQueries": {
            "title": "Search keywords",
            "uniqueItems": true,
            "type": "array",
            "description": "City or region names. Example: Tokyo, Rome, Bangkok.",
            "items": {
              "type": "string"
            }
          },
          "restaurantMealTypes": {
            "title": "Meal type",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by meal type. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Breakfast",
                "Lunch",
                "Dinner"
              ]
            }
          },
          "restaurantPrices": {
            "title": "Price range",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by price level. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Cheap Eats",
                "Mid-range",
                "Fine Dining"
              ]
            }
          },
          "thingsToDoQueries": {
            "title": "Search keywords",
            "uniqueItems": true,
            "type": "array",
            "description": "City or region names. Example: Tokyo, Bangkok, London.",
            "items": {
              "type": "string"
            }
          },
          "thingsToDoCategory": {
            "title": "Category",
            "enum": [
              "Tours",
              "Day Trips",
              "Outdoor Activities",
              "Concerts & Shows",
              "Food & Drink",
              "Events",
              "Shopping",
              "Transportation",
              "Traveler Resources"
            ],
            "type": "string",
            "description": "Select a category. If not set, defaults to Attractions (points of interest). Selecting a category switches to Tours/Activities mode with different sort options."
          },
          "thingsToDoTimeOfDay": {
            "title": "Time of day",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by time of day. Only applies when a category is selected.",
            "items": {
              "type": "string",
              "enum": [
                "Morning",
                "Afternoon",
                "Evening"
              ]
            }
          },
          "thingsToDoDuration": {
            "title": "Duration",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by activity duration. Only applies when a category is selected.",
            "items": {
              "type": "string",
              "enum": [
                "Up to 1 hour",
                "1 to 4 hours",
                "4 hours to 1 day",
                "1 to 3 days",
                "3+ days"
              ]
            }
          },
          "thingsToDoPriceMin": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in USD. Only applies when a category is selected."
          },
          "thingsToDoPriceMax": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in USD. Only applies when a category is selected."
          },
          "thingsToDoTravelerRating": {
            "title": "Minimum traveler rating",
            "enum": [
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Only show items with this rating or higher."
          },
          "thingsToDoSort": {
            "title": "Sort by",
            "enum": [
              "Traveler favorites",
              "Traveler ranking",
              "Featured",
              "Price (low to high)",
              "Price (high to low)",
              "Duration (short to long)",
              "Duration (long to short)"
            ],
            "type": "string",
            "description": "Attractions mode: 'Traveler favorites' or 'Traveler ranking'. Category/Tours mode: 'Featured', 'Price (low to high)', 'Price (high to low)', 'Duration (short to long)', 'Duration (long to short)'."
          },
          "listUrls": {
            "title": "URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Supported formats: Hotels list (e.g. /Hotels-g294217-...), Restaurant list (e.g. /Restaurants-g294217-... or /FindRestaurants?...), Attractions list (e.g. /Attractions-g294217-...), Search page (e.g. /Search?q=...&ssrc=h).",
            "items": {
              "type": "string"
            }
          },
          "detailUrls": {
            "title": "URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Supported: Hotel detail (/Hotel_Review-...), Restaurant detail (/Restaurant_Review-...), Attraction detail (/Attraction_Review-...), Tour/Activity (/AttractionProductReview-...), Cruise (/Cruise_Review-...).",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Region / Language",
            "enum": [
              "United States",
              "Canada (English)",
              "Canada (Français)",
              "Brasil",
              "México",
              "Argentina",
              "Chile",
              "Colombia",
              "Perú",
              "Venezuela",
              "United Kingdom",
              "Italia",
              "España",
              "Deutschland",
              "France",
              "Sverige",
              "Nederland",
              "Türkiye",
              "Danmark",
              "Ireland",
              "Österreich",
              "Ελλάδα",
              "Norge",
              "Portugal",
              "Россия",
              "Schweiz",
              "Suisse",
              "Svizzera",
              "Belgique",
              "België",
              "日本",
              "中国",
              "中文国际版",
              "India",
              "Australia",
              "Malaysia",
              "New Zealand",
              "Philippines",
              "Singapore",
              "Indonesia",
              "대한민국",
              "ไทย",
              "Việt Nam",
              "台灣",
              "Hong Kong SAR",
              "香港特別行政區",
              "العربية",
              "مصر",
              "South Africa",
              "ישראל"
            ],
            "type": "string",
            "description": "Select the TripAdvisor regional domain. This affects the language and currency of the scraped content. All URLs are automatically rewritten to use this domain.",
            "default": "United States"
          },
          "maxItemsPerList": {
            "title": "Max items per list",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of items to collect from each list (each keyword or each list URL). Set to 0 for unlimited — the scraper will paginate until all results are collected.",
            "default": 50
          },
          "scrapeDetailPages": {
            "title": "Scrape full detail pages",
            "type": "boolean",
            "description": "When ON, the scraper visits each item's detail page and returns rich data (reviews, photos, prices, contact info, etc.). When OFF, only basic list-card data is returned (name, rating, URL) — much faster and uses fewer requests.",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}