Resy Availability & Scarcity Monitor
Pricing
from $5.00 / 1,000 venue-date availability rows
Resy Availability & Scarcity Monitor
Forward-dated restaurant reservation availability from Resy: slot counts, prime-time counts, first and last seating, seating types, sold-out flags. Delta mode returns only what moved. Read-only: books nothing, no account, no personal data.
Pricing
from $5.00 / 1,000 venue-date availability rows
Rating
0.0
(0)
Developer
Sami
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Resy Availability & Scarcity Monitor — Restaurant Reservation Data by Date (2026)
Turn restaurant reservation availability into a dataset. For every venue, date and party size you ask for, you get the number of bookable slots, how many of them fall in the prime dinner window, the first and last seating, the seating types on offer, and whether it is sold out. Turn on delta mode and a daily schedule returns only what moved — sold out, reopened, prime window emptied.
No login. No API key to obtain. No browser. Clean JSON / CSV / Excel, billed per row you actually receive.
Read-only by design. This Actor books nothing, creates no account, holds no table, resells no reservation and collects no personal data. It reads the same public availability any diner sees on the site.
How to build a comp set in 3 steps
- Scan a metro once. Mode
metro_scanwithmetros: ["new-york"]returns venues with theirvenueIdandurlSlug. - Watch your comp set. Mode
venue_watchwith those ids, your date window and the party sizes you care about. Each venue-date is one small request (~34 KB, ~0.2 s). - Schedule it with
deltaMode: trueand you have a scarcity feed instead of a nightly re-read.
What makes a row useful
Every other actor on this surface returns a venue list. This one returns the availability shape of a night, which is what a revenue manager or an analyst actually reads:
| Field | Why it matters |
|---|---|
totalSlots | How much inventory is genuinely bookable for that date and party size |
primeSlots + primeWindow | Slots between 18:30 and 20:59. A 16:00 seating and a 19:30 seating are not the same product, and averaging them hides the signal |
fullyBooked / primeFullyBooked | Sold out overall, or prime-time gone while off-peak tables remain — the earliest sign of real demand |
earliestSeating / latestSeating | Service window, and how it stretches or contracts by season |
seatingTypes | Dining Room / Bar / High Top / Lounge — which inventory the venue is actually releasing |
maxTableQuantity | Largest table on offer, i.e. group capacity |
rating, totalRatings, cuisine, priceRange, neighborhood | Segment any of the above by quality, cuisine, price band or district |
Example row
{"venueId": 87134,"venueName": "Mudville","urlSlug": "mudville","cuisine": "American","priceRange": 2,"neighborhood": "Tribeca","city": "New York","date": "2026-08-04","partySize": 2,"totalSlots": 144,"primeSlots": 30,"primeWindow": "18:30-20:59","earliestSeating": "11:30","latestSeating": "23:15","seatingTypes": ["Dining Room", "High Top", "Lounge"],"maxTableQuantity": 45,"fullyBooked": false,"primeFullyBooked": false,"rating": 4.6158,"totalRatings": 2841,"scrapedAt": "2026-07-25T20:10:00Z"}
Delta mode — a cron that bills for movement
With deltaMode: true, the first run sets a baseline and later runs return only cells that changed:
changeType | Meaning |
|---|---|
new | Venue-date cell seen for the first time |
sold_out | Had slots, now has none |
reopened | Was full, now has slots — a cancellation wave |
prime_sold_out | Prime window emptied while off-peak tables remain |
availability_up / availability_down | Slot count moved beyond the noise floor (2 slots), with slotChange and primeSlotChange |
disappeared | Cell was tracked and the venue is absent from a scope this run swept |
Each change carries previousTotalSlots and previousPrimeSlots, so the row explains itself without a join. Unchanged cells are not returned and not charged.
And this is the part that cannot be bought later: nobody can retro-fetch how full a restaurant was last Tuesday — not this Actor, not a competitor who starts next month. A scarcity history exists only from the day your schedule starts.
{"mode": "venue_watch","venueIds": ["6194", "87134"],"startDaysAhead": 1,"horizonDays": 30,"partySizes": ["2", "4"],"deltaMode": true,"deltaStateKey": "nyc-compset"}
Who this is for
| Buyer | Use |
|---|---|
| Restaurant groups and revenue managers | Watch the comp set's forward calendar; see the night your rival's prime window empties, and whether yours follows |
| Hospitality consultancies | Demand curves by neighbourhood, cuisine and price band, built from bookable inventory rather than surveys |
| Consumer and real-estate analysts | Dining scarcity as a neighbourhood-level demand proxy — restaurant availability leads foot traffic |
| Event, travel and concierge operations | Which venues still have prime tables across a date range, at a glance |
| Data teams building city panels | A normalised venue-date-party grid ready to join with weather, events or transaction data |
Sizing your run (and your bill)
Rows = venues × dates × party sizes, one request each.
| Setup | Requests | Rows | At $0.005/row |
|---|---|---|---|
| Comp set: 20 venues × 14 dates × 1 party size | 280 | 280 | $1.40 |
| Comp set: 40 venues × 30 dates × 2 party sizes | 2,400 | 2,400 | $12 |
| Metro discovery: 1 metro × 3 dates, 200 venues deep | ~6 | ~600 | $3 |
| Daily cron with delta on 40 venues × 30 dates | 1,200/day | only what moved | typically a small fraction |
A single run is capped at 3,000 requests so a typo cannot launch a runaway sweep. dateStepDays: 7 keeps the weekday fixed, which is both cheaper and more readable as a trend.
Pricing
| Event | Price | What it is |
|---|---|---|
venue-date-row | $0.005 | One venue priced for one date and party size, full field set |
availability-change | $0.015 | One cell that moved in delta mode, with its previous counts |
Cells that fail to fetch are pushed as error records with the reason — and are never charged.
Limitations, stated plainly
- Resy is US-centric. New York, Miami, Chicago, San Francisco, Boston and Washington DC carry real depth. London and Toronto returned almost nothing when tested, and non-US coordinates generally return an empty venue list. If you need European dining data, this is not the right tool.
- Availability is not the same as demand. A venue with no slots may be sold out, may have closed for a private event, or may simply not have released inventory yet.
totalSlotsis what is bookable, and that is what the row claims — nothing more. - No history before your first run. Reservation availability cannot be backfilled by anyone.
- This reads an internal client API, not a documented product. It is stable in practice and the Actor re-reads the client key at runtime so a rotation self-heals, but an undocumented endpoint can change without notice. If it does, open an issue and it gets fixed.
- Prime window is fixed at 18:30-20:59 local. If your market's prime hours differ, use
earliestSeating/latestSeatingand the raw counts.
FAQ
Do I need a proxy? No. Verified with 12 rapid consecutive requests from a plain datacenter IP: 12 successes, no throttling, no challenge.
Does this book tables or hold reservations? No. It performs read-only availability lookups. It cannot book, cancel, hold or transfer a reservation, and it never signs in.
Why is my first delta run large? It is the baseline. From the second run on you only get movement.
How do I find venue ids? Run metro_scan once — every row carries venueId and urlSlug.
Can I track large-party availability? Yes, that is what partySizes is for. A table for 6 is far scarcer than a table for 2, and each size is its own row.
Other scrapers by Zhorex
- Hostelworld Rate & Availability Monitor — the same delta-monitor pattern for accommodation rates by date
- Booking.com Reviews Scraper — guest reviews with delta mode for new-review monitoring
Legal
This Actor reads publicly visible commercial availability: venue names, bookable time slots, seating types, ratings and neighbourhoods. It collects no personal data, creates no accounts, makes no bookings and does not facilitate reservation resale. Respect the platform's terms and applicable law in your jurisdiction, and use the data for analysis rather than redistribution.