Resy Restaurant Scraper - No Login, Social Links & Hours
Pricing
$5.00 / 1,000 venue scrapeds
Resy Restaurant Scraper - No Login, Social Links & Hours
Get Resy restaurant venue data by URL: name, cuisine, address, coordinates, price tier, party size limits, social links, group affiliation and hours. No login, no session cookie needed. $0.005 per venue.
Pricing
$5.00 / 1,000 venue scrapeds
Rating
0.0
(0)
Developer
Gio
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get structured restaurant data from any Resy venue page: name, cuisine, full address and coordinates, party size limits, price range, social links, group affiliation, images and posted hours. Paste one venue URL or a list of hundreds and get back clean JSON, no Resy account, no login and no session cookie required.
Why use this scraper
Resy does not publish a public API for venue data, so building a restaurant directory, a hospitality CRM enrichment pipeline or a competitive map of a dining market usually means either manually copying details off each venue page or maintaining a browser automation that logs in with a real Resy account, an account that can get flagged for unusual traffic. This Actor removes both problems.
It reads the same public venue page every diner already loads logged out, so there is no account to create, no cookie to refresh and no session to babysit. Give it a list of venue URLs from any city Resy covers and it returns one clean row per venue, with a clearly labeled error row for any venue that no longer exists or has gone private, so a batch of 500 URLs never silently loses rows or crashes partway through.
Overview
For each Resy venue URL you provide, the Actor fetches the public venue page and extracts the venue record Resy itself embeds for that page: identity fields (name, cuisine type, group), location fields (address, city, region, postal code, country, latitude and longitude), booking constraints (minimum and maximum party size, price range), and marketing fields (social media links, photos, posted hours). A typical run of 50 to 100 venues finishes in under two minutes. Fields that a specific venue does not have populated on Resy come back as null rather than a guessed value.
Supported inputs
| Field | Type | Required | Description |
|---|---|---|---|
venueUrls | array of strings | Yes | One or more Resy venue URLs, format https://resy.com/cities/{city}/venues/{slug}. Accepts a single URL or hundreds in one run. |
There is no keyword search mode: Resy's own site search is the way to find the venue slug for a restaurant you don't already have a link for, then this Actor turns that URL into structured data.
Use cases
- Restaurant directory and aggregator sites - pull the full venue record (address, cuisine, hours, images) for every restaurant on Resy in a city or neighborhood to seed or refresh a local dining directory without manual data entry.
- Hospitality group competitive mapping - track every venue under a restaurant group (the
venueGroupNamefield) to see how a group like Major Food Group is expanding across cities and price tiers. - B2B prospecting for restaurant tech and suppliers - build a lead list of restaurants in a market with phone, address and price range to prioritize outreach for POS systems, reservation software, or food and beverage suppliers.
- Food media and travel content research - compile venue details, cuisine type and social links for a "best of" roundup or a city dining guide without manually visiting dozens of listing pages.
- Market intelligence on pricing tiers - aggregate the
priceRangeandminPartySize/maxPartySizefields across a city's Resy venues to analyze how party-size policy correlates with price tier.
How it works
- The Actor takes the
venueUrlslist, deduplicates it and validates that each URL matches a Resy venue page. - For each URL it requests the public venue page, the same page a diner sees without logging in.
- It parses the venue record embedded in that page: identity, location, booking limits and marketing fields.
- If a venue has been removed, renamed or made private, the Actor does not crash the run: it pushes a row with the original URL, the
errorfield, and the underlying HTTP status so you can see exactly which inputs failed and why, right next to the rows that succeeded. - Every successful row also gets a
scrapedAttimestamp so you know how fresh the data is.
Input configuration - 3 examples
Single venue:
{"venueUrls": ["https://resy.com/cities/new-york-ny/venues/carbone"]}
Bulk list across cities:
{"venueUrls": ["https://resy.com/cities/new-york-ny/venues/carbone","https://resy.com/cities/los-angeles-ca/venues/bestia","https://resy.com/cities/chicago-il/venues/alinea"]}
Mixed valid and stale URLs (the Actor still returns the valid rows and a clear error for the stale one, instead of failing the whole run):
{"venueUrls": ["https://resy.com/cities/new-york-ny/venues/carbone","https://resy.com/cities/new-york-ny/venues/elevenmadisonpark"]}
Output sample
Real output from a reference run against two venue URLs, one active and one that Resy no longer serves:
[{"url": "https://resy.com/cities/new-york-ny/venues/carbone","slug": "carbone","location": "ny","venueId": 6194,"name": "Carbone","nameShort": null,"cuisine": null,"phone": null,"email": null,"address": "181 Thompson Street","city": "New York","region": "NY","postalCode": "10012","country": "United States","latitude": 40.7279891,"longitude": -74.0002311,"timezone": null,"priceRange": 4,"currencySymbol": "$","minPartySize": 1,"maxPartySize": 14,"about": null,"type": "Italian","isActive": 1,"resySelect": 0,"award": [],"venueGroupId": 4707,"venueGroupName": "Major Food Group","socialLinks": [{ "id": 1, "name": "facebook", "value": "https://www.facebook.com/pages/Carbone/420465384699862" },{ "id": 2, "name": "instagram", "value": "majorfoodgroup" }],"images": [],"hours": [],"scrapedAt": "2026-10-21T09:17:08.725Z"},{"url": "https://resy.com/cities/new-york-ny/venues/elevenmadisonpark","slug": "elevenmadisonpark","location": "ny","error": "fetch_failed","message": "HTTP 404: Venue is inactive or not found."}]
Key output fields
| Field | Type | Description |
|---|---|---|
name | string | Venue name as listed on Resy |
venueId | integer | Resy's internal venue ID |
type / cuisine | string or null | Cuisine type, when Resy has it set for the venue |
address, city, region, postalCode, country | string | Full postal address |
latitude, longitude | float | Venue coordinates |
priceRange | integer | Resy's price tier, 1 to 4 |
minPartySize, maxPartySize | integer | Booking party size limits |
venueGroupId, venueGroupName | integer / string or null | Restaurant group the venue belongs to, when applicable |
socialLinks | array | Social media handles Resy has on file for the venue |
images | array | Venue photo URLs, when Resy serves any for that venue |
hours | array | Posted hours, when available |
error, message | string | Present only on venues that could not be resolved |
scrapedAt | string (ISO) | Timestamp of extraction |
Pricing
Pay per event: $0.005 per venue successfully scraped ("Venue scraped" event). A venue that returns an error is not charged. There is no separate Actor start fee.
What makes this richer than the competition
Compared to clearpath/resy-api, a general Resy extraction tool with its own availability-checking add-ons, this Actor focuses specifically on returning the full static venue record (location, booking limits, group affiliation, social links) in one pass, with explicit per-row error handling so a batch run never stops partway. Compared to memo23/resy-restaurant-scraper, which covers Resy's city-level venue search across thousands of cities, this Actor is built for the common case of enriching a list of venue URLs you already have (from your own CRM, a competitor list, or another scraper) and returning every field Resy exposes for each one, including group and social data that a basic listing scraper does not always surface.
Notes & limitations
- Real-time reservation availability (specific time slots for a given date and party size) is not included. Resy serves that from a separate, frequently changing endpoint; this Actor focuses on the static venue profile.
- Fields such as
phone,cuisine,about,imagesandhourscome backnullor empty when Resy itself has not populated them for that venue; this is not a parsing gap, it reflects what Resy publishes. - A venue that has closed, been renamed, or made private returns an
errorrow instead of a guessed result. - Only venues reachable through a direct Resy venue URL are supported; there is no citywide keyword search mode in this Actor.
FAQ
Does this need a Resy account or login? No. It reads the public venue page the same way a logged-out visitor does.
Can I run this against venues in any city Resy operates in? Yes, any city with a public Resy venue page works, the URL format is the same worldwide.
What happens if I include a venue URL that no longer exists?
That row comes back with an error field and an HTTP status instead of stopping the whole run.
Does it return reservation times? No, only the static venue profile (address, hours, price tier, group, social links). Time-slot availability changes minute to minute and is out of scope.
How many venues can I process in one run? There is no hard cap in the input; large lists are processed sequentially and billed per successfully scraped venue.
Can I get the venue's menu? Menu data is not part of Resy's public venue page and is not returned by this Actor.
For AI Agents & LLM Apps
This Actor is available over the Apify MCP server (mcp.apify.com) for direct use from Claude, ChatGPT or any MCP-compatible agent, and over the standard Apify API for programmatic calls.
Example API call that returns the dataset items directly in the response, no polling required:
curl "https://api.apify.com/v2/acts/gio21~resy-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"venueUrls": ["https://resy.com/cities/new-york-ny/venues/carbone"]}'
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Resy, American Express, or any of their subsidiaries. It extracts publicly available venue page data. All trademarks mentioned are the property of their respective owners.
SEO Keywords
Resy scraper, Resy restaurant data, Resy venue API, scrape Resy venues, restaurant directory data, Resy restaurant list, dining data scraper.