Resy Restaurant Scraper avatar

Resy Restaurant Scraper

Pricing

from $10.00 / 1,000 restaurant venues

Go to Apify Store
Resy Restaurant Scraper

Resy Restaurant Scraper

Scrape Resy restaurant data from any of 2,129 cities: name, cuisine, price band, rating with count, address, coordinates, phone, website, photos — plus live reservation slots for your chosen day and party size. Search by city and cuisine or paste venue URLs. JSON or CSV out.

Pricing

from $10.00 / 1,000 restaurant venues

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Resy Restaurant Scraper — Venues | Ratings | Contact Info | Live Reservation Availability

Scrape restaurant data from Resy at scale: search any of Resy's 2,129 cities (optionally filtered by cuisine or keyword), or fetch specific venues by URL. Every row carries the full venue record — name, cuisine, price band, Resy rating with rating count, neighborhood, full address, coordinates, phone, website, menu link, social handles, photos — and, when you want it, the live reservation slots for a chosen day and party size.

Built on Resy's own JSON API rather than HTML scraping: faster, cheaper, and stable against site redesigns. No login, no browser, no cookies.

How Resy Restaurant Scraper works

Why use this scraper

  • City-wide coverage in one input. Type New York and the scraper resolves it against Resy's official location table (2,129 cities worldwide), then walks the paginated venue search until the city is exhausted.
  • Live availability, not just static data. Opt in to includeAvailability and each venue row gains the actual bookable slots (start/end time, table type, party-size range) for your chosen day.
  • Real contact data. Resy exposes the restaurant's own phone number and website for most venues — both land directly on the row.
  • Exact-city results by default. Resy's search is distance-ranked without a radius cut-off, so naive scrapers drift into neighboring cities. This one filters to the searched city and stops paging when results leave it.
  • One row per venue. No padding, no duplicate rows — you pay for venues, not noise.

Overview

Data sourceResy public JSON API (search, venue detail, availability)
DiscoveryCity search (2,129 cities), cuisine/keyword filter, direct venue URLs
OutputOne dataset row per venue; availability rides along on the row
AuthNone required — the actor manages Resy's public widget key automatically
FormatsJSON, CSV, Excel, XML via the Apify dataset

Supported inputs

  1. Cities — plain city names: New York, Los Angeles, London, Paris, Austin, Toronto… Each becomes one paginated search.
  2. Search term / cuisine — optional free text applied to every city search: italian, steakhouse, sushi, omakase, a venue name, any keyword.
  3. Direct venue URLshttps://resy.com/cities/{city}/venues/{slug}, mixed freely with city searches in the same run.
  4. Result filtersminRating (Resy 5-point scale), priceRanges ($ to $$$$), and onlyWithAvailability (drop venues with no bookable slots for your day/party size). Rating and price filters run on the search hit itself, before the detail fetch, so filtered venues cost nothing.

Use cases

  • Market research — inventory every Resy venue in a city with price band, cuisine, and rating; compare neighborhoods or cuisines.
  • Availability monitoring — track which venues have open tables for a given day and party size; spot hard-to-book restaurants.
  • Lead generation — restaurant phone numbers, websites, and Instagram handles for hospitality-focused outreach (plus opt-in email discovery).
  • Competitive analysis — ratings and rating counts across a whole market, joined to OpenTable/TripAdvisor data via name and coordinates.
  • Apps and directories — structured venue records with photos, coordinates, and booking links.

How it works

  1. Your city input is resolved against Resy's official location table to exact coordinates.
  2. The venue search is walked page by page (50 venues per page), streamed — venue details fan out in parallel while the next page is still loading.
  3. Each unique venue is fetched once from the venue-detail endpoint (full record).
  4. With availability enabled, one extra call per venue pulls the live slots for your day and party size.
  5. Rows land in the dataset as they finish — no end-of-run batch, so partial results survive any interruption.

Input configuration

Example — every Italian restaurant in New York, with live slots for a party of 2:

{
"cities": ["New York"],
"query": "italian",
"includeAvailability": true,
"day": "2026-08-07",
"partySize": 2,
"maxItems": 200
}

Example — only well-rated, bookable steakhouses in the upper price bands:

{
"cities": ["New York"],
"query": "steakhouse",
"minRating": 4,
"priceRanges": ["$$$", "$$$$"],
"includeAvailability": true,
"onlyWithAvailability": true,
"maxItems": 50
}

Example — specific venues only:

{
"startUrls": [
"https://resy.com/cities/new-york-ny/venues/carbone",
"https://resy.com/cities/new-york-ny/venues/4-charles-prime-rib"
],
"includeAvailability": true
}

Output overview

One row per venue. Sample (trimmed):

{
"source": "Resy",
"venueId": 87058,
"name": "Foodance Italian Restaurant",
"resyUrl": "https://resy.com/cities/new-york-ny/venues/foodance-italian-restaurant",
"cuisine": "Italian",
"priceRange": "$$",
"rating": { "score": 4.64, "count": 228, "scale": 5, "source": "Resy" },
"description": "Foodance Italian Restaurant is an Italian restaurant in the Hell's Kitchen neighborhood of New York.",
"neighborhood": "Hell's Kitchen",
"address1": "468 W 47th St",
"locality": "New York",
"region": "NY",
"postalCode": "10036",
"country": "United States",
"latitude": 40.7627,
"longitude": -73.9928,
"phone": "+16464227755",
"website": "https://www.foodancerestaurant.com",
"social": [{ "name": "instagram", "value": "foodance__restaurant" }],
"images": ["https://image.resy.com/3/003/2/87058/....jpg"],
"availability": {
"day": "2026-08-07",
"partySize": 2,
"slots": [
{ "start": "2026-08-07 12:00:00", "end": "2026-08-07 13:30:00", "type": "Dining Room", "size": { "min": 1, "max": 2 } }
]
},
"scrapedAt": "2026-07-24T07:41:02.113Z"
}

Key output fields

FieldMeaning
venueIdResy's numeric venue ID; externalIds adds Google Place ID and Foursquare ID where present
ratingResy diner rating: score (5-point scale), total rating count
priceRange$ to $$$$ (Resy's own price band)
phone / website / menuUrlThe restaurant's own contact details as listed on Resy
availability.slotsLive bookable slots for the requested day/party size — start, end, table type, party-size range
collectionsResy editorial collections the venue appears in
venueGroupParent restaurant group, when the venue belongs to one
contactEmail / emailEnrichmentOnly with the opt-in email enrichment enabled

FAQ

Does it scrape written reviews? No — Resy doesn't publish written diner reviews. You get the aggregate rating and rating count. For full-text restaurant reviews, pair this with our OpenTable scraper.

Why does a famous venue show zero availability slots? Because it genuinely has none bookable for that day — high-demand venues (e.g. Carbone) release tables at fixed times and sell out in minutes. Try other days or party sizes.

Can I get venues outside the searched city? Yes — set onlyExactCity: false and the distance-ranked search will keep going into neighboring cities.

Do I need a Resy account or API key? No. The actor uses Resy's public widget key and refreshes it automatically at startup.

How many venues does a city have? New York has roughly 2,500 venues matching a typical cuisine search and 20k+ overall reachable records; most cities are far smaller. Use maxItems to cap billing.

Support

  • Issues tab — fastest way to reach us; we usually respond within 24 hours.
  • Custom features, bulk runs, or a managed data feed: open an issue describing what you need.

Additional services

  • Email enrichment (opt-in) — discover a contact email for each restaurant from its own website. Adds contactEmail, contactWebsite, and a detailed emailEnrichment object.
  • Scheduling — run daily/weekly with Apify Schedules; combine with includeAvailability for availability monitoring.

Explore more scrapers

⚠️ Disclaimer

This actor collects only publicly available data from Resy's public interfaces. It does not bypass authentication, collect personal data of private individuals, or circumvent access controls. You are responsible for how you use the data, including compliance with Resy's terms of service, applicable data-protection laws (GDPR, CCPA), and local regulations in your jurisdiction. This actor is not affiliated with, endorsed by, or sponsored by Resy Network Inc.

SEO Keywords

resy scraper, resy restaurant scraper, resy api, resy data extraction, scrape resy, resy reservation availability, resy venue data, restaurant data scraper, restaurant availability api, resy restaurant list, resy ratings scraper, restaurant lead generation, resy new york restaurants, restaurant market research, reservation slots scraper