# Resy — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search for restaurants across cities and check real-time availability to find open reservation slots on Resy. Discover trending and top-rated venues with detailed information about dining options, menus, and available time slots across selected dates.

**Category:** Food & Dining | **Website:** [www.resy.com/](https://www.resy.com/) | **Docs:** [parse.bot/marketplace/96402cbb-7796-42de-be1c-4ac2b38be83e/resy-com-api](https://parse.bot/marketplace/96402cbb-7796-42de-be1c-4ac2b38be83e/resy-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-resy-com-api-96402cbb/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_restaurant_availability

Get calendar availability for a restaurant over a date range. Shows which dates have available reservations, events, or walk-ins. The response covers from start_date to last_calendar_day (the venue's furthest bookable date), which may be shorter than the requested end_date.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `end_date` | string | No | End date in YYYY-MM-DD format. Omitting defaults to 30 days from today. |
| `num_seats` | integer | No | Number of seats/guests |
| `start_date` | string | No | Start date in YYYY-MM-DD format. Omitting defaults to today's date. |
| `venue_id` | integer | Yes | Resy venue ID |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-resy-com-api-96402cbb/get_restaurant_availability \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"end_date":"<string>","num_seats":"<integer>","start_date":"<string>","venue_id":"<integer>"}'
```

### get_restaurant_details

Get detailed restaurant information and available reservation time slots for a specific venue on a given date and party size. Returns venue profile (name, type, price range, rating, location) and an array of bookable slots with start/end times, table type, and payment requirements. If no slots are available, the slots array is empty.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | No | Date in YYYY-MM-DD format. Omitting defaults to today's date. |
| `party_size` | integer | No | Number of guests |
| `venue_id` | integer | Yes | Resy venue ID (from search_restaurants results) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-resy-com-api-96402cbb/get_restaurant_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>","party_size":"<integer>","venue_id":"<integer>"}'
```

### get_top_restaurants

Get curated restaurant lists for a city: top-rated, new on Resy, or trending/climbing. Returns rich venue data including ratings, addresses, descriptions, images, and collection memberships. Results are ordered by the list's curation logic (not user-controllable).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `city_slug` | string | No | City URL slug (e.g., 'new-york-ny', 'los-angeles-ca', 'chicago-il') |
| `limit` | integer | No | Number of restaurants to return (max 50) |
| `list_type` | string | No | Type of curated list to retrieve |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-resy-com-api-96402cbb/get_top_restaurants \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"city_slug":"<string>","limit":"<integer>","list_type":"<string>"}'
```

### get_venue_info

Get comprehensive venue details by URL slug and location. Returns full venue profile including about text, need-to-know info, contact details, images, collections, social links, and configuration. The url_slug and location values come from search_restaurants results or from Resy venue URLs (e.g., resy.com/cities/{location}/venues/{url_slug}).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | Yes | Location slug (e.g., 'new-york-ny', 'los-angeles-ca') |
| `url_slug` | string | Yes | Venue URL slug (e.g., 'i-sodi', 'essex') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-resy-com-api-96402cbb/get_venue_info \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"<string>","url_slug":"<string>"}'
```

### search_restaurants

Full-text search over restaurants by keyword, location coordinates, date, and party size. Returns paginated results with restaurant names, cuisine types, ratings, price ranges, neighborhoods, and available reservation time slots for the queried date. Each result carries a venue ID usable for detail/availability lookups. Paginates via integer page counter.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | No | Date for availability check in YYYY-MM-DD format. Omitting defaults to today's date. |
| `latitude` | number | No | Latitude of search center (e.g., 40.7128 for NYC) |
| `longitude` | number | No | Longitude of search center (e.g., -74.006 for NYC) |
| `page` | integer | No | Page number for pagination |
| `party_size` | integer | No | Number of guests |
| `per_page` | integer | No | Results per page (max 50) |
| `query` | string | No | Search keyword (e.g., 'italian', 'sushi', 'steakhouse') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-resy-com-api-96402cbb/search_restaurants \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>","latitude":"<number>","longitude":"<number>","page":"<integer>","party_size":"<integer>","per_page":"<integer>","query":"<string>"}'
```
