Skip to main content

Tables

Authenticated API

Table management endpoints require a valid JWT Bearer token with staff roles. Accessible via the API gateway at /v1/commerce/tables/*.

List Tables

GET /v1/commerce/tables

curl https://dev.api.olympuscloud.ai/v1/commerce/tables \
-H "Authorization: Bearer $TOKEN"

Response

[
{
"id": "t1-uuid",
"tenant_id": "550e8400-e29b-41d4-a716-446655449100",
"location_id": "550e8400-e29b-41d4-a716-446655449110",
"table_number": "1",
"section": "Main Dining",
"capacity": 4,
"status": "available",
"x": 100,
"y": 200,
"width": 80,
"height": 80,
"rotation": 0.0,
"shape": "rect",
"server_id": null,
"current_order_id": null,
"created_at": "2026-02-19T10:00:00Z",
"updated_at": "2026-02-19T10:00:00Z"
}
]

Create Table

POST /v1/commerce/tables

FieldTypeRequiredDescription
location_idstring (UUID)YesLocation UUID
table_numberstringYesTable identifier (e.g., "1", "A1", "Patio-2")
capacityintegerYesMaximum seating capacity
sectionstringNoSection name (e.g., "Main Dining", "Patio")
shapestringYes"rect" or "circle"
xintegerYesX position on floor plan
yintegerYesY position on floor plan
widthintegerYesWidth on floor plan
heightintegerYesHeight on floor plan
rotationnumberNoRotation angle in degrees (default: 0)
curl -X POST https://dev.api.olympuscloud.ai/v1/commerce/tables \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"location_id": "550e8400-e29b-41d4-a716-446655449110",
"table_number": "15",
"section": "Patio",
"capacity": 6,
"shape": "rect",
"x": 300, "y": 400, "width": 100, "height": 60
}'

Update Table Status

PUT /v1/commerce/tables/:table_id/status

FieldTypeRequiredDescription
statusstringYes"available", "occupied", "reserved", "cleaning", "maintenance"
server_idstring (UUID)NoAssign a server to the table
current_order_idstring (UUID)NoLink active order
curl -X PUT https://dev.api.olympuscloud.ai/v1/commerce/tables/TABLE_ID/status \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"status": "occupied", "server_id": "550e8400-e29b-41d4-a716-446655449122"}'

Seat a Party

POST /v1/commerce/tables/:table_id/seat

Seat a walk-in or waitlist party at a table.

FieldTypeRequiredDescription
guest_countintegerYesNumber of guests
waitlist_entry_idstring (UUID)NoLink to waitlist entry (if from waitlist)
curl -X POST https://dev.api.olympuscloud.ai/v1/commerce/tables/TABLE_ID/seat \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"guest_count": 4}'

Assign Table to Server

PUT /v1/commerce/tables/:table_id/assign

curl -X PUT https://dev.api.olympuscloud.ai/v1/commerce/tables/TABLE_ID/assign \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"server_id": "550e8400-e29b-41d4-a716-446655449122"}'

Table Status Values

StatusDescription
availableOpen for seating
occupiedGuests are seated
reservedHeld for a reservation
cleaningBeing cleaned after service
maintenanceOut of service