OpenTable Scraper avatar

OpenTable Scraper

Pricing

Pay per usage

Go to Apify Store
OpenTable Scraper

OpenTable Scraper

Extract comprehensive restaurant data from OpenTable, including menus, user reviews, ratings, and location details. Ideal for market research and dining analytics. For seamless extraction and to avoid IP blocking, using residential proxies is highly advised.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

3 days ago

Last modified

Share

OpenTable Restaurants Scraper

Extract restaurant listings and reservation-focused details from OpenTable in a structured dataset. Collect names, ratings, reviews, cuisine, pricing, address, contact data, and more in one run. Built for market research, local dining analysis, lead generation, and reporting workflows.


Features

  • Rich restaurant records — Collect identity, rating, reviews, pricing, location, contact, and media fields.
  • Flexible search inputs — Run by direct search URL or by date, time, party size, and location.
  • Controlled result volume — Set exactly how many restaurants to collect with results_wanted.
  • Clean structured output — Receive normalized dataset items ready for BI tools and automations.
  • Reliable default run setup — Includes QA-friendly defaults for quick successful runs.

Use Cases

Local Market Research

Track restaurant density, price tiers, and rating distribution across cities and neighborhoods. Use this data to understand positioning and customer demand patterns.

Restaurant Discovery Products

Build searchable dining directories with enriched metadata. Populate cards with cuisine, pricing, ratings, and direct restaurant links.

Competitive Monitoring

Compare restaurants in the same geography by review volume, score, and visibility signals. Identify strong and weak performers in specific dining categories.

Sales Prospecting

Generate outreach lists with restaurant names, addresses, and phone numbers. Segment leads by location, cuisine, and pricing profile.

Reporting and Dashboards

Feed structured records into spreadsheets, BI systems, or internal dashboards. Monitor trends over time by re-running with consistent search inputs.


Input Parameters

ParameterTypeRequiredDefaultDescription
start_urlStringNohttps://www.opentable.com/s?dateTime=2026-01-20T19%3A00%3A00&covers=2&metroId=4Full OpenTable search/collection URL. If provided, this is used directly.
dateStringNo2026-01-20Reservation date in YYYY-MM-DD format. Used when start_url is not provided.
timeStringNo19:00Reservation time in HH:MM format. Used when start_url is not provided.
coversIntegerNo2Party size from 1 to 20. Used when start_url is not provided.
locationStringNoLos AngelesLocation term (city or neighborhood) used for search URL construction.
results_wantedIntegerNo20Maximum number of restaurants to store in the dataset.
proxyConfigurationObjectNo{ "useApifyProxy": false }Proxy settings for improved stability in your environment.

Output Data

Each dataset item contains:

FieldTypeDescription
restaurant_idInteger | NullOpenTable restaurant identifier.
nameString | NullRestaurant display name.
urlString | NullCanonical restaurant page URL.
cuisineString | NullPrimary cuisine label.
price_rangeString | NullPrice band text.
ratingNumber | NullOverall rating value.
reviews_countInteger | NullTotal review count.
neighborhoodString | NullNeighborhood or local area.
cityString | NullCity name.
stateString | NullState/region code or label.
postal_codeString | NullPostal/ZIP code.
address_line1String | NullPrimary street address.
address_line2String | NullSecondary address details.
latitudeNumber | NullLatitude coordinate.
longitudeNumber | NullLongitude coordinate.
phoneString | NullRaw phone number.
formatted_phoneString | NullHuman-readable phone format.
is_promotedBooleanPromotion flag.
has_takeoutBooleanTakeout availability flag.
dining_styleString | NullDining style label.
descriptionString | NullRestaurant description text.
booking_slotsArrayAvailable booking slot values when present.
delivery_partnersArrayDelivery partner labels when available.
image_urlString | NullPrimary restaurant image URL.

Usage Examples

Basic URL Run

{
"start_url": "https://www.opentable.com/s?dateTime=2026-01-20T19%3A00%3A00&covers=2&metroId=4",
"results_wanted": 20
}
{
"date": "2026-03-15",
"time": "19:30",
"covers": 4,
"location": "New York",
"results_wanted": 80
}

Large Collection with Proxy

{
"start_url": "https://www.opentable.com/s?dateTime=2026-03-15T19%3A00%3A00&covers=2&metroId=8",
"results_wanted": 300,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Sample Output

{
"restaurant_id": 4485,
"name": "Zuni Cafe",
"url": "https://www.opentable.com/zuni-cafe",
"cuisine": "Modern European",
"price_range": "$31 to $50",
"rating": 4.7,
"reviews_count": 8237,
"neighborhood": "Civic Center / Hayes Valley / Van Ness",
"city": "San Francisco",
"state": "CA",
"postal_code": "94102",
"address_line1": "1658 Market Street",
"address_line2": null,
"latitude": 37.7736,
"longitude": -122.421608,
"phone": "4155522522",
"formatted_phone": "(415) 552-2522",
"is_promoted": false,
"has_takeout": false,
"dining_style": "Casual Elegant",
"description": "Zuni Café opened in San Francisco...",
"booking_slots": [],
"delivery_partners": [],
"image_url": "https://resizer.otstatic.com/v4/photos/69629956-2.jpg"
}

Tips For Best Results

Use Stable Search URLs

  • Use complete OpenTable search URLs for reproducible runs.
  • Keep date/time/party size consistent when comparing runs.

Start Small, Then Scale

  • Test with results_wanted: 20 first.
  • Increase limits after validating your workflow.

Handle Data Caps In Planning

  • Some search contexts can cap total returned results.
  • If you need broader coverage, split by location/date/time windows.

Keep Inputs Clean

  • Use valid date/time formats.
  • Keep covers between 1 and 20.

Integrations

  • Google Sheets — Share and review restaurant data quickly.
  • Airtable — Build searchable restaurant intelligence tables.
  • Looker Studio / BI tools — Create dashboards for ratings and pricing trends.
  • Webhooks — Send fresh dataset items to downstream systems.
  • Zapier / Make — Automate notifications, enrichment, and storage pipelines.

Export formats available from dataset runs include JSON, CSV, Excel, XML, and RSS.


Frequently Asked Questions

How many restaurants can I collect in one run?

You can request any results_wanted value. Actual collected volume depends on available listings in the selected search context.

Can I run without start_url?

Yes. Provide date, time, covers, and/or location, and the actor will build a search URL automatically.

Why are some fields null?

Some restaurants do not expose every attribute in source listing data. Null values are expected for unavailable fields.

Can I use proxy settings?

Yes. Use proxyConfiguration to match your reliability requirements.

Is this suitable for scheduled monitoring?

Yes. This actor is designed for repeatable runs and can be scheduled in Apify.


Support

For issues or feature requests, use the Apify Actor issue/support channel for this actor.

Resources


This actor is intended for legitimate data collection use cases. You are responsible for complying with applicable laws, platform terms, and data usage policies in your jurisdiction.