resy.com APIwww.resy.com ↗
Search Resy restaurants, check real-time reservation slots, browse calendar availability, and get curated city lists via a structured JSON API.
curl -X GET 'https://api.parse.bot/scraper/d97a8bf9-e9ca-473c-b1e6-e66ada7210a0/search_restaurants?date=2026-02-25&page=1&query=italian&latitude=40.7128&per_page=3&longitude=-74.0060&party_size=2' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for restaurants by keyword, location coordinates, date, and party size. Supports pagination. Returns restaurant names, cuisine types, ratings, images, and neighborhoods.
| Param | Type | Description |
|---|---|---|
| date | string | Date for availability check in YYYY-MM-DD format. Omitting defaults to today's date. |
| page | integer | Page number for pagination |
| query | string | Search keyword (e.g., 'italian', 'sushi', 'steakhouse') |
| latitude | number | Latitude of search center (e.g., 40.7128 for NYC) |
| per_page | integer | Results per page (max 50) |
| longitude | number | Longitude of search center (e.g., -74.006 for NYC) |
| party_size | integer | Number of guests |
{
"type": "object",
"fields": {
"date": "string, the date used for the search",
"query": "string, the search keyword used",
"pagination": "object with page, per_page, total, total_pages",
"party_size": "integer, the party size used",
"restaurants": "array of restaurant objects with id, name, cuisine, price_range, rating, neighborhood, region, url_slug, location, images"
},
"sample": {
"data": {
"date": "2026-05-14",
"query": "italian",
"pagination": {
"page": 1,
"total": 2362,
"per_page": 3,
"total_pages": 788
},
"party_size": 2,
"restaurants": [
{
"id": 92126,
"name": "Eccolo Italian Restaurant",
"images": [
"https://image.resy.com/3/003/2/92126/c4b61fbf0de87f66478b403dcc48c6ce6950c776/jpg/640x360"
],
"rating": {
"count": 80,
"average": 4.3625
},
"region": "NY",
"cuisine": [
"Italian"
],
"tagline": null,
"location": {
"latitude": null,
"longitude": null
},
"url_slug": "eccolo-italian-restaurant",
"price_range": 1,
"availability": null,
"need_to_know": null,
"neighborhood": "Hell's Kitchen"
}
]
},
"status": "success"
}
}About the resy.com API
This API exposes 5 endpoints covering Resy's restaurant data: search venues by keyword and coordinates, retrieve detailed venue profiles with live time slots, check calendar availability across date ranges, look up a venue by URL slug, and pull curated lists of top-rated, new, or trending restaurants by city. The search_restaurants endpoint alone returns names, cuisine types, ratings, neighborhoods, images, and pagination metadata in a single call.
Search and Discovery
The search_restaurants endpoint accepts a freeform query (e.g., 'sushi', 'steakhouse'), optional latitude/longitude coordinates, a date in YYYY-MM-DD format, and a party_size. Results are paginated via page and per_page (max 50 per page). Each restaurant object in the response includes id, name, cuisine, price_range, rating, neighborhood, region, url_slug, location, and images. The url_slug and id fields are the keys you'll pass into other endpoints.
Venue Details and Slot Availability
Once you have a venue_id, get_restaurant_details returns the full venue object plus a slots array for a specific date and party size. Each slot carries start, end, type, token, size, and payment fields — enough to display what's bookable and at what configuration. For a broader view, get_restaurant_availability takes a venue_id, num_seats, and a start_date/end_date range (defaulting to 30 days from today). It returns a calendar array where each entry indicates whether a given date has reservation, event, or walk-in inventory, plus a last_calendar_day field showing the furthest bookable date.
Venue Profiles and City Lists
get_venue_info accepts a url_slug and a location slug (e.g., 'new-york-ny') and returns the deepest venue profile: cross-platform IDs (Resy, Google, Foursquare), structured content blocks including about text and need-to-know notes, contact data, collections the venue belongs to, and full location including coordinates and postal code. get_top_restaurants lets you pull city-wide lists filtered by list_type — either 'top-rated', 'new-on-resy', or 'climbing' — for any supported city_slug. Each entry includes rating, address, about, need_to_know, and collections membership.
- Build a reservation availability checker that surfaces open Resy slots by date and party size for a given venue.
- Aggregate top-rated and trending restaurants across multiple cities using
get_top_restaurantswith theclimbinglist type. - Power a neighborhood dining guide by filtering
search_restaurantsresults onneighborhoodandcuisinefields. - Display a multi-week availability calendar for a specific restaurant using
get_restaurant_availabilityover a custom date range. - Enrich venue records with cross-platform IDs (Google, Foursquare) and structured content blocks via
get_venue_info. - Track newly added restaurants in a city by polling
get_top_restaurantswithlist_type: 'new-on-resy'. - Build a concierge tool that accepts a user's party size and preferred date, then ranks venues by rating from
search_restaurantsresults.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Resy offer an official developer API?+
What does the `slots` array in `get_restaurant_details` actually contain?+
start and end timestamps, a type field indicating the reservation configuration, a token that identifies the specific slot, a size field for the party size the slot accommodates, and a payment field indicating any associated payment requirements. Slots reflect availability for the specific date and party_size you pass to the endpoint.Does `get_restaurant_availability` tell me the exact times available on each date?+
last_calendar_day for the venue, but not individual time slots. For specific times on a given date, use get_restaurant_details with that date and a party_size. You can fork this API on Parse and revise it to combine both calls into a single aggregated response.Does the API cover menu data, pricing per dish, or user reviews?+
Is coverage limited to certain cities or regions?+
get_top_restaurants endpoint uses a city_slug parameter, so cities not supported by Resy will return no results. The search_restaurants endpoint accepts arbitrary coordinates, but results depend on whether Resy has partner venues in that area.