Reference
Bookings
Read bookings across your restaurants and create them server-to-server. Creation is capacity-checked, so the API can never overbook a slot.
GET
/api/v1/bookingsPaginated list of bookings across your restaurants, newest first.
Query: restaurantId, status, from (ISO date), to (ISO date), limit (≤100), cursor
200 OK
{
"data": [
{
"id": "clxa1...",
"restaurantId": "clw...",
"date": "2026-01-15T00:00:00.000Z",
"time": "19:30",
"partySize": 4,
"status": "CONFIRMED",
"notes": "Window table if possible",
"source": null,
"createdAt": "2025-12-01T10:42:33.000Z",
"diner": { "name": "Jane Doe", "email": "jane@example.com", "phone": null }
}
],
"nextCursor": "clxa0..."
}POST
/api/v1/bookingsCreate a guest booking on a restaurant your key owns. Returns 201 with the confirmCode and fires booking.created on subscribed webhooks.
cURL
curl -X POST https://www.openalacarte.com/api/v1/bookings \
-H "Authorization: Bearer oac_live_<your-key>" \
-H "Content-Type: application/json" \
-d '{
"restaurantId": "clw...",
"date": "2026-01-15",
"time": "19:30",
"partySize": 4,
"guestName": "Jane Doe",
"guestEmail": "jane@example.com",
"guestPhone": "+44 7700 900000",
"notes": "Allergic to peanuts"
}'Required: restaurantId, date (YYYY-MM-DD), time (HH:MM), partySize (1–50), guestName, guestEmail.
Capacity-checked server-side under a lock: if the slot is full you get 409 — the booking is never double-allocated, even under concurrent requests.