OpenTable Reviews Scraper – Restaurants, Ratings & Diner Data
Pricing
from $1.00 / 1,000 review scrapeds
OpenTable Reviews Scraper – Restaurants, Ratings & Diner Data
Scrape full OpenTable.com restaurant reviews by keyword, area, or restaurant profile URLs. Collect every available review with text, ratings, diner profile data, tags, photos, restaurant metadata, cuisines, neighborhood, and profile links in structured rows.
Pricing
from $1.00 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
30
Total users
3
Monthly active users
5 days ago
Last modified
Categories
Share
OpenTable Reviews Scraper
Scrape full OpenTable restaurant reviews by keyword and area or by pasted restaurant profile URLs. The actor collects every available review for each restaurant and returns structured rows with review text, ratings, diner profile data, review tags, review photos, restaurant metadata, cuisines, neighborhood, and profile links.
What You Get
Each dataset row is one OpenTable review. A keyword search collects the full review history for every restaurant it discovers around your coordinates; URL mode collects every review for each restaurant link you paste.
{"reviewId": "OT-4528-2110885052-140154862704","reviewText": "Great place for dinner! The bar is beautiful and casual while the dining space is really nice!","ratingOverall": 5,"ratingFood": 5,"ratingService": 5,"ratingAmbience": 5,"ratingValue": 5,"ratingNoise": "MODERATE","reviewType": "OPENTABLEVERIFIED","submittedDateTime": "2026-06-10T16:02:39Z","dinedDateTime": "2026-06-09T18:45:00-04:00","dinedDate": "2026-06-09","reviewHelpfulUp": 0,"reviewHelpfulDown": 0,"reviewHelpfulScore": 0,"restaurantReplyText": null,"reviewerName": "Lynn","reviewerLocation": "New York City","reviewerApprovedReviewCount": 3,"reviewPhotoUrls": ["https://resizer.otstatic.com/v4/photos/94818492-1?width=160&height=160"],"reviewPhotoCount": 1,"restaurantId": 4528,"restaurantName": "Nobu Downtown","restaurantUrl": "https://www.opentable.com/r/nobu-downtown-new-york","restaurantPrimaryCuisine": "Japanese","restaurantRating": 4.7,"restaurantTotalReviewCount": 5397}
Input Modes
Keyword Search
Use keyword search when you want discovery by restaurant, cuisine, or dining phrase around a latitude and longitude.
{"mode": "search","keywords": ["sushi", "steakhouse"],"location": "New York","maxItems": 20}
location accepts a city, neighborhood, or address (for example New York, Chelsea Manhattan, or 90210) and is resolved to map coordinates automatically. For precise control you can instead set latitude and longitude, which override location when both are provided.
Restaurant URLs
Use URL mode when you already have OpenTable restaurant profile links.
{"mode": "url","startUrls": [{ "url": "https://www.opentable.com/r/yakiniku-shodai-san-francisco" }],"maxItems": 10}
Filters
Filters apply to both input modes:
| Field | Type | Description |
|---|---|---|
minOverallRating | number | Keep reviews with this overall rating or higher. |
minFoodRating | number | Keep reviews with this food rating or higher. |
minServiceRating | number | Keep reviews with this service rating or higher. |
minAmbienceRating | number | Keep reviews with this ambience rating or higher. |
minValueRating | number | Keep reviews with this value rating or higher. |
cuisines | array | Keep restaurants matching at least one cuisine value. |
neighborhoods | array | Keep restaurants matching at least one neighborhood value. |
fromDinedDate | string | Keep reviews dined on or after this YYYY-MM-DD date. |
toDinedDate | string | Keep reviews dined on or before this YYYY-MM-DD date. |
vipOnly | boolean | Keep reviews from VIP reviewers only. |
requireReviewPhotos | boolean | Keep reviews with diner photos only. |
Output Controls
| Field | Type | Description |
|---|---|---|
maxItems | integer | Primary cap on total review rows saved across the run. |
maxReviewsPerRestaurant | integer | Optional cap per restaurant. Leave empty to collect every review (bounded only by maxItems). |
maxRestaurants | integer | Keyword search only. How many restaurants per keyword to collect reviews from. |
reviewSort | string | Review order per restaurant: highestRated (default), newest, or lowestRated. |
Resume and Recurring Updates
Two different features, both optional:
| Field | Type | Description |
|---|---|---|
resumeFromRunId | string | Continue ONE interrupted crawl. Paste a previous run ID or dataset ID and this run skips reviews it already collected there. |
incrementalMode | boolean | For recurring monitoring of the SAME search or URLs (e.g. daily). Off by default. The first run returns every matching review as NEW. Later runs return only NEW, UPDATED, and REAPPEARED reviews by default. |
emitUnchanged | boolean | Incremental mode only. Also return reviews unchanged since the last run, marked UNCHANGED. Off by default — turning it on returns and bills extra rows you already have. |
emitExpired | boolean | Incremental mode only. Also return reviews from a previous run that are no longer found, marked EXPIRED. Only produced once a run fully scans every tracked restaurant/search — never when maxItems capped it, resumeFromRunId was used, or a keyword search may have been truncated by maxRestaurants. Off by default. |
stateKey | string | Incremental mode only. Optional. Names a monitoring campaign so its state stays stable, or so two differently-configured runs deliberately share it. Leave empty to derive a key automatically from the search/URL and filter settings. |
Incremental mode adds changeType (NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED), changedFields, firstSeenAt, and lastSeenAt to every row. State is tracked separately per search/URL and filter combination (mode, keywords, location/coordinates, startUrls, reviewSort, and every filter above) — changing maxItems, maxReviewsPerRestaurant, maxRestaurants, or the proxy configuration never starts a new baseline.
MCP Connectors
Use mcpConnectors to send selected results into connected apps through Apify integrations. Supported connector servers include Notion, Linear, Airtable, and Apify. Set notionParentPageUrl when exporting to Notion. maxNotifyListings controls how many rows are sent to each connector and does not change the dataset.
Notes
OpenTable can return fewer rows than maxItems when the selected keyword, area, URLs, or filters match fewer current reviews. For URL mode, paste OpenTable restaurant profile links and the actor returns the matching restaurant's review where available.