# OpenTable Reviews Scraper | Restaurant Reviews and Ratings (`silentflow/opentable-reviews-scraper`) Actor

OpenTable reviews scraper: 100 diner reviews in 3 seconds, 78 fields each. Get overall, food, service, ambience, value and noise ratings, review text, diner, visit date, owner reply and the restaurant profile. Start from a restaurant page, name or id, filter by stars and date. No login needed.

- **URL**: https://apify.com/silentflow/opentable-reviews-scraper.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** Travel, Marketing, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.25 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## OpenTable Reviews Scraper | Diner Reviews, Ratings and Owner Replies (2026)

**Every OpenTable diner review of the restaurants you care about, one row per review, from a restaurant page, a restaurant name or an OpenTable id.** Our test run turned the OpenTable page of Bestia in Los Angeles into its 100 newest reviews in under 3 seconds, each with the overall, food, service, ambience, value and noise ratings, the text, the diner, the visit date, and the restaurant's address, cuisine, price range, rating breakdown and bookings of the day on the same row, with no OpenTable account.

### Why choose this actor?

Scrolling an OpenTable reviews tab page after page? Copying restaurant links one by one before you can read a single review? Getting one giant row per restaurant that never opens as a review table?

- <strong>A whole review and its restaurant in one flat row.</strong> Each row carries 85 top-level fields: the review and its six ratings, the diner (name, city, review count, VIP status), the visit and publish dates, photos, the owner's reply, and the restaurant's full profile (address, coordinates, cuisine, price range, hours, dress code, rating breakdown by star, recent review count, review summary, bookings of the day, phone, website). On our three test runs, 76 to 78 of them carried a value on at least half the rows, 78 on the default run. The example output of the most used OpenTable reviews scraper shows 71 keys, for a restaurant, with its reviews nested inside it.
- <strong>Start from a restaurant name or an id, not only a link.</strong> Type `Carbone New York` or `Hawksmoor London` and the run finds the restaurants whose name and city hold every word: 150 one- and two-star reviews of Carbone and two Hawksmoor branches in 6 seconds in our test. Type the OpenTable ids of your restaurants (`11335`, `1024645`) to schedule the same list every week: 36 reviews published in the last 30 days, in 5 seconds. Restaurant pages of any OpenTable country site work in the same form. The most used OpenTable reviews scraper takes restaurant addresses only.
- <strong>Nothing to fill in before you press Start.</strong> No field is required: the form opens with Bestia's page already in place and returns 100 reviews as is. The most used OpenTable reviews scraper will not start until you fill its required start URLs.

### Try your first 100 reviews

Paste this input in the JSON tab of the Input page and press Start. It reads the 100 newest reviews of Bestia, the Italian restaurant in the Arts District of Los Angeles.

```json
{
  "startUrls": [
    { "url": "https://www.opentable.com/r/bestia-los-angeles" }
  ],
  "maxReviews": 100,
  "maxRestaurants": 1,
  "sortBy": "newest"
}
```

It runs on the Apify Free plan. Each review becomes one row of your dataset: open the Output tab to see the table, switch to the "Ratings and replies" view for the food, service, ambience, value and noise scores and the owner's reply, or to the "Restaurant profile" view for the restaurant each review is about, and export the rows as JSON, CSV or Excel.

![How it works](https://api.apify.com/v2/key-value-stores/YXm81xySHg6uRkewS/records/opentable-reviews-scraper-how-it-works-v1.png)

### Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full picture of this scraper:

```
You have access to the OpenTable Reviews Scraper on Apify: silentflow/opentable-reviews-scraper

It reads the public diner reviews of OpenTable restaurants, any country site, without an account,
and returns one row per review, with the restaurant's profile on the same row.

Input schema (no field is required; give at least one restaurant page, name or id):
- startUrls (array of {url}): OpenTable restaurant pages: https://www.opentable.com/r/bestia-los-angeles,
  https://www.opentable.co.uk/hawksmoor-spitalfields, https://www.opentable.com/restaurant/profile/96412.
  A search page (https://www.opentable.com/s?term=carbone&latitude=40.71&longitude=-74.01) is read as a name.
- keywords (array of strings): restaurant names, with the city to pick the right branch:
  "Carbone New York", "Hawksmoor London". Each gives the restaurants whose name and city hold every word.
- restaurantIds (array of strings): OpenTable restaurant ids, the number in /restaurant/profile/{id}: "96412".
- maxReviews (integer, default 100, max 10000): reviews saved per restaurant.
- maxRestaurants (integer, default 1): restaurants taken per name, best match first.
- sortBy (string, default "newest"): newest | oldest | highest_rating | lowest_rating.
- reviewsStartDate (string, optional): keep reviews published on or after it, "2026-01-01" or "30 days".
- starRatings (array of strings, optional): any of "1", "2", "3", "4", "5" (overall rating).

Output per review (85 fields, null when OpenTable gives no value):
- id (string, stable review id), url (string, the review's own link on the restaurant's permanent profile page),
  restaurantId (string), restaurantName (string)
- text (string), rating, foodRating, serviceRating, ambienceRating, valueRating (number, 1 to 5),
  noiseRating (number, 1 to 4, higher is louder), isRecommended (boolean|null)
- helpfulCount, notHelpfulCount, photosCount (integer), photoUrls (array|null),
  hasOwnerResponse (boolean), ownerResponse (string|null), ownerResponseDate (RFC 3339|null)
- authorName, authorLocation, authorInitials (string), authorReviewsCount, authorRatingsCount (integer),
  authorIsVip (boolean), authorLoyaltyTier (string|null), authorAvatarUrl (string|null)
- dinedAt, publishedAt (RFC 3339, UTC)
- restaurantUrl, restaurantAddress, restaurantCity, restaurantState, restaurantPostalCode,
  restaurantCountry, restaurantCountryCode (ISO), restaurantLatitude, restaurantLongitude (number),
  restaurantNeighborhood, restaurantCrossStreet
- restaurantPhone, restaurantWebsite, restaurantMenuUrl, restaurantFacebookUrl
- restaurantPrimaryCuisine, restaurantCuisines (array), restaurantPriceRange (label), restaurantPriceLevel
  (1 to 4), restaurantDiningStyle, restaurantDressCode, restaurantHours, restaurantDescription,
  restaurantExecutiveChef, restaurantParking, restaurantPublicTransit, restaurantPaymentOptions,
  restaurantAccessibility, restaurantFeatures, restaurantSeatingOptions (arrays),
  restaurantOffersTakeout, restaurantHasPrivateDining, restaurantHasGenderNeutralRestroom (boolean),
  restaurantMaxPartySize, restaurantMaxAdvanceBookingDays (integer), restaurantCurrency (ISO),
  restaurantDomain (the OpenTable site, such as opentable.co.uk)
- restaurantRating, restaurantFoodRating, restaurantServiceRating, restaurantAmbienceRating,
  restaurantValueRating (number), restaurantReviewsCount, restaurantRecentReviewsCount,
  restaurantFiveStarCount ... restaurantOneStarCount, restaurantRecommendCount, restaurantPhotosCount,
  restaurantBookingsToday (integer), restaurantReviewSummary (string), restaurantImageUrl (string)
- input (the line of the input that led to the restaurant), scrapedAt (RFC 3339)

Use apify-client for Python or JavaScript: client.actor("silentflow/opentable-reviews-scraper").call(run_input=...)
```

### How to scrape OpenTable reviews

Three inputs, from the simplest to the most filtered. Each one runs as is.

#### Get the latest reviews of a restaurant from its page

Copy the address of the restaurant on OpenTable and paste it. The run saves the newest reviews first.

```json
{
  "startUrls": [
    { "url": "https://www.opentable.com/r/bestia-los-angeles" }
  ],
  "maxReviews": 200
}
```

#### Read the reviews of a restaurant you know by name

No link at hand? Type the name and the city. The run searches OpenTable, keeps the restaurant whose name and city hold every word, and reads its reviews.

```json
{
  "keywords": ["Carbone New York"],
  "maxReviews": 100,
  "sortBy": "newest"
}
```

#### Pull the complaints of a whole group, worst first

Take two branches per name, keep the one- and two-star reviews and read them from the lowest rating up. In our test this input returned 150 reviews from Carbone and two London Hawksmoor branches in 6 seconds, 43 of them with the owner's reply.

```json
{
  "keywords": ["Carbone New York", "Hawksmoor London"],
  "maxRestaurants": 2,
  "maxReviews": 50,
  "sortBy": "lowest_rating",
  "starRatings": ["1", "2"]
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `startUrls` | array of URLs | prefilled with Bestia, Los Angeles | OpenTable restaurant pages, any country site. See the formats below. |
| `keywords` | array of strings | none | Restaurant names, with the city to pick the right branch: `Carbone New York`, `Hawksmoor London`, `Bestia`. |
| `restaurantIds` | array of strings | none | OpenTable restaurant ids, the number in a `/restaurant/profile/96412` address. |
| `maxReviews` | integer | `100` | Reviews saved per restaurant. A restaurant with fewer reviews gives all of them. OpenTable shows up to 10,000 reviews per restaurant in each order. |
| `maxRestaurants` | integer | `1` | Restaurants taken per name, best match first. No effect on pages and ids. |
| `sortBy` | string | `newest` | `newest`, `oldest`, `highest_rating` or `lowest_rating`. |
| `reviewsStartDate` | string | none | Keep only the reviews published on or after this date: `2026-01-01`, or an age such as `7 days`, `2 weeks`, `3 months`. |
| `starRatings` | array of strings | none | Keep only these overall ratings: any of `1` to `5`. |

Accepted restaurant formats:

- Restaurant page: `https://www.opentable.com/r/bestia-los-angeles`, with or without what follows `?`
- Short restaurant page: `https://www.opentable.com/bestia`, `https://www.opentable.co.uk/hawksmoor-spitalfields`
- Profile page: `https://www.opentable.com/restaurant/profile/96412`, including its `/reserve` pages and old links carrying `?rid=96412`
- Search page: `https://www.opentable.com/s?term=carbone&latitude=40.7128&longitude=-74.006`, read as the name `carbone` searched from that place
- Any OpenTable country site: `opentable.co.uk`, `opentable.de`, `opentable.jp`, `opentable.com.mx` and the others
- A page address without its site, as other OpenTable tools take it: `r/central-park-boathouse-new-york-2`
- A bare id in `restaurantIds`: `96412`
- A name in `keywords`: `Smith & Wollensky New York`, `Hawksmoor Spitalfields`, `Bubba Gump New York`

A name only gives a restaurant whose name and city hold every word you typed. When none does, the log says so and the run moves on: a namesake in another city is never taken in its place, so a restaurant that is not on OpenTable gives no row rather than someone else's reviews.

A line that is not an OpenTable restaurant (a city or cuisine page, another site) is skipped and named in the log; the rest of the input still runs. The same restaurant given twice (a page and its id, for instance) is read once, and a review is never saved twice.

### What data can you extract from OpenTable?

Each row is one review, with 85 top-level fields grouped the way you read them. On our three test runs (Bestia; Carbone and two Hawksmoor branches; Hawksmoor Spitalfields and Bubba Gump New York), 76 to 78 of them carried a value on at least half the rows: how many depends on how much of its profile each restaurant filled in.

| Group | Fields |
|---|---|
| Identity (4) | `id` (the review's id, stable), `url` (the review's own link, on the restaurant's permanent profile page on OpenTable), `restaurantId`, `restaurantName` |
| Review and ratings (8) | `text`, `rating` (overall, 1 to 5), `foodRating`, `serviceRating`, `ambienceRating`, `valueRating`, `noiseRating` (1 to 4, higher is louder), `isRecommended` (the diner's "would recommend" answer, when given) |
| Votes, photos and reply (7) | `helpfulCount`, `notHelpfulCount`, `photosCount`, `photoUrls` (full-size photo links), `hasOwnerResponse`, `ownerResponse`, `ownerResponseDate` |
| Diner (8) | `authorName` (first name as shown), `authorLocation` (the diner's city), `authorInitials`, `authorReviewsCount`, `authorRatingsCount`, `authorIsVip`, `authorLoyaltyTier`, `authorAvatarUrl` |
| Time (2) | `dinedAt` (the visit), `publishedAt` (the review), both RFC 3339 in UTC |
| Restaurant location (11) | `restaurantUrl`, `restaurantAddress`, `restaurantCity`, `restaurantState`, `restaurantPostalCode`, `restaurantCountry`, `restaurantCountryCode`, `restaurantLatitude`, `restaurantLongitude`, `restaurantNeighborhood`, `restaurantCrossStreet` |
| Restaurant contact (4) | `restaurantPhone`, `restaurantWebsite`, `restaurantMenuUrl`, `restaurantFacebookUrl` |
| Restaurant profile (22) | `restaurantPrimaryCuisine`, `restaurantCuisines`, `restaurantPriceRange` (the label OpenTable prints, in local currency), `restaurantPriceLevel` (1 to 4), `restaurantDiningStyle`, `restaurantDressCode`, `restaurantHours`, `restaurantDescription`, `restaurantExecutiveChef`, `restaurantParking`, `restaurantPublicTransit`, `restaurantPaymentOptions`, `restaurantAccessibility`, `restaurantFeatures`, `restaurantSeatingOptions`, `restaurantOffersTakeout`, `restaurantHasPrivateDining`, `restaurantHasGenderNeutralRestroom`, `restaurantMaxPartySize`, `restaurantMaxAdvanceBookingDays`, `restaurantCurrency`, `restaurantDomain` |
| Restaurant ratings and activity (17) | `restaurantRating`, `restaurantFoodRating`, `restaurantServiceRating`, `restaurantAmbienceRating`, `restaurantValueRating`, `restaurantReviewsCount` (all time), `restaurantRecentReviewsCount` (the recent reviews the rating is based on), `restaurantFiveStarCount`, `restaurantFourStarCount`, `restaurantThreeStarCount`, `restaurantTwoStarCount`, `restaurantOneStarCount`, `restaurantRecommendCount`, `restaurantReviewSummary` (OpenTable's summary of what diners say), `restaurantPhotosCount`, `restaurantImageUrl`, `restaurantBookingsToday` |
| Meta (2) | `input` (the page, name or id of your input that led to this restaurant), `scrapedAt` |

A value OpenTable does not give is `null`, never an empty string. Ratings and counts are numbers, not text. The restaurant fields are read once per restaurant and repeated on each of its reviews, so a CSV export can be filtered or pivoted by city, cuisine or price level without a second file.

Which fields stay empty depends on the restaurant and the diner. Owner replies only exist where the restaurant answers: none on Bestia's 100 newest reviews, 43 of 150 on the complaints run above. On Bestia's 100 newest reviews, 38 carry the diner's "would recommend" answer and 11 a photo. A restaurant that never filled in its chef, menu link or public transit leaves those columns empty, and a restaurant nobody reviewed yet has no rating at all rather than a rating of zero.

#### Output example

One row of our default run, as the dataset stores it:

```json
{
  "id": "OT-96412-2110729164-170058752587",
  "url": "https://www.opentable.com/restaurant/profile/96412#review-OT-96412-2110729164-170058752587",
  "restaurantId": "96412",
  "restaurantName": "Bestia",
  "text": "Excellent experience, awesome food and a great wine list. Highly recommended if you enjoy the wine and food experience and pairing, as the sommelier helped us with some unique pairings that we enjoyed.",
  "rating": 5,
  "foodRating": 5,
  "serviceRating": 5,
  "ambienceRating": 5,
  "valueRating": 4,
  "noiseRating": 3,
  "isRecommended": true,
  "helpfulCount": 0,
  "notHelpfulCount": 0,
  "photosCount": 0,
  "photoUrls": null,
  "hasOwnerResponse": false,
  "ownerResponse": null,
  "ownerResponseDate": null,
  "authorName": "Scott",
  "authorLocation": "New Orleans",
  "authorInitials": "S",
  "authorReviewsCount": 5,
  "authorRatingsCount": 0,
  "authorIsVip": true,
  "authorLoyaltyTier": "GOLD",
  "authorAvatarUrl": null,
  "dinedAt": "2026-09-28T19:30:00Z",
  "publishedAt": "2026-09-29T18:17:00Z",
  "restaurantUrl": "https://www.opentable.com/bestia",
  "restaurantAddress": "2121 E. 7th Place",
  "restaurantCity": "Los Angeles",
  "restaurantState": "CA",
  "restaurantPostalCode": "90021",
  "restaurantCountry": "United States",
  "restaurantCountryCode": "US",
  "restaurantLatitude": 34.0336766,
  "restaurantLongitude": -118.2291954,
  "restaurantNeighborhood": "Downtown",
  "restaurantCrossStreet": "Santa Fe Avenue",
  "restaurantPhone": "(213) 514-5724",
  "restaurantWebsite": "http://bestiala.com/",
  "restaurantMenuUrl": "http://bestiala.com/menu/",
  "restaurantFacebookUrl": "http://www.facebook.com/BestiaDTLA",
  "restaurantPrimaryCuisine": "Italian",
  "restaurantCuisines": ["Italian"],
  "restaurantPriceRange": "$31 to $50",
  "restaurantPriceLevel": 3,
  "restaurantDiningStyle": "Casual Dining",
  "restaurantDressCode": "Casual Dress",
  "restaurantHours": "Dinner\nDaily 5:00 pm–11:00 pm",
  "restaurantDescription": "A multi-regional Italian restaurant in the Arts District of downtown Los Angeles.",
  "restaurantExecutiveChef": "Ori Menashe & Genevieve Gergis",
  "restaurantParking": "Valet",
  "restaurantPublicTransit": null,
  "restaurantPaymentOptions": ["AMEX", "Discover", "Mastercard", "Visa"],
  "restaurantAccessibility": ["Gender Neutral Restroom", "Wheelchair Access"],
  "restaurantFeatures": ["RESERVATION", "DIRECT_MESSAGING", "DINER_AI"],
  "restaurantSeatingOptions": ["default", "hightop", "counter"],
  "restaurantOffersTakeout": true,
  "restaurantHasPrivateDining": true,
  "restaurantHasGenderNeutralRestroom": true,
  "restaurantMaxPartySize": 8,
  "restaurantMaxAdvanceBookingDays": 60,
  "restaurantBookingsToday": 154,
  "restaurantCurrency": "USD",
  "restaurantRating": 4.7,
  "restaurantFoodRating": 4.7,
  "restaurantServiceRating": 4.7,
  "restaurantAmbienceRating": 4.5,
  "restaurantValueRating": 4.2,
  "restaurantReviewsCount": 9191,
  "restaurantRecentReviewsCount": 1016,
  "restaurantFiveStarCount": 825,
  "restaurantFourStarCount": 125,
  "restaurantThreeStarCount": 45,
  "restaurantTwoStarCount": 13,
  "restaurantOneStarCount": 8,
  "restaurantRecommendCount": 119,
  "restaurantReviewSummary": "Bestia is a culinary gem that consistently delivers \"outstanding food and service.\" With an energetic atmosphere and a diverse menu featuring standout dishes like \"mushroom pizza\" and \"scallop crudo,\" it impresses diners from all over. Known for its \"exceptional wine list\" and attentive service, Bestia promises a memorable dining experience.",
  "restaurantPhotosCount": 23,
  "restaurantImageUrl": "https://resizer.otstatic.com/v4/photos/23933357-1?width=1280&height=1280",
  "restaurantDomain": "opentable.com",
  "input": "https://www.opentable.com/r/bestia-los-angeles",
  "scrapedAt": "2026-10-03T18:32:13Z"
}
```

`id` and `url` never change and are unique to each review: use `id` to deduplicate between two runs. `restaurantUrl` is the address OpenTable shows diners, which a restaurant can rename; `url` and `restaurantId` stay the same. Photo and image links point to OpenTable's image server and keep working as long as the photo stays on the restaurant's page.

### Advanced usage

#### Watch the new reviews of your restaurants every week

Schedule this input every Monday on the Apify Console. It keeps only the reviews published in the last 7 days, newest first, and stops reading as soon as the reviews get older, so a weekly run stays short.

```json
{
  "restaurantIds": ["11335", "102156", "1024645"],
  "reviewsStartDate": "7 days",
  "sortBy": "newest",
  "maxReviews": 1000
}
```

Add a webhook on the run to post the new rows to Slack or to append them to a Google Sheet.

#### Compare every branch of a restaurant group

Type the group's name and raise `maxRestaurants`: each branch whose name holds every word is read, and `restaurantName`, `restaurantNeighborhood` and the four sub-ratings let you rank them in one pivot table.

```json
{
  "keywords": ["Hawksmoor"],
  "maxRestaurants": 10,
  "maxReviews": 200,
  "sortBy": "newest"
}
```

#### Search from a place, like the OpenTable search box

Paste an OpenTable search page and the name is searched from the latitude and longitude it carries, which puts the branch of that city first. Here, Carbone near Manhattan.

```json
{
  "startUrls": [
    { "url": "https://www.opentable.com/s?term=carbone&latitude=40.7128&longitude=-74.006" }
  ],
  "maxReviews": 100
}
```

#### Build the full rating history of a restaurant

Read the oldest reviews first to follow how a restaurant's scores moved since it opened on OpenTable. `dinedAt` gives the month of each visit for a time series of `foodRating`, `serviceRating` and `valueRating`.

```json
{
  "startUrls": [
    { "url": "https://www.opentable.com/restaurant/profile/96412" }
  ],
  "sortBy": "oldest",
  "maxReviews": 2000
}
```

#### Collect the five-star praise for your marketing

Keep only the five-star reviews of the last three months, newest first, ready to quote on a menu, a website or a pitch deck. The `authorName` and `authorLocation` columns credit each quote the way OpenTable shows it.

```json
{
  "keywords": ["Bestia Los Angeles"],
  "starRatings": ["5"],
  "sortBy": "newest",
  "reviewsStartDate": "3 months",
  "maxReviews": 300
}
```

### FAQ

**What is OpenTable?**
OpenTable is the restaurant reservation platform of the United States, also used by restaurants in the United Kingdom, Ireland, Canada, Mexico, Germany, Spain, France, Japan and more, each country on its own site (opentable.co.uk, opentable.de, opentable.jp). Diners review the restaurant after a booked visit, so each review carries the date of that visit.

**What does this scraper return exactly?**
One row per diner review: the text, the overall rating and the food, service, ambience, value and noise ratings, the diner's first name, city, review count and VIP status, the visit and publish dates, photos, the owner's reply, and 54 fields about the restaurant itself, from its address and coordinates to its rating breakdown and the bookings of the day.

**Do I need an OpenTable account?**
No. The scraper reads what any visitor sees on a restaurant page, without logging in. There is no account, no API key and nothing to connect.

**Which inputs can I use?**
Three kinds, in any mix: restaurant pages of any OpenTable country site, restaurant names (add the city to pick the right branch), and OpenTable restaurant ids. A search page of the site is read as a name searched from the place it shows.

**How many reviews can I get per restaurant?**
As many as you set in `maxReviews`. OpenTable shows up to 10,000 reviews of a restaurant in each order; for the rare restaurants with more, run once newest first and once oldest first. In our test, 100 reviews took under 3 seconds.

**Can I filter by stars and by date?**
Yes, and the filters combine. `starRatings: ["1", "2"]` with `sortBy: "lowest_rating"` and `reviewsStartDate: "30 days"` gives the complaints of the last month, worst first. The date is the publish date of the review. OpenTable lists reviews by visit date, so newest first the run stops once the visits are older than your date: a review posted long after the visit can be left out (3 of 113 five-star reviews of the last three months in our test on Bestia). Use another order to read every review and keep the dated ones.

**How fresh is the data?**
Each run reads OpenTable live, at the time of the run, with nothing cached: a review is in the next run as soon as OpenTable shows it on the restaurant's page. Our default run, in the evening of October 3, held a review published that same morning.

**Why is a field empty on some rows?**
Because OpenTable does not have it for that review or that restaurant. Few diners add photos, many restaurants never reply, and a restaurant decides which profile details it fills in. An empty value is `null`, never invented.

**Why did a restaurant return no review?**
Either it has none yet (common on the newer country sites: the Narisawa page on opentable.jp had none in our test), or your filters kept none. The run says which in its log and in its final status, and moves on to the next restaurant.

**What do the noise ratings mean?**
Diners rate the noise level of their visit; the scraper returns it as `noiseRating` from 1 to 4, higher meaning louder. Restaurants known as lively, like Bestia, get mostly 3 and 4.

**Can I scrape many restaurants in one run?**
Yes. Add as many pages, names and ids as you need; they are read one after the other and each review is saved once, even when two inputs point to the same restaurant.

### More SilentFlow scrapers

**🛒 E-commerce**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-EwIy6hmAIkV86xJUC-aJ1jMMbt1P-pinterest-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Pinterest** - [Pinterest Scraper | Pins, Boards and Profiles](https://apify.com/silentflow/pinterest-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-atanai8HrwCpCBlt5-E6CthBRt0r-lbc-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Leboncoin Ppe** - [Leboncoin Scraper Ppe](https://apify.com/silentflow/leboncoin-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-C0NPCweMgn5yWwbUx-lod4axD8CS-backmarket-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Back Market** - [Back Market Scraper | Refurbished Prices](https://apify.com/silentflow/backmarket-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-aU0gg4bdpvsOcMXVB-hXmXwVmyyM-lbc-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Leboncoin** - [Leboncoin Ad Details Scraper](https://apify.com/silentflow/leboncoin-details-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-TEpaAoZ4jUpjMEJUd-9qLyyz2kJq-1688-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **1688 Wholesale** - [1688 Wholesale Scraper](https://apify.com/silentflow/1688-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-1EifBfwD2bfPzRiev-e5JKkzexMU-tiktok-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **TikTok Shop** - [TikTok Shop Scraper](https://apify.com/silentflow/tiktok-shop-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-s1RZ9wIkef7aFJn2F-1dcklKrFce-udemy-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Udemy Course** - [Udemy Course Scraper](https://apify.com/silentflow/udemy-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-BRosfzMGHW8iDZTf0-K9GzqNGke9-importyeti-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **ImportYeti - US Customs Records, Suppliers & Trade Data** - [ImportYeti Scraper - US Customs Records, Suppliers & Trade Data](https://apify.com/silentflow/importyeti-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-e6ep7rXdChT8aamvM-zkMRbNCYoj-BAG-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Bring a Trailer** - [Bring a Trailer Scraper](https://apify.com/silentflow/bringatrailer-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-eOXjDH0bayKUrhdVh-fg8IiUlQN7-storeleads-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Store Leads** - [Store Leads Scraper | Shopify Data](https://apify.com/silentflow/storeleads-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-onhF7mRv3VP49FIaB-wGgRc3t1Ca-walmart-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Walmart** - [Walmart Product Scraper](https://apify.com/silentflow/walmart-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-9wgEmcwOMe5oL58OJ-HUomdQB0RR-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Naver** - [Naver Products Scraper | Shopping Prices, Sellers and Ratings](https://apify.com/silentflow/naver-products-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-fp237KZlZX0UgUspX-N7fpyolYeG-vinted-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Vinted Marketplace** - [Vinted Marketplace Scraper](https://apify.com/silentflow/vinted-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-hUgLd6vx8vkB2jhVF-yrOqnRI7Hd-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Agoda** - [Agoda Scraper | Hotel Prices and Guest Ratings](https://apify.com/silentflow/agoda-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-ijQ4eUq3pQwUgnI5G-sMfxdcJgnH-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Alibaba** - [Alibaba Products Scraper | Wholesale Prices and MOQ](https://apify.com/silentflow/alibaba-products-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-t7KcJhmA0xs4rkZ8r-Dn73N4GDUP-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **AliExpress** - [AliExpress Scraper | Products, Prices and Sales](https://apify.com/silentflow/aliexpress-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-cSvTTTqAx3ZyUxgoS-VNOzFUGuqA-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Amazon Seller** - [Amazon Seller Scraper | Emails, Phones and Ratings](https://apify.com/silentflow/amazon-seller-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-HgKg3BGCBdZ7RjOdn-MjUIaNcAxg-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Coupang** - [Coupang Detail Scraper | Product Prices and Options](https://apify.com/silentflow/coupang-detail-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-QNlZ05n2CMGkjdfNC-8apA5gg993-europages-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Europages** - [Europages Scraper | Suppliers and B2B Companies](https://apify.com/silentflow/europages-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-VbfvtmvKpzUinMqJe-7Fdjq2fvAh-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Google Hotels** - [Google Hotels Scraper | Prices, Offers and Ratings](https://apify.com/silentflow/google-hotels-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-AifZ9jTVCKApss1tl-WCyNoVaI2j-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Homedepot** - [Homedepot Reviews Scraper | Customer Reviews and Ratings](https://apify.com/silentflow/homedepot-reviews-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-CSkch7Tsrh852fAed-hGA1rJtM8E-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Lowes** - [Lowes Products Scraper | Prices, Stock and Specs](https://apify.com/silentflow/lowes-products-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-D5FpGqMOcyOiDybiK-V8jY1xr0NJ-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Mercari** - [Mercari Scraper | Listings, Sold Prices and Sellers](https://apify.com/silentflow/mercari-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-nFDJa9hpMkgdm0cdT-LrkY4gLA8l-mobile-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Mobile.de** - [Mobile.de Scraper](https://apify.com/silentflow/mobile-de-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-yvnrUH669fS4ag2cu-FARjTe0a3I-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Naver** - [Naver Reviews Scraper | Shopping Product Reviews](https://apify.com/silentflow/naver-reviews-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-YqSo5lNgQjoviRgL3-zKyBefstVj-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Taobao** - [Taobao Scraper | Products, Prices and Sellers](https://apify.com/silentflow/taobao-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-PZuh7g95fK3Bg1Xc2-SkYQsj5Z67-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Alibaba** - [Alibaba Scraper | Products, Prices and Suppliers](https://apify.com/silentflow/alibaba-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-q8VhkhmohTsKt1LBt-VaesRNrMjv-amazon-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Amazon Marketplace** - [Amazon Marketplace Scraper](https://apify.com/silentflow/amazon-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-tzuadHpcDbR8q0wAg-fC9ziOmYxT-autoscout24.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **AutoScout24** - [AutoScout24 Scraper](https://apify.com/silentflow/autoscout24-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-aavQkGpC2LBeuvEwN-Hz80kcjr5W-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Avito** - [Avito Scraper | Listings, Prices and Sellers](https://apify.com/silentflow/avito-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-EdmY2dSHXAUjwjWSQ-BLKPSuVZiq-ebay-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **eBay Listings** - [eBay Listings Scraper](https://apify.com/silentflow/ebay-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-M2BasJxgdoFV19BBa-fvLaIDNtMA-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Naver** - [Naver Scraper | Shopping Products, Prices and Reviews](https://apify.com/silentflow/naver-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-BugqW4xXbqPRfcw3h-EdtM39QnzL-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Trip** - [Trip Scraper | Hotels, Prices and Reviews](https://apify.com/silentflow/trip-scraper)

**💼 Jobs**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-gtWn9a7ClKayV2BnH-NIQrL1lp62-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **ZipRecruiter** - [ZipRecruiter Jobs Scraper | Salary, Company & Location Filters](https://apify.com/silentflow/ziprecruiter-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-PPmMAK41kmcgEknlo-tdaljEgep6-indeed-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Indeed** - [Indeed Company Reviews Scraper](https://apify.com/silentflow/indeed-companies-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-QWGmrJFfdRhAzjZVu-9sdljw0os9-glassdoor-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Glassdoor Job Listings** - [Glassdoor Job Listings Scraper](https://apify.com/silentflow/glassdoor-jobs-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-tAqXRXa8zXGiR3DFW-8JgTWQUjXq-linkedin-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Multi Board** - [Multi Board Job Scraper](https://apify.com/silentflow/all-jobs-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-9FJAkbqgbJTRwSPiB-iBvUugof0i-linkedin-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **LinkedIn Job Search** - [LinkedIn Job Search Scraper | Salaries & Seniority](https://apify.com/silentflow/linkedin-jobs-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-iMsJMUzpktqLbm4OV-eiqodM2mWC-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **ATS** - [ATS Jobs Scraper | Greenhouse, Lever and Ashby](https://apify.com/silentflow/ats-jobs-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-9GPqfanGlbgZ21fvt-pQBn8BMrKB-glassdoor-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **🔥 Glassdoor** - [🔥 Glassdoor Scraper](https://apify.com/silentflow/glassdoor-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-hhgmb5se3nld9o4RQ-qprQYVjDoz-jora-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Jora** - [Jora Jobs Scraper](https://apify.com/silentflow/jora-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-8sqgZzxpFOMN5fjlS-7yQ5JySZrZ-indeed-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Indeed Jobs Ppr** - [Indeed Jobs Scraper Ppr](https://apify.com/silentflow/indeed-jobs-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-D87Z9kVGh1gWRAnkT-mSHgaaEupo-wttj-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Welcome to the Jungle** - [Welcome to the Jungle Job Scraper](https://apify.com/silentflow/welcome-to-the-jungle-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-eRgZpJacbZbsunaoK-qxyRdrPxAN-_Arbeitsagentur-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Arbeitsagentur** - [Arbeitsagentur Jobs Scraper](https://apify.com/silentflow/arbeitsagentur-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-mSbSDu9LyBQBaQpfd-hst3kbWWUw-dicejobs-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Dice Tech** - [Dice Tech Jobs Scraper](https://apify.com/silentflow/dice-jobs-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-6J8r8gH0kZNBYNXwB-VnxP6Gxhxy-malt-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Malt** - [Malt Scraper | Freelance Profiles](https://apify.com/silentflow/malt-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-m4mtOcp6kQMdi7iyh-7gIaTKwjLg-naukri-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Naukri & NaukriGulf** - [Naukri & NaukriGulf Jobs Scraper](https://apify.com/silentflow/naukri-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-bGlNyxwqHMZKTsFwR-vRF9llQsLh-seek-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Seek** - [Seek Job Scraper](https://apify.com/silentflow/seek-job-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-W7cEQHjESuSAwr4Vm-axPWLT6fki-stepstone-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **StepStone** - [StepStone Scraper](https://apify.com/silentflow/stepstone-scraper)

**🏠 Real estate**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-NlweoCSkQ7af9rUsM-j0ehaDblPL-seloger-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **SeLoger** - [SeLoger Scraper | Real Estate Listings](https://apify.com/silentflow/seloger-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-V815A23P36Qn3Ug0h-HdUhHKA4N8-zillow-png.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Zillow** - [Zillow Scraper](https://apify.com/silentflow/zillow-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-VSWH7QNYqqhEvT8Du-elGJDy3g1C-realtor-logo_%281%29.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Realtor Rental Listings** - [Realtor Rental Listings Scraper](https://apify.com/silentflow/realtor-rental-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-Yeajib8i2WxOgUPHy-CAzWajmmro-bienici-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Bien'ici** - [Bien'ici Scraper | Property Listings](https://apify.com/silentflow/bienici-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-FrWpTeBvt2jFMh5xl-TcBdTPkao9-airbnb-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Airbnb Pro Host Contact &** - [Airbnb Pro Host Contact & Email Scraper](https://apify.com/silentflow/airbnb-professional-host-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-zq09H5yXin1a6Caox-jVuubAzZ54-app-store.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Rightmove** - [Rightmove Scraper](https://apify.com/silentflow/rightmove-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-CDJe91RJzge21TvRu-u8RETl6mRT-trulia-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Trulia Rental Listings** - [Trulia Rental Listings Scraper](https://apify.com/silentflow/trulia-rental-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-EJUdcAko1ycktQon3-1qfaJJpNpV-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Anjuke** - [Anjuke Scraper | Rental Listings, Prices and Agents](https://apify.com/silentflow/anjuke-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-453jnXoLeE3fsojPc-S9dhZdlBdn-idealista-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Idealista** - [Idealista Scraper](https://apify.com/silentflow/idealista-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-BCYe75iB5AhwosyOy-NYviTLAHJI-Realestate.com.au-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Realestate.com.au** - [Realestate.com.au Scraper](https://apify.com/silentflow/realestate-com-au-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-uvVEeQTILZ62Pq7ON-9ltCYD8oJl-airbnb-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Airbnb Search** - [Airbnb Search Scraper](https://apify.com/silentflow/airbnb-search-scraper-ppe)

**📣 Social media**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-S2b0EfKNdLjlGdFVR-SqQ2kgXX7Z-linkedin-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **LinkedIn Post Search** - [LinkedIn Post Search Scraper | Keywords, Hashtags & Profiles](https://apify.com/silentflow/linkedin-posts-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-VSLP7HLRQnCrqvGvx-lhDdKNbTgS-facebook-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Facebook Search** - [Facebook Search Scraper](https://apify.com/silentflow/facebook-search-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-05SDCsJvEWHJfCDbA-EvakITGVxq-linkedin-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **LinkedIn Leads** - [LinkedIn Leads Scraper | Sales Navigator Export](https://apify.com/silentflow/linkedin-sales-navigator-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-zNpIOqbBjhHKVhqxf-VdyRFdjjA5-onylfans-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **OnlyFans** - [OnlyFans Profile Scraper](https://apify.com/silentflow/onlyfans-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-aJodi46eH9Kr4ZSyb-gEI022sLhb-instagram-logo2.webp" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Instagram Engagement** - [Instagram Engagement Scraper](https://apify.com/silentflow/instagram-engagement-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-JKVy5Y2JdZp3cJx9V-G17xaH2NdP-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Instagram** - [Instagram Story Scraper | Stories & Highlights](https://apify.com/silentflow/instagram-story-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-jmc7hG0vNhHWEOW1a-67ngl6PWgl-meta-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Meta Ad Library** - [Meta Ad Library Scraper](https://apify.com/silentflow/meta-ad-library-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-9I9dIxRr2sK94ff1x-1onfiTo8Tu-tiktok-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **TikTok** - [TikTok Scraper](https://apify.com/silentflow/tiktok-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-arhuSPVRAhKI1CqUU-Ss8VSxKZlA-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **YouTube** - [YouTube Channel Scraper | Videos, Shorts and Views](https://apify.com/silentflow/youtube-channel-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-lkCHlZSMFv48uKnIr-dY20UYSmKN-skool-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Skool Community** - [Skool Community Scraper](https://apify.com/silentflow/skool-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-BSZqlUwYEcQIScnP0-nCnIHkhmv8-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Kuaishou** - [Kuaishou Scraper | Videos, Comments and Creator Stats](https://apify.com/silentflow/kuaishou-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-v5cQ9qwSmnrMfJHQJ-qavGTbOUpH-reddit-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Reddit - Posts, Comments, Communities &** - [Reddit Scraper - Posts, Comments, Communities & Users](https://apify.com/silentflow/reddit-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-Zarijahb0dFeg32qJ-YwdJaxT4pi-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Weibo** - [Weibo Scraper | Posts, Profiles and Engagement](https://apify.com/silentflow/weibo-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-m3pr1TZsKhqcZnk0R-Kv74VhVgkQ-bilibili-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Bilibili** - [Bilibili Scraper](https://apify.com/silentflow/bilibili-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-q6aVcOjrqdHNXS79v-GE7f4L0f0A-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Discord** - [Discord Scraper | Servers, Member Counts and Invites](https://apify.com/silentflow/discord-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-aG488smg5t0vnFb9v-phbAlgcSO7-facebook-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Facebook Business Page** - [Facebook Business Page Scraper](https://apify.com/silentflow/facebook-company-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-IMuIFYJbPsCO9oXXS-zP9gSGKOGA-youtube-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **YouTube** - [YouTube Transcript Scraper](https://apify.com/silentflow/youtube-transcript-scraper)

**🏢 Business data**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-KPjqpu03XAU7GlRZU-nJ299wrqI1-linkedin-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **LinkedIn People Search** - [LinkedIn People Search Scraper | Profiles & Companies](https://apify.com/silentflow/linkedin-profiles-companies-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-molBrkMO74CErSMGg-FveXkhqbJj-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Company Data** - [Company Data Scraper | Emails, Phones and Tech Stack](https://apify.com/silentflow/company-data-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-4FdcRNY2hYZLRbWA1-lbV7wdzd5C-teachable-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Teachable - Courses, Prices & Instructors** - [Teachable Scraper - Courses, Prices & Instructors](https://apify.com/silentflow/teachable-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-ZvqwjzGwkb8yFlsgu-gWaYSkgERc-trustpilot-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Trustpilot** - [Trustpilot Enricher](https://apify.com/silentflow/trustpilot-enricher)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-VsEQmSNYZCRKgexdN-Rh9GICaaQC-web-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Website Tech Stack** - [Website Tech Stack Scraper](https://apify.com/silentflow/website-tech-stack-scraper)

**✈️ Travel**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-DcAFMmwt5U2hZXaSi-N0K1QMZadw-google-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Google Maps** - [Google Maps Scraper](https://apify.com/silentflow/google-maps-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-Cl3eFekoWO9WFmDJN-QVTefWmdkV-booking-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Booking.com Hotel** - [Booking.com Hotel Scraper](https://apify.com/silentflow/booking-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-ayeR077oYKlBZdWGZ-hxYhjr3L43-flight2-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Flight Price** - [Flight Price Scraper](https://apify.com/silentflow/flight-price-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-MJfzpz7WcBRejQpBp-fRaJfHFEGa-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Trip** - [Trip Reviews Scraper | Hotel Reviews and Ratings](https://apify.com/silentflow/trip-reviews-scraper)

**🎯 Lead generation**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-NPFgqJahwiGTjGmdF-WMbjLtWOxq-northdata-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Northdata** - [Northdata Company Scraper](https://apify.com/silentflow/northdata-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-8QjNHBHwi6m4awQ8b-2E7tsQrIWK-dealroom-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Dealroom** - [Dealroom Scraper | Companies and Investors](https://apify.com/silentflow/dealroom-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-zxzRS4QySkSBzDPsB-MpbtFuDj0I-zdoc-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **ZocDoc - Pay Per Result** - [ZocDoc Scraper - Pay Per Result](https://apify.com/silentflow/zocdoc-scraper-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-QBlXIgTOEj8XDdOuI-rJPXrTZKA5-siret-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **SIRET** - [SIRET Company Enricher](https://apify.com/silentflow/siret-enricher-ppr)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-uSH8ckz2SnZ4FZtKT-xUfpA6j45X-cnpj-enricher.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **CNPJ Brazilian** - [CNPJ Brazilian Company Enricher](https://apify.com/silentflow/cnpj-enricher)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-7ZSer45MB15gBXjRZ-wCV94F8Nhe-google-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Google Ads Transparency** - [Google Ads Transparency Scraper](https://apify.com/silentflow/google-ads-transparency-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-D18bYkUMZ1mUWBXeR-nmfTb5wgea-ukcompanies-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **UK Companies House** - [UK Companies House Enricher](https://apify.com/silentflow/uk-companies-house-enricher)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-z9QhRrPrdfQmCZO2v-houK3qaMuc-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **BuiltWith** - [BuiltWith Scraper | Tech Stacks and Top Sites](https://apify.com/silentflow/builtwith-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-9s2llJK2JRvW3atfY-zIhH30wKB8-domain-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Domain** - [Domain Enricher](https://apify.com/silentflow/domain-enricher)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-R3SWmAlqqNZUQx8SY-d5psHwfs4f-siret-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **French Company Prospector** - [French Company Prospector](https://apify.com/silentflow/french-company-prospector)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-snEodwgEvVrTsBzcT-2XEHAAl6fW-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **SEC** - [SEC Scraper | EDGAR Filings and Company Data](https://apify.com/silentflow/sec-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-GoORhIEeC4la4PnMx-MTKFeiBlLG-Thomas-Icon-Color.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **ThomasNet Suppliers** - [ThomasNet Suppliers Scraper](https://apify.com/silentflow/thomasnet-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-M1w0d3tsLiJ8TBZul-PsdWsEK1em-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **USPTO** - [USPTO Scraper | Trademark Search and Status](https://apify.com/silentflow/uspto-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-KhRum5obqh2RUOTIX-f4pihDffGL-clutch-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Clutch Agency** - [Clutch Agency Scraper](https://apify.com/silentflow/clutch-scraper-ppe)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-6lzwIvVe4fAkDLgII-olkoL9cODd-g2-logo.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **G2** - [G2 Reviews Scraper](https://apify.com/silentflow/g2-review-intelligence)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-9FggZKVaE5EeuKpf2-MiZ58MbXUz-replace-pagesjaunes.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **PagesJaunes** - [PagesJaunes Business Scraper](https://apify.com/silentflow/pagesjaunes-scraper-ppr)

**🔎 SEO**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-vNMTvhk3dJ3gztmP1-gJKxB3O5Q1-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Similarweb** - [Similarweb Scraper | Website Traffic, Rankings and Competitors](https://apify.com/silentflow/similarweb-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-0KzAYVtr9dAFLZtPG-ssWkWrTQzl-google-logo.jpg" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Google News** - [Google News Scraper](https://apify.com/silentflow/google-news-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-tAJUhpJVPoNN3H5jg-SKPPHjpjcq-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Apple** - [Apple Scraper | App Store Apps, Ratings and Charts](https://apify.com/silentflow/apple-scraper)

**🧰 More tools**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/i9f1BaK9oVxYFy4oI-actor-aotbvZQR4hzWoPENj-NNbgUzpbJX-avatar.png" alt="" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Apple** - [Apple Reviews Scraper | App Store Reviews and Ratings](https://apify.com/silentflow/apple-reviews-scraper)

### Support

Need something this scraper doesn't do yet? We ship features fast.

- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations and high-volume plans
- Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

### Legal compliance

This Actor extracts publicly available diner reviews and restaurant profiles from OpenTable. It does not bypass any login, paywall or CAPTCHA, and never uses an OpenTable account. Users are responsible for complying with OpenTable's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). Rows carry diners' first names, cities and photos, which can be personal data: handle them accordingly, keep only what you need, and honor removal requests. OpenTable is a trademark of OpenTable, Inc.; this Actor is not affiliated with or endorsed by OpenTable. The data returned is informational; verify accuracy for regulated use cases.

*OpenTable Reviews Scraper by SilentFlow: OpenTable diner reviews from a page, a name or an id, ready for your spreadsheet.*

# Actor input Schema

## `startUrls` (type: `array`):

Restaurant pages copied from OpenTable, any country site: <code>https://www.opentable.com/r/bestia-los-angeles</code>, <code>https://www.opentable.co.uk/hawksmoor-spitalfields</code>, <code>https://www.opentable.com/restaurant/profile/96412</code>. A search page (<code>https://www.opentable.com/s?term=carbone</code>) is read as a restaurant name.

## `keywords` (type: `array`):

No page at hand? Type the restaurant's name, with its city to pick the right branch, one per line: <code>Carbone New York</code>, <code>Hawksmoor London</code>, <code>Bestia</code>. Each name gives the reviews of the restaurant whose name and city hold every word, as many restaurants as <b>Restaurants per name</b>.

## `restaurantIds` (type: `array`):

The OpenTable id of each restaurant, one per line: <code>96412</code>, <code>11335</code>. It is the number at the end of a <code>/restaurant/profile/96412</code> address, and the fastest way to schedule the same restaurants every week.

## `maxReviews` (type: `integer`):

How many reviews to save for each restaurant, each one a row. Busy restaurants have thousands (over 9,000 for Bestia); 100 reviews take a few seconds. Up to 10,000 per restaurant and order.

## `maxRestaurants` (type: `integer`):

For each restaurant name, how many matching restaurants to take the reviews of, best match first. Raise it to compare the branches of a group, such as <code>Hawksmoor London</code>. Has no effect on pages and ids.

## `sortBy` (type: `string`):

<b>Newest first</b> is the order to schedule for monitoring. The two rating orders start with the best or the worst reviews; pair <b>Rating: low to high</b> with 1 and 2 stars to read complaints first.

## `reviewsStartDate` (type: `string`):

Only keep the reviews published on or after this date: <code>2026-01-01</code>, or an age such as <code>30 days</code> for a monthly schedule. Leave empty for every review.

## `starRatings` (type: `array`):

Keep only the reviews with these overall ratings. Pick 1 and 2 stars to read what diners complain about. Leave empty for every rating.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.opentable.com/r/bestia-los-angeles"
    }
  ],
  "maxReviews": 100,
  "maxRestaurants": 1,
  "sortBy": "newest"
}
```

# Actor output Schema

## `reviews` (type: `string`):

Every review: id, url, restaurantId, restaurantName, text, rating, foodRating, serviceRating, ambienceRating, valueRating, noiseRating, isRecommended, helpfulCount, photosCount, photoUrls, ownerResponse, authorName, authorLocation, authorReviewsCount, authorIsVip, dinedAt, publishedAt, the restaurant's address, cuisine, price range, ratings, review counts and contact details, input, scrapedAt.

## `details` (type: `string`):

The same reviews with the food, service, ambience, value and noise ratings, the visit date and the owner's reply.

## `restaurants` (type: `string`):

The restaurant each review is about: city, cuisine, price range, rating, review count, bookings today, phone and website.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.opentable.com/r/bestia-los-angeles"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/opentable-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.opentable.com/r/bestia-los-angeles" }] }

# Run the Actor and wait for it to finish
run = client.actor("silentflow/opentable-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.opentable.com/r/bestia-los-angeles"
    }
  ]
}' |
apify call silentflow/opentable-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,silentflow/opentable-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aap94400H7Dao0yUO/builds/EnFs2ttA3tasP0HhR/openapi.json
