# Resy — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/resy/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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.beta.paywithlocus.com/api/wrapped/credits/resy/get-restaurant-availability \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/resy/get-restaurant-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/resy/get-top-restaurants \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/resy/get-venue-info \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/resy/search-restaurants \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>","latitude":"<number>","longitude":"<number>","page":"<integer>","party_size":"<integer>","per_page":"<integer>","query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.