We extract restaurant profiles, real-time reservation availability, venue metadata, menus, and user ratings from Resy. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.
Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.
Complete list of extractable fields for Restaurant Profiles objects from resy.com. All fields typed and schema-versioned.
"venue_id": "1234", "name": "Lilia", "slug": "lilia-brooklyn", "neighbourhood": "Williamsburg", "cuisine": "Italian", "price_tier": 3, "rating": 4.8, "review_count": 3421
| # | venue_id | name | slug | neighbourhood | cuisine | price_tier |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Table Availability objects from resy.com. All fields typed and schema-versioned.
"venue_id": "1234", "date": "2026-05-12", "time_slot": "19:30:00", "party_size": 2, "table_type": "Dining Room", "is_available": true, "amex_exclusive": false
| # | venue_id | date | time_slot | party_size | table_type | is_available |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Menus objects from resy.com. All fields typed and schema-versioned.
"venue_id": "1234", "menu_name": "Dinner", "section": "Pasta", "item_name": "Mafaldini", "description": "Pink peppercorn, parmigiano", "price": 28.0, "currency": "USD", "dietary_flags": "['Vegetarian']"
| # | venue_id | menu_name | section | item_name | description | price |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Venue Metadata objects from resy.com. All fields typed and schema-versioned.
"venue_id": "1234", "dress_code": "Smart Casual", "parking_details": "Street parking available", "cross_street": "Union Ave", "website": "https://lilianewyork.com", "cancellation_policy": "24 hours notice required", "notify_waitlist_enabled": true
| # | venue_id | amenities | dress_code | parking_details | cross_street | transit_options |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Search Results objects from resy.com. All fields typed and schema-versioned.
"query_location": "New York", "query_party_size": 2, "position": 1, "venue_id": "1234", "name": "Lilia", "matched_time": "19:30:00", "table_type": "Dining Room", "distance_miles": 1.2
| # | query_location | query_date | query_party_size | position | venue_id | name |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Our Resy scraper handles every layer of the platform: restaurant profiles, real-time inventory, menu updates, and waitlist tracking — with session management and geographic IP routing built in.
Name, cuisine, price tiers, address, coordinates, and contact details scraped accurately for every restaurant.
Monitor open slots by date, time, and party size to build historical inventory datasets.
Distinguish between indoor, outdoor, bar seating, and high-tops for precise inventory tracking.
Extract sectioned menus, item descriptions, prices, and dietary flags across all available meal times.
Identify exclusive inventory gated for specific cardholders directly from the availability payload.
Extract penalty windows, deposit requirements, and no-show fees associated with specific bookings.
Monitor when venues activate waitlists versus showing open inventory to gauge real demand.
Scrape average scores, review counts, and featured testimonials to track venue reputation.
Track rank position for venues by neighbourhood and cuisine queries within the Resy search engine.
Run availability checks at minute-level intervals for high-demand venues to capture cancellation drops.
Brief in. Clean data out.
Provide target cities, restaurant lists, or specific availability parameters. We design the extraction schema together.
We configure Scrapy crawlers, proxy rotation, and session management specifically for resy.com.
Schema validation, null-rate checks, and inventory accuracy tests before full launch.
JSON, CSV, or Parquet pushed to your S3 bucket or data warehouse on schedule.
Resy employs strict rate limits and geographic blocking to protect inventory. Here is how we maintain steady extraction.
Resy restricts access based on location. We route requests through city-specific residential proxy pools to ensure accurate availability rendering and bypass geographic firewalls.
Reservation slots use short-lived session tokens. Our pipeline extracts these tokens alongside the slot data to maintain booking link integrity for downstream applications.
High-frequency polling triggers rate limits. We distribute requests across thousands of IPs with randomised delays to maintain steady extraction without burning proxy pools.
Resy often obfuscates graphQL responses. We intercept and decode the raw JSON payloads directly from the network layer rather than relying purely on DOM scraping.
Frontend DOM structures change frequently. We map data directly from backend API responses where possible, using DOM selectors only as secondary fallbacks.
Analyse restaurant density, cuisine trends, and price tiers across specific neighbourhoods to inform expansion strategy.
Sync real-time availability into unified booking platforms or high-end concierge applications.
Restaurant groups monitor competitor pricing, menu changes, and booking velocity to adjust their own operations.
Correlate restaurant booking difficulty and price tiers with commercial real estate values to identify emerging neighbourhoods.
Analyse menu price fluctuations over time across different hospitality groups to track food inflation.
Track the ratio of open tables to waitlist activations to gauge local dining demand accurately.
"Resy holds the pulse of premium dining demand. Without structured availability data, you are guessing at market trends instead of measuring them."
Extracting real-time inventory from Resy requires precise session management, city-specific residential proxies, and high-frequency polling infrastructure. DataFlirt handles the operational complexity of rate limits and API changes, delivering clean, queryable data directly to your warehouse so your team can focus on analytics.
Everything supported by our resy.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.
Open-source tooling on proven cloud infra — no vendor lock-in, full observability.
Scrapy handles crawl orchestration and retry logic. Playwright handles JavaScript rendering and session token generation. Combined via scrapy-playwright middleware.
We maintain pools of residential ISP proxies targeted to specific metropolitan areas. Rotation happens per-request to bypass geographic availability restrictions.
Pipelines run on AWS Lambda for high-frequency polling bursts. Airflow handles scheduling and SLA alerting. State stored in managed Postgres.
Data delivered to where your team already works — no new tooling required.
About resy.com scraping, legality, and pipeline operations.
Ask us directly →Scraping public restaurant profiles and availability is generally permissible under applicable law. DataFlirt targets only public, non-authenticated venue, pricing, and availability data. We do not extract personal user data or circumvent authentication walls. Clients should review Resy's ToS and consult legal counsel for specific use cases.
We can configure pipelines to poll specific high-demand venues at 60-second intervals to capture cancellations instantly. Broad market sweeps typically run on hourly or daily cadences.
Yes, we extract data for venues in London, Sydney, and other global markets, normalising timezones and currencies in the final output.
We can identify slots tagged as Global Dining Access from the public availability payload, but booking them requires authentication which we do not support.
We extract all available menus, such as Dinner, Brunch, and Wine Lists, preserving the section hierarchy and item descriptions exactly as rendered on the venue page.
Availability is delivered as a normalised time-series format, linking venue IDs to specific dates, times, and party sizes, making it immediately queryable in SQL.
We capture the Notify status, indicating when a venue shifts from open inventory to waitlist mode, providing a proxy metric for restaurant demand.
20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a one-off restaurant catalogue dump or a continuous availability feed across 10,000 venues — we scope, build, and operate the pipeline. Tell us what you need.