TRAVELAIDEVELOPER TOOLS API MCP READY

OpenTable Reviews API

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.

MEDIAN LAGon demand
PARAMETERS4
TOTAL USERS22
MONTHLY ACTIVE5
TOTAL RUNS105
SUCCESS (30D)100.0%
RATINGno ratings yet
LAST MODIFIED2026-09-03
PUBLISHED2026-06

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
restaurantId string no Enter a single restaurant as either its OpenTable URL slug (for example 'r/central-park-boathouse-new-york-2') or the full restaurant page URL (for example…
restaurantIds string[] no Provide a list of restaurants to fetch in one run, each as an OpenTable URL slug or a full restaurant page URL.
maxResultsPerRestaurant integer no 30 How many reviews to return per restaurant. — drives your bill
includeRestaurantSummary boolean no False If enabled, also return one restaurant-summary row per restaurant with the aggregate rating breakdown and total counts.

Worked examples

Basic — the required input, with the schema's own example values
{
  "restaurantId": "r/central-park-boathouse-new-york-2",
  "restaurantIds": [
    "example"
  ]
}

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~opentable-reviews-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"restaurantId": "r/central-park-boathouse-new-york-2", "restaurantIds": ["example"]}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/opentable-reviews-api").call(
    run_input={'restaurantId': 'r/central-park-boathouse-new-york-2', 'restaurantIds': ['example']}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)