Resy Restaurant Scraper - No Login, Social Links & Hours avatar

Resy Restaurant Scraper - No Login, Social Links & Hours

Pricing

$5.00 / 1,000 venue scrapeds

Go to Apify Store
Resy Restaurant Scraper - No Login, Social Links & Hours

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

Gio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

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

FieldTypeRequiredDescription
venueUrlsarray of stringsYesOne 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

  1. 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.
  2. Hospitality group competitive mapping - track every venue under a restaurant group (the venueGroupName field) to see how a group like Major Food Group is expanding across cities and price tiers.
  3. 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.
  4. 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.
  5. Market intelligence on pricing tiers - aggregate the priceRange and minPartySize/maxPartySize fields across a city's Resy venues to analyze how party-size policy correlates with price tier.

How it works

  1. The Actor takes the venueUrls list, deduplicates it and validates that each URL matches a Resy venue page.
  2. For each URL it requests the public venue page, the same page a diner sees without logging in.
  3. It parses the venue record embedded in that page: identity, location, booking limits and marketing fields.
  4. 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 error field, and the underlying HTTP status so you can see exactly which inputs failed and why, right next to the rows that succeeded.
  5. Every successful row also gets a scrapedAt timestamp 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

FieldTypeDescription
namestringVenue name as listed on Resy
venueIdintegerResy's internal venue ID
type / cuisinestring or nullCuisine type, when Resy has it set for the venue
address, city, region, postalCode, countrystringFull postal address
latitude, longitudefloatVenue coordinates
priceRangeintegerResy's price tier, 1 to 4
minPartySize, maxPartySizeintegerBooking party size limits
venueGroupId, venueGroupNameinteger / string or nullRestaurant group the venue belongs to, when applicable
socialLinksarraySocial media handles Resy has on file for the venue
imagesarrayVenue photo URLs, when Resy serves any for that venue
hoursarrayPosted hours, when available
error, messagestringPresent only on venues that could not be resolved
scrapedAtstring (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, images and hours come back null or 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 error row 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.