> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brightplace.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# book_tour

> Submit a tour request for a listing and slot.

`book_tour` submits a tour request for a renter and slot returned by
`get_tour_availability`.

## Input

```json theme={null}
{
  "listing_id": "listing-record-id",
  "slot_id": "slot-id-from-availability",
  "renter": {
    "name": "Ada Lovelace",
    "email": "ada@example.com",
    "phone": "5555550100"
  },
  "notes": "Prefers mornings."
}
```

| Field          | Type   | Required | Notes                                                |
| -------------- | ------ | -------- | ---------------------------------------------------- |
| `listing_id`   | string | Yes      | A listing snapshot id returned by `search_listings`. |
| `slot_id`      | string | Yes      | A slot id returned by `get_tour_availability`.       |
| `renter.name`  | string | Yes      | Renter name.                                         |
| `renter.email` | string | Yes      | Renter email.                                        |
| `renter.phone` | string | No       | Renter phone.                                        |
| `notes`        | string | No       | Optional note to include with the request.           |

## Output

```json theme={null}
{
  "booking_id": "book_01HZY...",
  "status": "submitted",
  "next_step_message": "Confirmation email will follow.",
  "listing_id": "listing-record-id",
  "starts_at": "2026-07-02T10:00:00Z",
  "ends_at": "2026-07-02T10:30:00Z"
}
```

## Limits and errors

If the slot is taken, expired, or otherwise unavailable, the tool returns
`SLOT_NOT_AVAILABLE`.

brightplace also limits active tour requests to 2 per renter email in a rolling
24-hour window. Additional active requests return `BOOKING_LIMIT_REACHED`.

Because `book_tour` submits renter contact information, clients should ask users
to review the request before calling the tool.
