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
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| 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
{
"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)