You are viewing a non-production environment — the API surface may differ from production.
Booking API

Bookings Settings

Location booking settings and configuration

GET
/api/v1/locations/{locationId}/booking-settings

Authorization

ApiKeyAuth
X-API-Key<token>

API key authentication. Format: karma_live_* or karma_dev_*

In: header

Path Parameters

locationId*number

Location ID

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/locations/0/booking-settings"
{  "status": "success",  "data": {    "id": 0,    "locationId": 0,    "bufferMinutes": 0,    "defaultDurationMinutes": 0,    "autoOptimizeEnabled": true,    "maxPartySize": 0,    "minAdvanceHours": 0,    "maxAdvanceDays": 0,    "allowedPartySizes": [      0    ],    "operatingHours": {},    "slotIntervalMinutes": 0,    "overbookingBufferPercentage": 0,    "confirmationMode": "instant",    "autoNoShowDelayMinutes": null,    "cancellationPolicyHours": null,    "bookingWindowDays": null,    "maxActiveBookingsPerGuest": null,    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  },  "meta": {    "requestId": "string",    "timestamp": "2019-08-24T14:15:22Z",    "executionTimeMs": 0  }}
PUT
/api/v1/locations/{locationId}/booking-settings

Authorization

ApiKeyAuth
X-API-Key<token>

API key authentication. Format: karma_live_* or karma_dev_*

In: header

Path Parameters

locationId*number

Location ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

bufferMinutes?number

Time buffer between bookings (minutes)

Range0 <= value <= 120
defaultDurationMinutes?number

Default booking duration (minutes)

Range15 <= value <= 480
autoOptimizeEnabled?boolean

Enable automatic table optimization

maxPartySize?number

Maximum party size allowed

Range1 <= value <= 100
minAdvanceHours?number

Minimum hours in advance

Range0 <= value <= 168
maxAdvanceDays?number

Maximum days in advance

Range1 <= value <= 365
allowedPartySizes?array<number>

Specific party sizes allowed

operatingHours?

Per-day booking hours override

slotIntervalMinutes?number

Time slot interval (minutes)

Value in

  • 15
  • 30
  • 45
  • 60
  • 90
overbookingBufferPercentage?number

Overbooking buffer percentage

Range0 <= value <= 50
confirmationMode?string

Booking confirmation mode

Value in

  • "instant"
  • "request_based"
autoNoShowDelayMinutes?|

Auto no-show delay (minutes)

Range5 <= value <= 120
cancellationPolicyHours?|

Cancellation policy (hours before)

Range0 <= value <= 168
bookingWindowDays?|

Booking window (days ahead)

Range1 <= value <= 365
maxActiveBookingsPerGuest?|

Max active bookings per guest

Range1 <= value <= 50

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/api/v1/locations/0/booking-settings" \  -H "Content-Type: application/json" \  -d '{}'
{  "status": "success",  "data": {    "id": 0,    "locationId": 0,    "bufferMinutes": 0,    "defaultDurationMinutes": 0,    "autoOptimizeEnabled": true,    "maxPartySize": 0,    "minAdvanceHours": 0,    "maxAdvanceDays": 0,    "allowedPartySizes": [      0    ],    "operatingHours": {},    "slotIntervalMinutes": 0,    "overbookingBufferPercentage": 0,    "confirmationMode": "instant",    "autoNoShowDelayMinutes": null,    "cancellationPolicyHours": null,    "bookingWindowDays": null,    "maxActiveBookingsPerGuest": null,    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  },  "meta": {    "requestId": "string",    "timestamp": "2019-08-24T14:15:22Z",    "executionTimeMs": 0  }}