# Bookings - Settings

Location booking settings and configuration

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

Get location booking settings

Get booking settings for a location. Creates default settings if none exist.

**Permissions:** 🔵 `bookings.read`

Path parameters:
- `locationId` (number, required) — Location ID

Response 200 — Default Response

```ts
{
  status: "success"
  data: {
    id: number
    locationId: number
    bufferMinutes: number
    defaultDurationMinutes: number
    autoOptimizeEnabled: boolean
    maxPartySize?: number
    minAdvanceHours?: number
    maxAdvanceDays?: number
    allowedPartySizes?: number[]
    operatingHours?: Record<string, unknown>
    slotIntervalMinutes?: number
    overbookingBufferPercentage?: number
    confirmationMode: "instant" | "request_based"
    autoNoShowDelayMinutes?: number | null
    cancellationPolicyHours?: number | null
    bookingWindowDays?: number | null
    maxActiveBookingsPerGuest?: number | null
    createdAt: string // date-time
    updatedAt: string // date-time
  }
  meta: {
    requestId: string
    timestamp: string // date-time
    executionTimeMs: number
  }
}
```

## PUT /api/v1/locations/{locationId}/booking-settings

Update location booking settings

Update booking settings for a location.

**Permissions:** ⚪ `bookings.manage`

Path parameters:
- `locationId` (number, required) — Location ID

Request body:

```ts
{
  bufferMinutes?: number
  defaultDurationMinutes?: number
  autoOptimizeEnabled?: boolean
  maxPartySize?: number
  minAdvanceHours?: number
  maxAdvanceDays?: number
  allowedPartySizes?: number[]
  operatingHours?: Record<string, unknown>
  slotIntervalMinutes?: 15 | 30 | 45 | 60 | 90
  overbookingBufferPercentage?: number
  confirmationMode?: "instant" | "request_based"
  autoNoShowDelayMinutes?: number | null
  cancellationPolicyHours?: number | null
  bookingWindowDays?: number | null
  maxActiveBookingsPerGuest?: number | null
}
```

Response 200 — Default Response

```ts
{
  status: "success"
  data: {
    id: number
    locationId: number
    bufferMinutes: number
    defaultDurationMinutes: number
    autoOptimizeEnabled: boolean
    maxPartySize?: number
    minAdvanceHours?: number
    maxAdvanceDays?: number
    allowedPartySizes?: number[]
    operatingHours?: Record<string, unknown>
    slotIntervalMinutes?: number
    overbookingBufferPercentage?: number
    confirmationMode: "instant" | "request_based"
    autoNoShowDelayMinutes?: number | null
    cancellationPolicyHours?: number | null
    bookingWindowDays?: number | null
    maxActiveBookingsPerGuest?: number | null
    createdAt: string // date-time
    updatedAt: string // date-time
  }
  meta: {
    requestId: string
    timestamp: string // date-time
    executionTimeMs: number
  }
}
```
