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: every bookable time, seating and card policy for any date and party size. Schedule runs to monitor hard-to-book restaurants. From Oct 21, 2026: $2.99 per 1,000 checks. Until then: 24h trial, then $29 for 30 days.
Pricing
from $29.00 / 30-day access pass
Rating
0.0
(0)
Developer
ClearPath
Maintained by CommunityActor stats
0
Bookmarked
32
Total users
8
Monthly active users
4 days ago
Last modified
Categories
Share
OpenTable Availability Checker | Real-Time Reservation Slots (2026)
From Clearpath, creators of OpenTable Booker, Resy Availability Checker and Resy Booker. Restaurant availability and booking tools from the same team.
Why choose this actor?
Watch your restaurant shortlist. Check up to 10 OpenTable restaurant pages for your date and party size. Collect current reservation options together instead of checking each page by hand.
See the time, seating type and card requirement. Returned slots include reservation times, seating options and whether a credit card is required. Where available, the card policy identifies a hold or deposit.
Keep checking as tables open up. Schedule repeat runs in Apify and connect results to your own alerts. Each restaurant record includes the requested date, party size and check timestamp, making repeated checks easy to track.
Quick start
Check available tables for two at Providence in Los Angeles today:
{"startUrls": ["https://www.opentable.com/r/providence-los-angeles"],"partySize": 2}
Omitting date uses today. Open actor input to select another date, change the party size or add up to 10 restaurant URLs. Each restaurant returns every bookable time for that date. Use JSON to preserve nested slots. Scheduled monitoring and notifications need separate setup; this actor checks availability and does not book tables.
| Clearpath · Restaurant & Reservation Tools | ||||
You are here | AI reservations | Available tables | AI reservations | Restaurant leads |
Copy to your AI assistant
clearpath/opentable-availability-api on Apify: live OpenTable reservation availability for 1-10 restaurants per run (startUrls: OpenTable restaurant page URLs or numeric restaurant IDs), one date (YYYY-MM-DD, today or later, default today UTC; an earlier date stops the run) and partySize (1-20, default 2). One row per restaurant; read status: available (slots lists every bookable time with its seating, slotCount counts them), sold_out (the restaurant answered with no bookable table; statusMessage says why), not_yet_bookable (date beyond bookingWindowDays: reservations not open yet), invalid_request (party size outside minPartySize/maxPartySize, no online booking or unknown URL: change the input), check_failed (not confirmed: run again; a run where every check failed ends failed). Rows also carry restaurant details and bookingPolicies (cancellation and deposit notes). Full input and output spec: https://api.apify.com/v2/actors/clearpath~opentable-availability-api/builds/default. Pricing: from 2026-10-21, $2.99 per 1,000 completed checks (available, sold_out, not_yet_bookable; invalid_request and check_failed are free), and a run stops before a check its max charge cannot cover. Until then: 24h free trial, then $29 for 30 days, and a run that activates the pass needs a max charge limit of at least $29, otherwise it fails without data. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
Input examples
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/alinea-chicago" },{ "url": "https://www.opentable.com/r/providence-los-angeles" },{ "url": "https://www.opentable.com/r/strip-house-new-york" }],"date": "2026-11-12","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. Repeated URLs are checked once. | required |
date | string | Date to check availability for (YYYY-MM-DD), today or later. An earlier or malformed date stops the run before any check. A date beyond the restaurant's booking window returns not_yet_bookable. | today (UTC) |
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 URL returns one row. status says what the check found; statusMessage explains every status other than available.
status | What it means |
|---|---|
available | At least one table is bookable for your date and party size. slots lists every bookable time; slotCount counts them. |
sold_out | The restaurant answered for this date, but no table is bookable: fully booked, closed that day, waitlist only, or same-day booking closed. |
not_yet_bookable | The date is beyond the restaurant's booking window: reservations for it have not opened yet. bookingWindowDays says how far ahead the restaurant takes bookings. |
invalid_request | The request cannot be booked as asked: the party size is outside the restaurant's limits, the restaurant takes no online reservations, or the URL is not an OpenTable restaurant. |
check_failed | Availability could not be confirmed this time. Run the check again. If every restaurant in a run ends check_failed, the run itself fails, so schedules and webhooks notice. |
Rows with invalid_request or check_failed also carry the same message in error, as earlier versions did. These two statuses are never charged.
If the run's maximum charge or time limit runs out, the remaining URLs get no row, and the run's status message says how many were not checked.
minPartySize, maxPartySize and bookingWindowDays are the restaurant's online booking limits, so you can see why a party size or date was refused. They are absent when the restaurant could not be identified.
restaurant holds the restaurant's details: neighborhood, address, city, state, postal code, country, cuisine, price range, rating, review count, phone, coordinates, metro area, dining style and dress code. bookingPolicies lists the restaurant's notes for that date, such as cancellation and deposit terms. Both are null or empty when the restaurant could not be identified.
Each slot has time, seating (for example Standard, Bar, High-top, Outdoor), areas (Indoor, Outdoor), requiresCreditCard, type, hash and token; cardPolicy (HOLD or DEPOSIT) appears when a card is required.
The rows below are real output from one run with three restaurant IDs (4336, 5982, 1180) for a party of 2 on 2026-10-14.
Available
{"url": "https://www.opentable.com/restaurant/profile/4336","date": "2026-10-14","partySize": 2,"status": "available","statusMessage": null,"restaurantId": "4336","name": "Providence","restaurant": {"id": "4336","neighborhood": "Hollywood","address": "5955 Melrose Ave","city": "Los Angeles","country": "United States","cuisine": "Seafood","price": "$50 and over","rating": 4.9,"reviewCount": 260,"state": "CA","postalCode": "90038","phone": "(323) 460-4170","latitude": 34.0836485,"longitude": -118.3301911,"metro": "Los Angeles","diningStyle": "Fine Dining","dressCode": "Business Casual"},"minPartySize": 1,"maxPartySize": 6,"bookingWindowDays": 60,"bookingPolicies": ["We may contact you about this reservation, so please ensure your email and phone number are up to date.","We offer an 8-course tasting menu, along with a full beverage program including non-alcoholic options. Please inform us of any allergies or dietary restrictions and note that we are unable to create a vegan, gluten-free, or dairy-free menu.\nPlease cancel 7 days in advance to avoid a non-refundable $375 per person fee. If we do not hear from you prior to 7 days before your reservation, your reservation may be canceled."],"slotCount": 1,"slots": [{"time": "2026-10-14T21:15","type": "Standard","hash": "3646559438","token": "eyJ2IjozLCJtIjoxLCJwIjowLCJjIjoxNjM1NzA2LCJzIjowLCJuIjowfQ","requiresCreditCard": true,"cardPolicy": "HOLD","startTime": "2026-10-14T21:15","seating": ["Standard"],"areas": ["Indoor"]}],"checkedAt": "2026-10-06T12:51:42.553912+00:00"}
Sold out
{"url": "https://www.opentable.com/restaurant/profile/5982","date": "2026-10-14","partySize": 2,"status": "sold_out","statusMessage": "The restaurant is not taking reservations on this date.","restaurantId": "5982","name": "Alinea","restaurant": {"id": "5982","neighborhood": "Lincoln Park","address": "1723 N Halsted","city": "Chicago","country": "United States","cuisine": "Contemporary American","price": "$50 and over","rating": 0.0,"reviewCount": 0,"state": "IL","postalCode": "60614","phone": null,"latitude": 41.913433,"longitude": -87.648,"metro": "Chicago","diningStyle": "Fine Dining","dressCode": "Smart Casual"},"minPartySize": 1,"maxPartySize": 6,"bookingWindowDays": 90,"bookingPolicies": ["We have a 10 minute grace period. Please call us if you are running later than 10 minutes after your reservation time.\n\nWe may contact you about this reservation, so please ensure your email and phone number are up to date.","All sales are final and non-refundable. Contact hospitality@alinearestaurant.com to transfer or reschedule up to 72 hours before your reservation."],"slotCount": 0,"slots": [],"checkedAt": "2026-10-06T12:51:42.554131+00:00"}
Not bookable online
{"url": "https://www.opentable.com/restaurant/profile/1180","date": "2026-10-14","partySize": 2,"status": "invalid_request","statusMessage": "The restaurant does not take online reservations.","restaurantId": "1180","name": "The French Laundry","restaurant": {"id": "1180","neighborhood": "Yountville","address": "6640 Washington Street","city": "Yountville","country": "United States","cuisine": "American","price": "$50 and over","rating": null,"reviewCount": null,"state": "CA","postalCode": "94599","phone": null,"latitude": 38.404409,"longitude": -122.364982,"metro": null,"diningStyle": "Fine Dining","dressCode": "Jacket Required"},"minPartySize": 0,"maxPartySize": 0,"bookingWindowDays": 0,"bookingPolicies": [],"slotCount": 0,"slots": [],"checkedAt": "2026-10-06T12:51:42.554177+00:00","error": "The restaurant does not take online reservations."}
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
From October 21, 2026: $2.99 per 1,000 completed availability checks. No pass, no subscription.
| Availability check charges | Charged |
|---|---|
available: bookable tables | 1 check |
sold_out: no bookable table on that date | 1 check |
not_yet_bookable: reservations for that date have not opened yet | 1 check |
invalid_request: cannot be booked as asked | free |
check_failed: could not be confirmed | free |
- One check per restaurant row, however many times it lists. Example: 10 restaurants checked every hour for a day is 240 checks, $0.72.
- A 30-day pass bought before October 21 stays valid until it ends. Checks during the pass are included.
- The run's maximum charge caps spending: no check starts that the remaining budget cannot cover, and the status message says how many URLs were not checked.
Until October 21, 2026: 24-hour free trial, then $29 for a 30-day pass, no automatic renewal.
- Free trial: starts automatically on your first run, unlimited checks for 24 hours, once per Apify user.
- Pass activation: on your first run after the trial or a previous pass has expired. The run's maximum charge must allow at least $29.
- No automatic renewal: a new pass is activated only when you relaunch the actor after the last one expired.
The run log always states whether a trial or pass is active, or a pass was 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/alinea-chicago"},{"url": "https://www.opentable.com/r/strip-house-new-york"}],"date": "2026-11-12","partySize": 2})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["status"] == "available":print(f"{item['name']}: {item['slotCount']} slots available")for slot in item["slots"]:print(f" {slot['startTime']} - {', '.join(slot['seating'])}")
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/alinea-chicago' },{ url: 'https://www.opentable.com/r/strip-house-new-york' }],date: '2026-11-12',partySize: 2});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.filter(i => i.status === 'available').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: What does a check cost? A: From October 21, 2026, $2.99 per 1,000 completed checks: available, sold out, or not yet open for booking. Checks that cannot be completed or cannot be booked as requested are free. Until then, a 24-hour free trial, then $29 for 30 days.
Q: I bought a 30-day pass. What happens on October 21? A: Your pass stays valid until it ends, and checks during it are included. After it ends, you pay per check. No new passes are sold from October 21.
Q: Does anything renew automatically? A: No. There is no subscription or background renewal.
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 with status: "sold_out", slotCount: 0, slots: [] and a statusMessage such as "The restaurant is not taking reservations on this date." This confirms the check ran rather than silently skipping the restaurant.
Q: How do I tell a sold-out restaurant from a failed check?
A: Read status. sold_out means the restaurant answered with no bookable table. check_failed means the answer could not be confirmed; run the check again.
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 status: "invalid_request" and an error such as "Could not resolve restaurant URL" or "Restaurant not found". 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.
