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

# Tables

> API endpoints for floor plan table management.

All table endpoints require [authentication](/api-reference/authentication).

## Bootstrap

Table and floor plan data is included in the bootstrap payload. The bootstrap endpoint returns:

* Floor plan layouts
* Table positions and capacities
* Current table states (occupied, available)

<Card>
  **POST** `/pos-api/v1/bootstrap`
</Card>

The bootstrap response includes `floor_plan` data nested within the POS configuration.

## Floor plan editing

Save table layout changes (create, update, delete) and optionally persist a layout mode on the floor.

<Card>
  **POST** `/pos-api/v1/floor-plan/save`
</Card>

```json title="Request body" theme={null}
{
  "floor_id": 1,
  "operations": [
    { "op": "create", "data": { "name": "1", "seats": 4, "shape": "square", ... } },
    { "op": "update", "id": 5, "data": { "position_h": 120, "position_v": 200 } },
    { "op": "delete", "id": 8 }
  ],
  "layout_mode": "grid"
}
```

The `layout_mode` field is optional. When provided, it updates the `nu_layout_mode` on the `restaurant.floor` record. Valid values: `free`, `grid`, `perimeter_center`.

## Table locking

Table locks are managed through the [sync hub](/guides/sync-hub) via WebSocket, not through HTTP API calls. See the sync hub documentation for the table lock protocol.
