# Sevenrooms — 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 available restaurant tables across any SevenRooms venue, view venue details and open dates, and complete reservations all in one place. Whether you're planning ahead or booking last-minute, you can check real-time availability and secure your table at thousands of restaurants on the SevenRooms platform.

**Category:** Food & Dining | **Website:** [www.sevenrooms.com/explore/wildtavernchelsea/reservations/create/search?venues=fantomas%2Cwildtavernchelsea](https://www.sevenrooms.com/explore/wildtavernchelsea/reservations/create/search?venues=fantomas%2Cwildtavernchelsea) | **Docs:** [parse.bot/marketplace/0a16af43-f11b-447b-b5ce-1b194ff211ba/sevenrooms-com-api](https://parse.bot/marketplace/0a16af43-f11b-447b-b5ce-1b194ff211ba/sevenrooms-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-sevenrooms-com-api-0a16af43/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### create_reservation

Complete a reservation after holding a slot. Requires a valid reservation_hold_id from hold_reservation, plus guest details. Must be called within 5 minutes of the hold. Email must be a valid address (not example.com domains). Includes reCAPTCHA validation.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `access_persistent_id` | string | Yes | Access persistent ID from search_availability |
| `date` | string | Yes | Date in YYYY-MM-DD format |
| `dial_code` | string | No | Phone dial code (e.g., '1' for US, '44' for UK) |
| `email` | string | Yes | Guest email address (must be a valid deliverable email, not example.com) |
| `first_name` | string | Yes | Guest first name |
| `last_name` | string | Yes | Guest last name |
| `notes` | string | No | Special requests or notes |
| `party_size` | integer | Yes | Number of guests |
| `phone_number` | string | Yes | Guest phone number (without country code) |
| `reservation_hold_id` | string | Yes | Hold ID from hold_reservation response |
| `shift_persistent_id` | string | Yes | Shift persistent ID from search_availability |
| `time` | string | Yes | Time in HH:MM format |
| `venue_id` | string | Yes | Venue ID from hold_reservation or get_venue_info |
| `venue_slug` | string | Yes | The venue's URL key/slug |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sevenrooms-com-api-0a16af43/create_reservation \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"access_persistent_id":"<string>","date":"<string>","dial_code":"<string>","email":"<string>","first_name":"<string>","last_name":"<string>","notes":"<string>","party_size":"<integer>","phone_number":"<string>","reservation_hold_id":"<string>","shift_persistent_id":"<string>","time":"<string>","venue_id":"<string>","venue_slug":"<string>"}'
```

### get_available_dates

Get a list of dates that have reservation availability for a venue. Returns up to the specified number of days of valid dates from the start date. Each date in the response has at least one bookable time slot.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `num_days` | integer | No | Number of days to check for availability (1-225) |
| `start_date` | string | No | Start date in YYYY-MM-DD format. Omitting defaults to today. |
| `venue_slug` | string | Yes | The venue's URL key/slug |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sevenrooms-com-api-0a16af43/get_available_dates \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"num_days":"<integer>","start_date":"<string>","venue_slug":"<string>"}'
```

### get_venue_info

Get venue details including name, address, timezone, currency, and linked venues for any SevenRooms restaurant. The venue_slug is the URL key found in the SevenRooms reservation URL path.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `venue_slug` | string | Yes | The venue's URL key/slug (e.g., 'wildtavernchelsea'). Found in the SevenRooms reservation URL. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sevenrooms-com-api-0a16af43/get_venue_info \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"venue_slug":"<string>"}'
```

### hold_reservation

Hold a reservation slot for 5 minutes before completing the booking. Use access_persistent_id and shift_persistent_id from search_availability results for the exact date and time slot returned. Returns a reservation_hold_id needed for create_reservation. The hold expires after 300 seconds.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `access_persistent_id` | string | Yes | Access persistent ID from search_availability time_slots[*].access_persistent_id |
| `date` | string | Yes | Date in YYYY-MM-DD format, must match a date from search_availability |
| `party_size` | integer | Yes | Number of guests |
| `shift_persistent_id` | string | Yes | Shift persistent ID from search_availability time_slots[*].shift_persistent_id |
| `time` | string | Yes | Time in HH:MM format (e.g., '20:00'), must match a time slot from search_availability |
| `venue_slug` | string | Yes | The venue's URL key/slug |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sevenrooms-com-api-0a16af43/hold_reservation \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"access_persistent_id":"<string>","date":"<string>","party_size":"<integer>","shift_persistent_id":"<string>","time":"<string>","venue_slug":"<string>"}'
```

### search_availability

Search for available reservation time slots at a venue. Returns shifts with bookable and requestable time slots, including duration, policies, and booking IDs needed for hold_reservation. Each time slot has a type of 'book' (instantly bookable) or 'request' (requires venue approval). Only 'book' type slots provide access_persistent_id and shift_persistent_id needed for holding.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | No | Date in YYYY-MM-DD format. Omitting defaults to today. |
| `num_days` | integer | No | Number of days to search (1-7 recommended) |
| `party_size` | integer | No | Number of guests (1-9) |
| `time_slot` | string | No | Preferred time in HH:MM format to center results around |
| `venue_slug` | string | Yes | The venue's URL key/slug |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-sevenrooms-com-api-0a16af43/search_availability \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>","num_days":"<integer>","party_size":"<integer>","time_slot":"<string>","venue_slug":"<string>"}'
```
