{
  "openapi": "3.0.1",
  "info": {
    "title": "Tripadvisor Restaurants Scraper",
    "description": "Scrape every restaurant Tripadvisor lists for a city. Just add a city and get name, rating, review count, cuisines, price level, address, phone, coordinates, opening hours, menu link, awards and reservation details. Filter by cuisine, diet, meal, price, rating and neighbourhood.",
    "version": "1.0",
    "x-build-id": "a8Lsv0lapbyqh9d8X"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/boncross~tripadvisor-restaurants-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-boncross-tripadvisor-restaurants-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/boncross~tripadvisor-restaurants-scraper/runs": {
      "post": {
        "operationId": "runs-sync-boncross-tripadvisor-restaurants-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/boncross~tripadvisor-restaurants-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-boncross-tripadvisor-restaurants-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": {
          "locations": {
            "title": "Cities",
            "type": "array",
            "description": "The cities to list restaurants for. Paste a Tripadvisor link for the city (any page of it, for example its Restaurants page), its id (g187147), or its name (Paris, 東京, New York City). Regions and countries are not lists: give a city.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs (bulk upload)",
            "type": "array",
            "description": "Tripadvisor city links, with the option to load them in bulk from a file, a Google Sheet or a remote list. Combined with anything in the list above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItemsPerLocation": {
            "title": "Maximum restaurants per city",
            "minimum": 0,
            "type": "integer",
            "description": "How many restaurants to return for each city, in the order of the sort you pick. Zero means every one the site lists.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum restaurants for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "A run-wide ceiling on restaurants, across every city. Zero means no limit.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "featured",
              "highestRated"
            ],
            "type": "string",
            "description": "Featured is Tripadvisor's default order. Highest rating puts the best-rated first, weighing how many reviews each has.",
            "default": "featured"
          },
          "establishmentTypes": {
            "title": "Establishment types",
            "type": "array",
            "description": "For example Restaurants, Bakeries, Coffee & Tea, Bars & Pubs, Dessert, Quick Bites. Several are combined with OR. Empty means restaurants (the site's default).",
            "items": {
              "type": "string"
            }
          },
          "cuisines": {
            "title": "Cuisines",
            "type": "array",
            "description": "For example Japanese, Italian, French, Indian, Seafood. Several are combined with OR.",
            "items": {
              "type": "string"
            }
          },
          "dietaryRestrictions": {
            "title": "Dietary restrictions",
            "type": "array",
            "description": "For example Vegetarian friendly, Vegan options, Gluten free options, Halal, Kosher.",
            "items": {
              "type": "string"
            }
          },
          "mealTypes": {
            "title": "Meals",
            "type": "array",
            "description": "For example Breakfast, Brunch, Lunch, Dinner, Late Night, Drinks.",
            "items": {
              "type": "string"
            }
          },
          "features": {
            "title": "Features",
            "type": "array",
            "description": "For example Takeout, Outdoor Seating, Reservations, Wheelchair Accessible, Serves Alcohol.",
            "items": {
              "type": "string"
            }
          },
          "dishes": {
            "title": "Dishes",
            "type": "array",
            "description": "A dish the restaurant is known for, for example Foie gras, Pizza, Sushi, Ramen.",
            "items": {
              "type": "string"
            }
          },
          "goodFor": {
            "title": "Good for",
            "type": "array",
            "description": "For example Families with children, Romantic, Business meetings, Large groups, Scenic view.",
            "items": {
              "type": "string"
            }
          },
          "michelinGuide": {
            "title": "MICHELIN Guide",
            "type": "array",
            "description": "For example MICHELIN 1 Star, MICHELIN 2 Stars, MICHELIN 3 Stars, MICHELIN Bib Gourmand, MICHELIN Guide (any).",
            "items": {
              "type": "string"
            }
          },
          "neighborhoods": {
            "title": "Neighborhoods",
            "type": "array",
            "description": "Neighbourhood names as the city's Restaurants page lists them, for example Le Marais.",
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Minimum traveler rating",
            "enum": [
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Tripadvisor's own rating filter, out of 5. It works on rounded ratings, so a restaurant rated 4.6 can appear under a minimum of 5."
          },
          "awards": {
            "title": "Awards",
            "type": "array",
            "description": "Only award winners. Both together means either award.",
            "items": {
              "type": "string",
              "enum": [
                "travelersChoice",
                "bestOfTheBest"
              ],
              "enumTitles": [
                "Travelers' Choice",
                "Travelers' Choice Best of the Best"
              ]
            }
          },
          "priceLevels": {
            "title": "Price",
            "type": "array",
            "description": "Only restaurants at these price levels.",
            "items": {
              "type": "string",
              "enum": [
                "cheapEats",
                "midRange",
                "fineDining"
              ],
              "enumTitles": [
                "Cheap eats ($)",
                "Mid-range ($$ - $$$)",
                "Fine dining ($$$$)"
              ]
            }
          },
          "openNow": {
            "title": "Open now",
            "type": "boolean",
            "description": "Only restaurants open at the moment the run starts, in the city's own time.",
            "default": false
          },
          "onlyWithReservations": {
            "title": "Only with online reservations",
            "type": "boolean",
            "description": "Only restaurants that take reservations online through Tripadvisor.",
            "default": false
          },
          "onlyWithDelivery": {
            "title": "Only with online delivery",
            "type": "boolean",
            "description": "Only restaurants with online delivery.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}