OpenTable Scraper — Restaurants, Availability & Reviews
Pricing
from $3.00 / 1,000 restaurants
OpenTable Scraper — Restaurants, Availability & Reviews
Scrape OpenTable restaurants, available reservation times and reviews from any city search or restaurant URL: ratings, price band, bookings today, address, hours, awards.
Pricing
from $3.00 / 1,000 restaurants
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Security
Limited permissionsShare
OpenTable Scraper: Restaurants, Availability & Reviews
Scrape OpenTable restaurants, their open reservation times for your date, time and party size, and OpenTable reviews, from a city or neighbourhood search ("Chicago", "Italian San Francisco"), any OpenTable search URL with filters, or restaurant URLs. Works for every country OpenTable covers: US, UK, Canada, Australia, Ireland, Germany, Mexico, Japan and more.
- Restaurants: name, cuisine, price band, rating, review count, "booked N times today", neighbourhood, address, coordinates, phone, awards (MICHELIN), photos, and the bookable time slots around your requested time (bar, counter, outdoor and experience slots marked).
- Restaurant details (restaurant URLs, or on request for search results): website, food / service / ambience / value ratings, rating histogram, hours, dress code, dining style, payment options, parking, executive chef, menu link, amenities, Diner's Choice awards, AI review summary.
- Reviews: overall and food / service / ambience / value ratings, noise level, text, the date it was written and the visit date, reviewer display name, city and VIP flag, helpful votes, photos, and the restaurant's reply.
- Monitoring: only new reviews, or restaurants whose rating or review count changed, on a schedule. Unchanged items are not charged.
- No login, no browser.
What data does it extract?
Restaurants (mode: restaurants, default)
| Field | Example |
|---|---|
restaurantId, name, url | 1935, Kokkari Estiatorio, https://www.opentable.com/kokkari-estiatorio |
cuisine, cuisines | Mediterranean, ["Mediterranean", "Greek", "Contemporary European"] |
priceRange, priceBand | $$$, $31 to $50 |
diningStyle | Casual Elegant |
rating, reviewCount | 4.8, 9775 |
bookedToday | 87 (OpenTable's "Booked 87 times today") |
neighborhood, address, city, region, postalCode, country, fullAddress | Financial District / Embarcadero, 200 Jackson St., San Francisco, CA, 94111 |
latitude, longitude | 37.7970323, -122.3997559 |
phone | (415) 981-0983 (as published on OpenTable) |
description, topReview | restaurant description, highlighted review snippet from the search page |
awards | ["MICHELIN 2026: 2 Stars", ...] |
photoUrl, photos | main photo, gallery photo URLs |
availabilityDate, availabilityTime, partySize | 2026-10-20, 19:00, 2 |
availableTimes | ["18:30", "18:45", "19:00", "19:15", "19:30"] |
availableSlots | [{"time": "18:00", "type": "Experience", "seating": ["counter"]}, ...] |
featuredExperience | AKIKOS Omakase (when a ticketed experience is offered) |
searchRank, searchQuery | position in OpenTable's results, the search it came from |
With details (detailsScraped: true): website, foodRating, serviceRating, ambienceRating, valueRating, noiseLevel (quiet / moderate / energetic), ratingHistogram ({"5": 764, "4": 82, ...}), recentRatingsCount, dinersChoiceAwards (["Most Booked (San Francisco)"]), reviewSummary, hours, dressCode, paymentOptions, parking, parkingDetails, executiveChef, menuUrl, crossStreet, publicTransit, amenities, maxPartySize, photoCount, facebookUrl, isClosed.
Reviews (mode: reviews)
| Field | Example |
|---|---|
reviewId | OT-98928-2110417787-150075258555 |
restaurantId, restaurantName, restaurantUrl | 98928, The Original Ivy, West End, OpenTable URL |
rating, foodRating, serviceRating, ambienceRating, valueRating | 5, 5, 5, 5, 5 |
noiseLevel | moderate |
text | full review text |
date, dinedDate | 2026-10-09T06:31:56Z (written), 2026-10-07T20:00:00+01:00 (visit) |
reviewerName, reviewerLocation, reviewerReviewCount, reviewerIsVip | Donna, Chicago / Illinois, 3, false (as shown on OpenTable) |
helpfulCount, photos | 0, photo URLs |
ownerReply | {"text": "Dear Donna, Thank you so much ...", "date": "2026-10-09T09:13:40Z"} |
How to scrape OpenTable restaurants and available times
Type a city, neighbourhood or "cuisine + city" into Search, or paste OpenTable URLs, and set the date, time and party size:
{"searchQueries": ["Italian San Francisco", "London"],"date": "+7 days","time": "19:30","partySize": 4,"priceBands": ["3", "4"],"maxItems": 200}
OpenTable search URLs keep every filter you set on the website (cuisine, neighbourhood, price, "outdoor seating" ...), and their own date / party size:
{ "startUrls": [{ "url": "https://www.opentable.com/s?dateTime=2026-11-14T20%3A00%3A00&covers=2&metroId=8" }] }
City pages such as https://www.opentable.com/metro/chicago-restaurants work too. Each search page returns 50 restaurants; available times for those 50 come in one extra request. Turn on Add restaurant details for the profile fields (one request per restaurant).
Sample output (shortened):
{"type": "restaurant","restaurantId": 1483297,"name": "Equal Parts SF","url": "https://www.opentable.com/r/equal-parts-sf-san-francisco","cuisine": "Contemporary American","priceRange": "$$","priceBand": "$30 and under","rating": 4.4,"reviewCount": 220,"bookedToday": 49,"neighborhood": "North Beach","fullAddress": "478 Green St, San Francisco, CA 94133-4045","latitude": 37.7998507,"longitude": -122.4071195,"phone": "(415) 875-9600","availabilityDate": "2026-10-18","availabilityTime": "19:00","partySize": 2,"availableTimes": ["18:30", "18:45", "19:00", "19:15", "19:30"],"availableSlots": [{ "time": "18:30", "type": "Standard", "seating": ["outdoor"] }],"searchRank": 1,"searchQuery": "San Francisco"}
How to scrape OpenTable reviews
Set What to scrape to Reviews and give restaurant URLs (any OpenTable domain), or searches (the top 10 restaurants of each, see Max restaurants per search):
{"mode": "reviews","startUrls": [{ "url": "https://www.opentable.com/kokkari-estiatorio" }],"maxReviewsPerRestaurant": 500,"maxItems": 500}
OpenTable lists reviews 10 per page, newest visit first, so 500 reviews are 50 pages. Only reviews newer than (7 days, 2026-10-01) keeps reviews written after that date.
Monitor changes on a schedule
Turn on Only new or changed items, save the input as a task and add a Schedule in Apify (for example daily). In reviews mode each run reads the newest Max reviews per restaurant reviews of every restaurant and saves only reviews it has not saved before (late reviews written days after the visit are caught as long as the visit is inside that window). In restaurants mode a restaurant is saved again only when its rating or review count changed; Max items is then the number of restaurants watched. Unchanged items are not output and not charged. New items carry changeType: "new", changed ones changeType: "changed" plus previousValues with the old values. Use a relative date such as +7 days so a scheduled availability check never goes stale, and Monitoring key to keep several schedules on the same input apart.
Does it work without an OpenTable account?
Yes. It reads only public pages and OpenTable's public availability data. No login, cookies or browser.
How much does it cost?
$3.00 per 1,000 restaurants (available times included), plus $1.00 per 1,000 for restaurant details, and $0.80 per 1,000 reviews. No start fee. Platform usage is paid by you on top: in our test runs on datacenter proxy about $0.06 per 1,000 restaurants with details and $0.013 per 1,000 reviews. When datacenter IPs are refused, residential retries add Apify's residential bandwidth, about $0.0008 per restaurant page or per 10 reviews.
Proxy note
OpenTable is protected by Akamai bot management, which refuses part of all automated requests. The scraper retries each refused page up to 10 times on a fresh IP with a fresh browser fingerprint and no cookies; with the default Apify datacenter proxy, a page refused 4 times is retried through Apify's RESIDENTIAL proxy (Retry blocked pages through residential proxy, on by default; turn it off to stay on datacenter only). How often Akamai refuses varies from hour to hour; runs report attempts, refusals and the route used in the SUMMARY record of the key-value store. Expect large detail or review runs to take a few seconds per page, and a page that is refused 10 times in a row to be reported as an error (the rest of the run continues).
What is not included?
Menus with dish prices, private-dining room details, offers / promotions and gift cards are not exported. The availability check returns the slots OpenTable shows around your time (usually up to 5), not the whole day. Reviewer profile links and avatars are not public on OpenTable and not exported. Search results carry the overall rating only; the food / service / ambience / value breakdown needs details.
Is it legal to scrape OpenTable?
The actor collects publicly visible data: restaurant information as restaurants publish it on OpenTable, reservation times shown to any visitor, and reviews with the reviewer's display name and city as OpenTable shows them. It does not log in, book or hold tables, or access anything private. Reviews contain personal data (first names, cities); make sure your use complies with GDPR and similar laws and with OpenTable's terms, and do not use the data to contact or profile individuals.
Related scrapers
- Eventbrite Scraper: Events, Tickets & Organizers
- Viator Scraper: Tours, Prices, Ratings & Reviews
- GetYourGuide Scraper: Tours, Prices & Ratings
- Klook Scraper: Activities, Prices & Reviews
- Tripadvisor Scraper: Reviews, Hotels, Restaurants, Attractions
Found it useful?
A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's Issues tab.