Resy Scraper - Restaurants & Real-Time Availability avatar

Resy Scraper - Restaurants & Real-Time Availability

Pricing

from $4.49 / 1,000 restaurants

Go to Apify Store
Resy Scraper - Restaurants & Real-Time Availability

Resy Scraper - Restaurants & Real-Time Availability

Extract restaurant data and real-time reservation availability from Resy. Enter a city or paste URLs. Get ratings, cuisine, contact info, images, descriptions, waitlist status, and bookable time slots across 1,900+ cities. Export as JSON, CSV, or Excel.

Pricing

from $4.49 / 1,000 restaurants

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Resy Scraper | Restaurant Data & Real-Time Availability (2026)

CLEARPATH

Resy Restaurant Scraper
Extract restaurant data and real-time reservation availability from Resy. 40+ fields per restaurant: full address, social links, average spend, ratings, cuisine, contact info, descriptions, images, and bookable time slots across 1,900+ cities worldwide.

 

Resy ScraperTheFork ScraperTheFork Reviews

 

Extract complete restaurant data from Resy across 1,900+ cities worldwide. Phone numbers, websites, social links, average spend, ratings, cuisine types, GPS coordinates, images, descriptions, venue groups, awards, and real-time reservation availability. 40+ fields per restaurant.

Quick Start

Basic — Scrape restaurants in a city

{
"city": "New York"
}

Search by cuisine

{
"city": "Los Angeles",
"cuisine": "Japanese",
"maxItems": 200
}

Get availability for a specific date

{
"city": "Chicago",
"includeAvailability": true,
"date": "2026-03-20",
"partySize": 4,
"maxItems": 50
}

URL input — Scrape specific pages

{
"startUrls": [
"https://resy.com/cities/new-york-ny/carbone",
"https://resy.com/cities/new-york-ny"
]
}

Input Parameters

ParameterTypeDescriptionDefault
startUrlsarrayResy URLs to scrape. Supports city and restaurant pages.
citystringCity name, code, or URL slug. 1,900+ cities supported.
querystringSearch by restaurant name, cuisine, or keyword.
cuisinestringFilter by cuisine type. 15 options including Italian, Japanese, Steakhouse, Sushi, Mexican, etc.
includeAvailabilitybooleanInclude real-time reservation slots. Requires date and party size.false
datestringReservation date (YYYY-MM-DD). Required with availability.
partySizeintegerNumber of guests (1-20). Used with availability.2
maxItemsintegerMaximum number of restaurants to return.100

Output

Each restaurant includes 40+ fields: identity, ratings, cuisine, full address, contact, social links, average spend, venue group, awards, images, descriptions, GPS coordinates, cross-platform IDs, and more. With availability enabled, each restaurant also includes all bookable time slots.

Output Example

{
"id": 60029,
"name": "Le Gratin",
"urlSlug": "le-gratin",
"url": "https://resy.com/cities/new-york-ny/le-gratin",
"canonicalUrl": "https://resy.com/cities/new-york-ny/venues/le-gratin",
"type": "French",
"neighborhood": "Lower Manhattan",
"locality": "New York",
"region": "NY",
"country": "United States",
"address": "5 Beekman St",
"postalCode": "10038",
"cuisine": ["French"],
"priceRange": 2,
"averageSpend": "$85",
"averageSpendAmount": 85.0,
"currencyCode": "USD",
"currencySymbol": "$",
"rating": 4.63,
"ratingCount": 6581,
"minPartySize": 1,
"maxPartySize": 6,
"latitude": 40.7116,
"longitude": -74.0068,
"phone": "+12125979020",
"website": "https://www.legratinnyc.com/",
"socialLinks": [
{ "name": "facebook", "value": "https://www.facebook.com/LeGratinNYC/" },
{ "name": "instagram", "value": "legratinnyc" }
],
"images": [
"https://image.resy.com/3/003/2/60029/cc549754aa.../jpg/640x360"
// ... 7 more
],
"description": "Daniel Boulud pays tribute to the hearty, homey cooking of Lyonnais bistros known as bouchons...",
"metaDescription": "Le Gratin is a French restaurant in the Lower Manhattan neighborhood of New York.",
"keywords": ["dining", "reservations", "restaurant", "new york", "french"],
"collections": ["Resy Staff Picks in New York", "Global Dining Access"],
"venueGroup": "Dinex",
"awards": [],
"googlePlaceId": "ChIJj4fN7HBbwokRCB5xca3KF1E",
"foursquareId": "4f3fd11fe4b00e2d50f2b762",
"largePartyMessage": "For parties of 7 or more, contact us at infolegratin@danielboulud.com.",
"waitlistAvailable": 0,
"timeZone": "EST5EDT",
"location": "New York",
"locationCode": "ny",
"scrapedAt": "2026-03-06T11:00:36.770171+00:00"
}

Output Example — With Availability

When includeAvailability is enabled, each restaurant includes all bookable time slots:

{
"id": 60029,
"name": "Le Gratin",
"url": "https://resy.com/cities/new-york-ny/le-gratin",
"address": "5 Beekman St",
"type": "French",
"averageSpend": "$85",
"rating": 4.63,
"phone": "+12125979020",
"website": "https://www.legratinnyc.com/",
"slots": [
{
"startTime": "2026-03-06 11:30:00",
"endTime": "2026-03-06 13:00:00",
"type": "Dining Room",
"configId": 1045113,
"hasAddOns": false,
"shiftDay": "2026-03-06"
}
// ... 26 more slots
],
"slotCount": 27
}

Pricing — Pay Per Event (PPE)

One billable event: restaurant scraped.

TierPer 1,000 restaurants
Regular$5.99
Bronze$5.49
Silver$4.99
Gold$4.49

Free Usage

Free plan includes 5 runs with up to 10 restaurants per run — enough to evaluate the output before committing.

How to Scrape Resy Restaurant Data

  • By URL — Paste restaurant or city pages into startUrls
  • By city — Enter a city name like "New York", "London", or a code like "ny"
  • With filters — Add a cuisine type or keyword search to narrow results
  • Mix freely — Combine URLs and city search in the same run

API Integration

Python

from apify_client import ApifyClient
client = ApifyClient("your_token")
run = client.actor("clearpath/resy-api").call(run_input={
"city": "New York",
"cuisine": "Italian",
"maxItems": 50,
})
for restaurant in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{restaurant['name']}{restaurant['rating']}/5 — {restaurant['phone']}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_token' });
const run = await client.actor('clearpath/resy-api').call({
city: 'Los Angeles',
includeAvailability: true,
date: '2026-03-20',
partySize: 2,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} restaurants with availability`);

Advanced Usage

Track availability at specific restaurants

{
"startUrls": [
"https://resy.com/cities/new-york-ny/carbone"
],
"includeAvailability": true,
"date": "2026-03-15",
"partySize": 4
}

Extract all sushi restaurants in a city

{
"city": "New York",
"cuisine": "Sushi",
"maxItems": 500
}

Large city export

{
"city": "London",
"maxItems": 10000
}

Data Export

Results are available in multiple formats:

  • JSON — Nested structures (availability slots, images) fully preserved
  • CSV — Flat fields, arrays serialized
  • Excel — Spreadsheet-ready

Automation

  • Scheduled runs — Daily, weekly, or custom data refreshes
  • Webhooks — Get notified when a run completes
  • API — Integrate into your data pipeline programmatically

FAQ

Q: What data does Resy Scraper extract? A: Full address, phone, website, social links (Facebook, Instagram, Twitter), average spend, ratings, cuisine, GPS coordinates, images, descriptions, venue group, awards, Google Place ID, Foursquare ID, and real-time reservation availability. Over 40 fields per restaurant.

Q: How many restaurants can I get? A: Set maxItems up to 50,000. Most major cities have thousands of restaurants on Resy.

Q: Which cities are supported? A: All 1,900+ cities where Resy operates. Covers major markets in the US, UK, and internationally. Enter any city name, code, or URL slug.

Q: How does availability work? A: Enable includeAvailability, set a date and partySize. Each restaurant will include all bookable time slots with start/end times and room types for that date.

Q: Can I filter by cuisine? A: Yes. Select from 15 cuisine types including Italian, Japanese, Steakhouse, Sushi, Mexican, and more. Combine with query for keyword search.

Q: Is there a free trial? A: Yes. Free plan includes 5 runs with up to 10 restaurants per run. Enough to evaluate the data quality and format before upgrading.

Q: Can I schedule recurring runs? A: Yes. Use Apify's scheduler for daily, weekly, or custom schedules. Combine with availability to monitor hard-to-book restaurants.

Getting Started

1. Try it free

  1. Sign up for Apify — no credit card required
  2. Open Resy Scraper
  3. Enter a city name or paste a Resy URL
  4. Click Start and inspect the results

2. Configure

  1. Input — Paste URLs or enter a city name
  2. Filters — Select a cuisine type or add a search query
  3. Availability — Enable with a date and party size
  4. Limits — Control max restaurants per run

3. Scale

  1. Use the API for programmatic access
  2. Schedule recurring runs for fresh data
  3. Set up webhooks for pipeline automation

Use with AI Assistants (OpenClaw, Claude, etc.)

Connect this actor to AI assistants via Apify's MCP server. Ask your assistant to find restaurants in natural language.

Setup

  1. Go to mcp.apify.com and add clearpath/resy-api to your MCP server
  2. 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:

"Find me Italian restaurants in the West Village with outdoor seating"

"What Japanese restaurants are available in LA this Saturday for 4 people?"

"Show me the highest-rated steakhouses in Chicago"

The assistant calls the Resy Scraper, gets structured results, and responds with restaurant details, ratings, and availability.

This scraper extracts publicly available data from Resy listings. Users are responsible for complying with Resy's terms of service and applicable data protection regulations (GDPR, CCPA). Use extracted data responsibly and in accordance with local laws.

Contact data: Phone numbers are included when publicly listed. Comply with anti-spam regulations when using contact information for outreach.

Support


Complete restaurant intelligence from the world's leading reservation platform.