OpenTable Availability Checker | Real-Time Slots
Pricing
from $29.00 / 30-day access pass
OpenTable Availability Checker | Real-Time Slots
Check real-time reservation availability for OpenTable restaurants. Returns available time slots for any date and party size. Schedule runs to monitor hard-to-book restaurants. 24-hour free trial, then $29 for 30 days of access — no automatic renewal.
Pricing
from $29.00 / 30-day access pass
Rating
0.0
(0)
Developer
ClearPath
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
OpenTable Availability Checker | Real-Time Reservation Slots (2026)
| Reservation Actor Suite • Real-time slots and AI booking for OpenTable & Resy | |||
|
➤ You are here |
AI booking via MCP |
AI booking via MCP |
Real-time slot tracking |
Check real-time reservation slots for specific OpenTable restaurants. Paste restaurant URLs, pick a date and party size, get back every available time slot. Designed for scheduled monitoring: run it every minute and get notified via webhook when slots open at hard-to-book restaurants.
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
clearpath/opentable-availability-api on Apify. Call: ApifyClient("TOKEN").actor("clearpath/opentable-availability-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: startUrls (array, required: OpenTable restaurant URLs), date (string, YYYY-MM-DD), partySize (integer). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~opentable-availability-api/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: 24h free trial, then $29 for 30 days (no auto-renewal). Get token: https://console.apify.com/account/integrations
Quick Start
Check availability for tonight
{"startUrls": [{ "url": "https://www.opentable.com/r/providence-los-angeles" }],"partySize": 2}
Monitor multiple restaurants for a specific date
{"startUrls": [{ "url": "https://www.opentable.com/r/carbone-new-york" },{ "url": "https://www.opentable.com/r/don-angie-new-york" },{ "url": "https://www.opentable.com/r/4-charles-prime-rib-new-york" }],"date": "2026-06-15","partySize": 4}
Input Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
startUrls | array | OpenTable restaurant URLs to check (1-10). Must be restaurant pages, not search or city pages. | required |
date | string | Date to check availability for (YYYY-MM-DD). | today |
partySize | integer | Number of guests (1-20). Availability varies by party size. | 2 |
URL formats accepted:
https://www.opentable.com/r/<slug>(e.g.providence-los-angeles)https://www.opentable.com/<slug>(short form)https://www.opentable.com/restref/client/?rid=<id>.../profile/<id>- Raw numeric restaurant ID
For AI-driven restaurant search and booking, use the OpenTable Booker.
Output
Each restaurant returns one result with nested time slots. Restaurants with no availability still appear with slotCount: 0, confirming the check ran.
Output Example
{"restaurantId": "215029","name": "Providence","url": "https://www.opentable.com/r/providence-los-angeles","date": "2026-06-15","partySize": 2,"slotCount": 12,"slots": [{"startTime": "2026-06-15T17:30","time": "2026-06-15T17:30","type": "Dining Room","hash": "a3f2e1...","token": "..."},{"startTime": "2026-06-15T19:00","time": "2026-06-15T19:00","type": "Dining Room","hash": "b7c4d8...","token": "..."}],"checkedAt": "2026-06-15T15:04:38.817580+00:00"}
No Availability Example
{"restaurantId": "1234","name": "Carbone","url": "https://www.opentable.com/r/carbone-new-york","date": "2026-06-15","partySize": 2,"slotCount": 0,"slots": [],"checkedAt": "2026-06-15T15:07:53.149031+00:00"}
Each slot contains both startTime and time carrying the same ISO timestamp. startTime is the cross-platform alias for integrations that already consume Resy availability data; time is the canonical OpenTable field.
Pricing
24-hour free trial, then $29 for a 30-day pass — no automatic renewal.
Free trial (24 hours)
- Trigger: automatic on your first run, no setup required.
- Duration: 24 hours from your first run, unlimited checks within that window.
- Limit: once per Apify user, lifetime.
- Cost: zero. No card, no run budget required during the trial.
Monthly pass (after the trial)
- Price:
$29for 30 days of access. - Activation: triggered automatically on your first run after the trial (or after a previous pass) has expired.
- Run budget: to activate a new pass, the run's max charge limit must allow at least
$29. Set this in the run settings. - No automatic renewal: no background jobs, no hidden subscriptions.
- Pass active: runs during the 30 days do not trigger a new charge.
- Pass expired: a new pass is activated only when you relaunch the actor.
- Stop using the actor: if the pass expires and you do not relaunch, nothing is charged.
The run logs always state which state you are in: trial started, trial active, pass active, or pass just activated.
How to Monitor OpenTable Availability
The main use case: schedule this actor to run periodically and get notified when slots open.
- Configure — Add your target restaurant URLs, set date and party size
- Schedule — Create a schedule in the Apify console (every minute for hot restaurants, hourly for general monitoring)
- Connect — Attach a webhook to get notified when runs complete. Connect to Slack, Discord, Telegram, Zapier, or your own endpoint
API Integration
Python
from apify_client import ApifyClientclient = ApifyClient("your_token")run = client.actor("clearpath/opentable-availability-api").call(run_input={"startUrls": [{"url": "https://www.opentable.com/r/carbone-new-york"},{"url": "https://www.opentable.com/r/don-angie-new-york"}],"date": "2026-06-15","partySize": 2})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["slotCount"] > 0:print(f"{item['name']}: {item['slotCount']} slots available")for slot in item["slots"]:print(f" {slot['startTime']} - {slot['type']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_token' });const run = await client.actor('clearpath/opentable-availability-api').call({startUrls: [{ url: 'https://www.opentable.com/r/carbone-new-york' },{ url: 'https://www.opentable.com/r/don-angie-new-york' }],date: '2026-06-15',partySize: 2});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.filter(i => i.slotCount > 0).forEach(item => {console.log(`${item.name}: ${item.slotCount} slots`);});
Data Export
- JSON — Nested slot arrays fully preserved
- CSV — Flat fields, arrays serialized
- Excel — Spreadsheet-ready
FAQ
Q: Is there a free trial? A: Yes — 24 hours of unlimited checks from your first run, once per Apify user, lifetime. No card or run budget required during the trial.
Q: What happens after the trial ends? A: The next run activates a 30-day pass for $29. The pass charge fires automatically only if your run's max charge limit allows at least $29. If you do not relaunch the actor, nothing is charged.
Q: Does the pass renew automatically? A: No. There is no background renewal. Each new 30-day pass is activated only when you launch a new run after the previous pass has expired.
Q: How many restaurants can I check per run? A: Up to 10 restaurants per run. For AI-driven search across many restaurants, use the OpenTable Booker.
Q: Do I need an OpenTable account? A: No. Availability data is fetched without authentication.
Q: What if a restaurant has no availability?
A: It still appears in results with slotCount: 0 and slots: []. This confirms the check ran rather than silently skipping the restaurant.
Q: How current is the data? A: Real-time. Each run fetches live availability at the moment of execution.
Q: Why do slots have both startTime and time?
A: Both carry the same ISO timestamp. startTime is provided as a cross-platform alias so code written for Resy availability works unchanged; time is the canonical OpenTable field for new integrations.
Q: Does party size affect results? A: Yes. Larger parties have fewer available slots since restaurants need to accommodate more seats.
Q: What happens with invalid URLs?
A: Invalid or non-OpenTable URLs still produce a row with an error field. Valid URLs in the same batch process normally.
Getting Started
- Sign up for Apify — no credit card required
- Open OpenTable Availability Checker
- Paste a restaurant URL and click Start
- Schedule recurring runs and attach webhooks for monitoring
Use with AI Assistants (OpenClaw, Claude, etc.)
Connect this actor to AI assistants via Apify's MCP server. Ask your assistant to check availability in natural language.
Setup
- Go to mcp.apify.com and add
clearpath/opentable-availability-apito your MCP server - Connect the MCP server to your AI assistant (OpenClaw, Claude Desktop, Cursor, etc.)
OpenClaw example
Add Apify's MCP server to ~/.openclaw/openclaw.json:
{"provider": {"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server"],"env": {"APIFY_TOKEN": "your-apify-token"}}}}}
Then message your OpenClaw bot on Telegram, WhatsApp, or Discord:
"Are there any openings at Carbone this Saturday for 2?"
"Check if Don Angie or 4 Charles has availability next Friday evening"
"Monitor Carbone for the next week, let me know if anything opens up"
The assistant calls the Availability Checker, interprets the results, and tells you exactly which time slots are open.
Legal Compliance
Extracts publicly available reservation data. Users must comply with OpenTable's terms of service and applicable data protection regulations (GDPR, CCPA).
Support
- Email: max@mapa.slmail.me
- Bugs: Issues tab on the Actor page
- Features: Email or issues
Real-time reservation monitoring for OpenTable restaurants.