OpenTable Reviews API | Restaurant Review Intelligence avatar

OpenTable Reviews API | Restaurant Review Intelligence

Pricing

from $0.01 / 1,000 results

Go to Apify Store
OpenTable Reviews API | Restaurant Review Intelligence

OpenTable Reviews API | Restaurant Review Intelligence

Scrape OpenTable restaurant reviews as structured JSON: review text, dined and submitted dates, the diner's profile, and the full rating breakdown (overall, food, service, ambience, value, noise). For hospitality analytics and restaurant competitive intelligence. Pay per review, MCP-ready.

Pricing

from $0.01 / 1,000 results

Rating

5.0

(1)

Developer

John

John

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

11

Monthly active users

19 hours ago

Last modified

Share

The OpenTable Reviews API scrapes OpenTable restaurant reviews as clean structured JSON. Give the API a restaurant and get its reviews, each with the full review text, the dates the diner visited and posted, the diner's public profile, and the complete rating breakdown: overall, food, service, ambience, value, and noise. It is review intelligence for hospitality analytics, restaurant competitive research, and food-media sentiment analysis.

If you need to book a table, use a booking Actor. If you need the review data for analytics, this is the one: it returns the same reviews your competitors are reading, as structured JSON for AI agents.

What you get

One row per review:

  • content: the full review text
  • rating: the breakdown (overall, food, service, ambience, value, noise)
  • dined_at and submitted_at timestamps
  • user: the diner's name, review count, and location
  • review_id and the restaurant_id it belongs to

Enable includeRestaurantSummary to also get one restaurant-level row with the aggregate ratings and total counts.

Use cases

  • Track sentiment and ratings for a restaurant or a chain over time
  • Benchmark a restaurant against competitors on food, service, and ambience
  • Mine reviews for menu, pricing, and experience feedback
  • Power restaurant analytics dashboards and food-media research
  • Feed an AI agent a restaurant's reviews to summarize themes and complaints

๐Ÿ”Œ Integrations: Automate OpenTable Reviews API Monitoring

A single run answers one question ("what are diners saying about this restaurant right now?"). The real value comes from running the OpenTable Reviews API repeatedly, so fresh reviews and rating shifts land in your stack as they post. See the full list of Apify platform integrations.

Tasks and Schedules (the core recipe). Save one task per thing you watch: a single restaurant, or a city watchlist in restaurantIds. Then attach a schedule from the actor's Actions, then Schedule menu. Each run re-pulls the most recent maxResultsPerRestaurant reviews for every restaurant, so you keep a rolling feed; dedupe downstream on review_id to keep only reviews you have not stored yet. Useful cron strings: 0 7 * * * (daily 7 AM), 0 */6 * * * (every 6 hours), 0 9 * * 1 (Mondays). One schedule can trigger many tasks at once. The Monitor OpenTable reviews for San Francisco restaurants task shows the watchlist pattern end to end.

n8n. This API ships an n8n community node (see the n8n integration section below). A four-step monitor: Schedule Trigger, then the OpenTable Reviews API node with your restaurantIds, then a Filter on rating.overall below a threshold, then Slack or email so a low rating pings the team.

Make and Zapier. The same pattern works no-code with Make and Zapier: trigger on a schedule, run the actor, route the new reviews where you need them.

Store the history (Supabase). Send each run's rows into a table so a review and rating history accumulates per venue. No-code: the n8n Actor node, then a Supabase node. Or in Python (each review row carries restaurant_id, review_id, content, dined_at, submitted_at, rating, and user):

from apify_client import ApifyClient
from supabase import create_client
apify = ApifyClient("YOUR_APIFY_TOKEN")
supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")
run = apify.actor("johnvc/opentable-reviews-api").call(run_input={
"restaurantIds": [
"r/central-park-boathouse-new-york-2",
"r/tosca-cafe-san-francisco",
],
"maxResultsPerRestaurant": 50,
})
rows = list(apify.dataset(run["defaultDatasetId"]).iterate_items())
supabase.table("opentable_reviews").upsert(rows, on_conflict="review_id").execute()

MCP and AI agents. Add this API as a tool in Claude or Cursor through the Apify MCP server so an agent can pull a restaurant's reviews and summarize the themes on its own (see the Use this API from Claude section below).

Webhooks. For anything custom, fire an Apify webhook on ACTOR.RUN.SUCCEEDED to push each run's dataset into your own service.

Input

FieldTypeDescription
restaurantIdstringA single restaurant, given as either the OpenTable URL slug (e.g. r/central-park-boathouse-new-york-2) or the full restaurant page URL (e.g. https://www.opentable.com/r/central-park-boathouse-new-york-2). The slug is detected and extracted automatically. Provide this, restaurantIds, or both.
restaurantIdsarray of stringsA batch of restaurants to fetch in one run, each a slug or a full URL. Merged with restaurantId and de-duplicated. All restaurants are fetched in parallel.
maxResultsPerRestaurantintegerReviews per restaurant. Default 30, maximum 500.
includeRestaurantSummarybooleanAlso return a restaurant-summary row with aggregate ratings. Charged once per restaurant. Default off.

To find a restaurant, open it on OpenTable and either copy the r/... slug from the URL or just paste the whole page URL - either works.

Example input

{
"restaurantId": "r/central-park-boathouse-new-york-2",
"maxResultsPerRestaurant": 50,
"includeRestaurantSummary": true
}

Sample output

{
"result_type": "review",
"restaurant_id": "r/central-park-boathouse-new-york-2",
"position": 1,
"review_id": "OT-1294132-168206-130084588143",
"content": "Beautiful restaurant, lovely setting and great service ...",
"dined_at": "2026-04-01T20:30:00Z",
"submitted_at": "2026-04-02T17:43:04Z",
"rating": { "overall": 5, "food": 4, "service": 5, "ambience": 5, "value": 4, "noise": "Moderate" },
"user": { "name": "PAULINA", "number_of_reviews": 28, "location": "New York Area" }
}

Pricing

Pay-per-result: a flat $0.008 per review returned. The optional restaurant summary is $0.005 once per restaurant, only when you enable it. No setup fee, no per-run fee, no monthly minimum.

How to get started

  1. Open OpenTable Reviews API on the Apify Store.
  2. Enter a restaurantId (or a restaurantIds list of OpenTable slugs).
  3. Set maxResultsPerRestaurant, then run the Actor.
  4. Export the dataset as JSON, CSV, or Excel, or pull it from the API.

Prefer code? See the OpenTable Reviews API example repo for a Python quick-start and MCP setup guides.

Run from the API

curl -X POST "https://api.apify.com/v2/acts/johnvc~opentable-reviews-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"restaurantId":"r/central-park-boathouse-new-york-2","maxResultsPerRestaurant":30}'

๐Ÿ”Œ Use this API from Claude (MCP)

This Actor is compatible with the Model Context Protocol (MCP), so AI agents can call it as a tool. Add it through the hosted Apify MCP server using this Actor-specific URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/opentable-reviews-api

If you run agents from Claude Code (free trial) or Claude Cowork (free trial), add the Apify MCP server and ask it to "pull this restaurant's reviews and summarize the common complaints."

Setup walkthrough:

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

MCP setup, step by step

Visual setup guides for each client (source and more assets: ApifyPublicData on GitHub):

Claude Cowork Desktop (free trial)

Install in Claude Cowork Desktop

Claude Code (free trial)

Install in Claude Code

Claude (website)

Install in Claude website

Cursor

Install in Cursor

ChatGPT

Install in ChatGPT

Building a restaurant or local-business review pipeline? These tools from the same catalog pair well with OpenTable review data:

  • Yelp Reviews API: pull the same venues' reviews from Yelp so you cover a second major review platform in one pipeline.
  • Yelp Business Details API: enrich each restaurant with business details, categories, hours, and contact info to sit alongside the review data.
  • Google Maps Places Scraper: find restaurants and pull place-level data (address, coordinates, rating counts) to build the watchlist you feed here.
  • Google Maps Contributor Reviews: follow a reviewer's history across Google Maps for a different angle on diner sentiment.

Thinner alternatives such as getdataforme/opentable-reviews-parser-spider exist, but they take only raw review-page URLs, carry no user rating, and show little recent use. This API detects the restaurant slug for you, batches many restaurants in parallel, and returns a documented, per-field rating breakdown as clean JSON.

FAQ

What is a restaurant ID?

It is the OpenTable URL slug, the r/... path for the restaurant. Open the restaurant on OpenTable and copy it from the URL. A full URL also works.

How many reviews come back?

Up to maxResultsPerRestaurant (default 30). The Actor paginates a restaurant's reviews for you.

Does it book tables?

No. This Actor is for review data and analytics. For reservations, use a dedicated OpenTable booking Actor.

Can I research several restaurants at once?

Yes. Pass a restaurantIds list; each is fetched independently and tagged with its restaurant ID.

Can I schedule the OpenTable Reviews API?

Yes, and this is where it earns its keep. Save a task with your restaurantId or restaurantIds watchlist, then attach a schedule from the actor's Actions, then Schedule menu. Common cron strings are 0 7 * * * (daily 7 AM), 0 */6 * * * (every 6 hours), and 0 9 * * 1 (Mondays), and one schedule can drive many tasks at once. Each run re-pulls the latest reviews, so dedupe on review_id to store only new ones. See the Integrations section above for the full monitoring recipe with cron examples and a Supabase snippet.

Should I use an API or a web scraper for restaurant reviews?

Both, and this Actor is both. An official reservation platform offers no public review API, and a plain web scraper returns messy HTML you still have to parse. This Actor gives you the clean, structured result of a purpose-built API: call it yourself, pay per review, no quotas, and get the same JSON whether you pull one restaurant or a whole city watchlist.

Can I integrate the OpenTable Reviews API with other apps?

Yes. It connects to almost any cloud service through Apify integrations: Make, Zapier, Slack, the n8n community node, and webhooks on ACTOR.RUN.SUCCEEDED for custom actions. See the Integrations section above for full recipes.

Can I use the OpenTable Reviews API programmatically?

Yes. The Apify API runs the Actor, schedules it, and fetches datasets, and the apify-client package exists for both Node.js and Python. See the Run from the API section above, or the actor's API tab.

Can I use the OpenTable Reviews API through an MCP server?

Yes. Add it as a tool in any MCP client (Claude, Cursor, and others) through the hosted Apify MCP server with the actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/opentable-reviews-api. In Claude Code (free trial) or Claude Cowork (free trial) your agent can then answer prompts like "pull this restaurant's reviews and summarize the common complaints" with live data. See the Apify MCP docs.

How else can I track restaurant reviews and ratings?

Pair this API with related tools in the same catalog: the Yelp Reviews API to cover a second review platform, the Yelp Business Details API to enrich each venue, and the Google Maps Places Scraper to build the restaurant watchlist you feed here.

This Actor collects publicly visible reviews and ratings for analytics and research. As with any data collection, use it responsibly and follow the source's terms and applicable law. For background on the topic, see the legality of web scraping.

n8n integration

Available as an n8n community node, n8n-nodes-opentable-reviews-api. In n8n: Settings, Community Nodes, install n8n-nodes-opentable-reviews-api, then use it in any workflow (it also works as an AI Agent tool).

Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.

Last Updated: 2026.07.14