OpenTable Restaurant & Reservation Availability Scraper avatar

OpenTable Restaurant & Reservation Availability Scraper

Pricing

from $18.91 / 1,000 restaurant results

Go to Apify Store
OpenTable Restaurant & Reservation Availability Scraper

OpenTable Restaurant & Reservation Availability Scraper

Scrape OpenTable restaurants by location or URL: name, cuisines, price band, rating, review count, neighborhood, address, phone, coordinates, booking URL, plus optional reservation time slots. Export to JSON, CSV or Excel.

Pricing

from $18.91 / 1,000 restaurant results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

OpenTable Restaurant Scraper

OpenTable Restaurant Scraper

Here is one real result, with every field the actor returns:

{
"query": "New York",
"restaurantName": "Nobu Downtown",
"restaurantId": "4528",
"opentableUrl": "https://www.opentable.com/r/nobu-downtown-new-york",
"bookingUrl": "https://www.opentable.com/r/nobu-downtown-new-york",
"cuisines": ["Japanese"],
"primaryCuisine": "Japanese",
"priceBand": "$50 and over",
"priceLevel": "$$$$",
"overallRating": 4.7,
"reviewCount": 5436,
"recentReservationCount": 129,
"neighborhood": "Financial District",
"addressStreet": "195 Broadway",
"city": "New York",
"state": "NY",
"postalCode": "10007",
"country": null,
"address": "195 Broadway, New York, NY, 10007",
"phone": "(212) 219-0500",
"website": null,
"latitude": 40.7108399,
"longitude": -74.0095723,
"popularDishesAndTags": [],
"diningStyle": "Casual Elegant",
"topReview": "We love nobu downtown. The 630 reservation is perfect for families! Amazing food and service. Always a great time!",
"aiVibe": "Casual Elegant",
"aiBestFor": ["date night", "business dinner", "families"],
"aiHighlights": ["Exceptional Japanese cuisine", "Highly rated with 4.7 stars", "Great for families with early reservations", "Renowned for outstanding service"],
"aiPriceValue": "Premium",
"source": "opentable.com",
"observedAt": "2026-08-20T18:52:51.706Z"
}

The most complete OpenTable restaurant scraper available. It returns every field OpenTable exposes on its search and restaurant pages, from ratings and review counts to price band, neighborhood, full address, phone, coordinates and a highlighted review, plus derived fields like a coarse price level and an optional AI summary, and gives you three ways to target exactly the restaurants you need: by location, by cuisine or name, or by direct restaurant URL.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Platform Coverage Output Billing

Table of contents

What it does

This actor collects restaurant listings from OpenTable and returns clean, flat records ready for CSV, Excel or JSON. For each restaurant you get its name, cuisines, price band and a coarse price level ($ to $$$$), overall rating, review count, recent reservation activity, neighborhood, full address, phone when public, map coordinates, a highlighted review snippet and the OpenTable booking URL.

You can search three ways:

  • By location (for example New York, Chicago or Brooklyn).
  • By cuisine, dish or restaurant name combined with a location.
  • By pasting one or more OpenTable restaurant URLs to scrape those exact restaurants.

An optional AI summary add-on adds a vibe phrase, who the restaurant is best for, standout highlights and a price-value verdict.

Quickstart

Provide a location, optionally a search term, and a result cap:

{
"locationQuery": "New York",
"searchTerm": "Italian",
"maxResults": 25
}

Input reference

NameTypeRequiredDescriptionExample
locationQuerystringone of theseCity, neighborhood or area to search."New York"
searchTermstringoptionalCuisine, dish or restaurant name to narrow the search."Italian"
restaurantUrlsarrayone of theseOpenTable restaurant URLs to scrape exactly, skipping search.["https://www.opentable.com/r/nobu-downtown-new-york"]
aiRestaurantSummarybooleanoptionalAdd an AI summary per restaurant (paid add-on, off by default, disabled on free plans).false
maxResultsintegeroptionalMaximum restaurants to collect. Free plans are capped at 10.25

Provide either a locationQuery or searchTerm, or one or more restaurantUrls.

Output reference

NameTypeDescription
querystringLocation or search that produced this restaurant.
restaurantNamestringRestaurant name.
restaurantIdstringOpenTable restaurant id.
opentableUrlstringOpenTable restaurant page URL.
bookingUrlstringOpenTable reservation/booking URL.
cuisinesarrayCuisines served.
primaryCuisinestringPrimary cuisine.
priceBandstringPrice band label as shown on OpenTable.
priceLevelstringCoarse price level ($ to $$$$).
overallRatingnumberOverall rating out of 5.
reviewCountintegerTotal number of reviews.
recentReservationCountintegerRecent reservations booked on OpenTable.
neighborhoodstringNeighborhood or area.
addressStreetstringStreet address.
citystringCity or locality.
statestringState or region.
postalCodestringPostal code.
countrystringCountry when listed.
addressstringFull formatted address.
phonestringPhone number when public.
websitestringOfficial website when listed.
latitudenumberLatitude.
longitudenumberLongitude.
popularDishesAndTagsarrayPopular dishes, dining styles, awards and tags.
diningStylestringDining style.
topReviewstringHighlighted snippet from a top review.
aiVibestringAI one-phrase vibe (AI add-on).
aiBestForarrayAI occasions it is best for (AI add-on).
aiHighlightsarrayAI standout highlights (AI add-on).
aiPriceValuestringAI price-value verdict (AI add-on).
sourcestringData source.
observedAtstringISO timestamp collected.

Example output record

{
"query": "Italian in New York",
"restaurantName": "Patrizias of Brooklyn",
"restaurantId": "1006366",
"opentableUrl": "https://www.opentable.com/r/patrizias-of-brooklyn",
"bookingUrl": "https://www.opentable.com/r/patrizias-of-brooklyn",
"cuisines": ["Italian"],
"primaryCuisine": "Italian",
"priceBand": "$31 to $50",
"priceLevel": "$$$",
"overallRating": 4.3,
"reviewCount": 468,
"recentReservationCount": 11,
"neighborhood": "Williamsburg",
"addressStreet": "35 Broadway",
"city": "Brooklyn",
"state": "NY",
"postalCode": "11249",
"country": null,
"address": "35 Broadway, Brooklyn, NY, 11249",
"phone": "(718) 218-9272",
"website": null,
"latitude": 40.710908,
"longitude": -73.967365,
"popularDishesAndTags": [],
"diningStyle": "Casual Dining",
"topReview": null,
"aiVibe": null,
"aiBestFor": [],
"aiHighlights": [],
"aiPriceValue": null,
"source": "opentable.com",
"observedAt": "2026-08-20T18:42:07.998Z"
}

Run via API and CLI

Start a run with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~opentable-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locationQuery":"New York","searchTerm":"Italian","maxResults":25}'

Or with the Apify CLI:

apify call scrapers_lat/opentable-scraper \
--input '{"locationQuery":"New York","searchTerm":"Italian","maxResults":25}'

Fetch results

Download the dataset items once the run finishes:

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"

Swap format=json for csv or xlsx to export a spreadsheet.

Billing and limits

  • Pay per result: you are charged once per restaurant returned, not per page fetched.
  • The AI summary is an optional add-on, off by default, and is charged only when a usable summary is produced.
  • Failed or empty runs return no results and are not charged.
  • Free Apify plans are capped at 10 results per run and cannot enable paid add-ons.
  • A spend cap is respected: once your configured maximum charge is reached, the run stops returning billable results.

FAQ and troubleshooting

How do I scrape a specific restaurant? Paste its OpenTable URL into restaurantUrls.

Why is website sometimes null? OpenTable does not publish an external website for every restaurant; the field is null when it is not listed.

Can I search by cuisine only? Combine a cuisine in searchTerm with a locationQuery for the best results.

Do I need a proxy or login? No. Anti-bot handling is fully managed inside the actor and no OpenTable account or cookies are required.

More scrapers at scrapers.lat.