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

# Get booking floor

> Reads the live native floor, including current parties, holds, and the next claim within 24 hours.

GET`https://api.maple.inc/v1/locations/{locationId}/booking_floor`API key

Reads the live native floor, including current parties, holds, and the next claim within 24 hours. Requires bookings:read. Guest contact is limited to names and the last four phone digits. Read on demand or poll no more often than every 15 seconds; booking webhooks signal changes.

## Authorization

Send your API key as `Authorization: Bearer <key>`: `mpk_test_…` against the sandbox (`https://api.staging.maple.inc/v1`), `mpk_live_…` against production. See [Authentication](https://docs.maple.inc/developer-api/concepts/authentication.md). The samples read the key from `MAPLE_KEY` and the base URL from `MAPLE_BASE`, as set up in the [Quickstart](https://docs.maple.inc/developer-api/quickstart.md).

## Parameters

- `locationId` string path required

## Responses

### 200 OK

- `object` string required

  Always `booking_floor`.

- `location_id` string required

- `livemode` boolean required

- `as_of` string required

- `time_zone` string required

- `tables` object\[] required

- `tables[].unit_id` string required

- `tables[].area_id` string required

- `tables[].area_name` string required

- `tables[].seats` object required

- `tables[].seats.min` integer or null required

- `tables[].seats.max` integer or null required

- `tables[].listed` boolean required

- `tables[].state` string required

  One of `free`, `seated`, `reserved`, `held`, `maintenance`.

- `tables[].current` object or null required

- `tables[].current.kind` string required

  One of `booking`, `hold`.

- `tables[].current.booking_id` string or null required

- `tables[].current.party_size` integer required

- `tables[].current.started_at` string required

- `tables[].current.ends_at` string or null required

- `tables[].current.guest` object or null required

- `tables[].current.guest.first_name` string or null required

- `tables[].current.guest.last_name` string or null required

- `tables[].current.guest.phone_last_four` string or null required

- `tables[].next` object or null required

- `tables[].next.booking_id` string or null required

- `tables[].next.starts_at` string required

- `tables[].next.party_size` integer required

- `areas` object\[] required

- `areas[].area_id` string required

- `areas[].name` string required

- `areas[].capacity` integer or null required

- `areas[].seats_in_use` integer required

- `summary` object required

- `summary.tables_total` integer required

- `summary.tables_busy` integer required

- `summary.tables_out_of_service` integer required

- `summary.off_plan_parties` integer required

### Errors

- `400` Bad request DeveloperApiBadRequest

- `401` Unauthorized DeveloperApiUnauthorized

- `403` Forbidden DeveloperApiForbidden

- `404` Not found DeveloperApiNotFound

- `422` Unprocessable DeveloperApiUnprocessable

- `429` Too many requests DeveloperApiRateLimited

Every error body names the error in `_tag`, explains it in `message`, and says where to report it in `feedback`. See [Errors](https://docs.maple.inc/developer-api/concepts/errors.md).

A `429` also sends `Retry-After`: Seconds to wait before retrying; also returned as retry\_after in the body.

Get booking floor

```sh
curl "$MAPLE_BASE/locations/str_123/booking_floor" \
  -H "Authorization: Bearer $MAPLE_KEY"
```

```python
import os
import requests


r = requests.get(
    f"{os.environ['MAPLE_BASE']}/locations/str_123/booking_floor",
    headers={"Authorization": f"Bearer {os.environ['MAPLE_KEY']}"},
    timeout=30,
)
r.raise_for_status()
print(r.json())
```

```js
const res = await fetch(`${process.env.MAPLE_BASE}/locations/str_123/booking_floor`, {
  headers: {
    Authorization: `Bearer ${process.env.MAPLE_KEY}`,
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
```

```json
{
  "object": "booking_floor",
  "location_id": "str_123",
  "livemode": true,
  "as_of": "string",
  "time_zone": "string",
  "tables": [
    {
      "unit_id": "string",
      "area_id": "string",
      "area_name": "string",
      "seats": {
        "min": 1,
        "max": 1
      },
      "listed": true,
      "state": "free",
      "current": {
        "kind": "booking",
        "booking_id": "bkg_123",
        "party_size": 1,
        "started_at": "string",
        "ends_at": "string",
        "guest": {
          "first_name": "Ada",
          "last_name": "Lovelace",
          "phone_last_four": "string"
        }
      },
      "next": {
        "booking_id": "bkg_123",
        "starts_at": "string",
        "party_size": 1
      }
    }
  ],
  "areas": [
    {
      "area_id": "string",
      "name": "string",
      "capacity": 1,
      "seats_in_use": 1
    }
  ],
  "summary": {
    "tables_total": 1,
    "tables_busy": 1,
    "tables_out_of_service": 1,
    "off_plan_parties": 1
  }
}
```

```json
{
  "_tag": "DeveloperApiBadRequest",
  "code": "string",
  "message": "string",
  "feedback": "string"
}
```
