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

# Get booking configuration

> Reads the native booking configuration from the effective catalog. Requires bookings:read and a location grant. Returns 404 when no configuration has been authored.



## OpenAPI

````yaml /openapi/developer-api.json get /locations/{locationId}/booking_configuration
openapi: 3.1.0
info:
  title: Maple Developer API
  version: 0.0.1
  description: >-
    Public API for POS and platform partners to integrate with Maple: granted
    locations and connections, the order loop (validation, notification,
    accept/deny, status updates), payment-link visibility, menu publishing, and
    HMAC-signed webhooks. Authenticate every request with a Bearer API key
    (`mpk_test_…` / `mpk_live_…`). The credential determines the environment:
    test-mode credentials only see test data, live-mode credentials only see
    live data.
servers:
  - url: https://api.maple.inc/v1
    description: Production
  - url: https://api.staging.maple.inc/v1
    description: Sandbox (development and testing)
security: []
tags:
  - name: General
    description: Service status and credential introspection.
  - name: Locations
    description: The restaurant locations your app has been granted access to.
  - name: Connections
    description: Become (or stop being) a granted location’s order receiver.
  - name: Menu
    description: Publish and read a connected location’s menu.
  - name: Delivery zones
    description: >-
      Manage a connected location’s delivery zones and check whether a
      coordinate is deliverable.
  - name: Orders
    description: 'The order loop: read orders, submit validation results, and decide orders.'
  - name: Bookings
    description: >-
      Bookings (rolling out per location): a location’s booking profile,
      availability, holds, bookings, venue verbs, configuration, and live floor.
  - name: Webhooks
    description: Event-type catalog, subscriptions, the event ledger, and replay.
paths:
  /locations/{locationId}/booking_configuration:
    get:
      tags:
        - Bookings
      summary: Get booking configuration
      description: >-
        Reads the native booking configuration from the effective catalog.
        Requires bookings:read and a location grant. Returns 404 when no
        configuration has been authored.
      operationId: developer-api-bookings.getBookingConfiguration
      parameters:
        - name: locationId
          in: path
          schema:
            type: string
          required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  timeZone:
                    type: string
                  currency:
                    type: string
                    allOf:
                      - pattern: ^[A-Z]{3}$
                  areas:
                    type: array
                    items:
                      type: object
                      properties:
                        poolId:
                          type: string
                          allOf:
                            - minLength: 1
                        name:
                          type: string
                          allOf:
                            - minLength: 1
                        kind:
                          anyOf:
                            - type: string
                              enum:
                                - seat
                                - room
                                - generic
                            - type: 'null'
                        units:
                          type: array
                          items:
                            type: object
                            properties:
                              unitId:
                                type: string
                                allOf:
                                  - minLength: 1
                              label:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                              seats:
                                type: object
                                properties:
                                  min:
                                    anyOf:
                                      - type: integer
                                        allOf:
                                          - minimum: 1
                                      - type: 'null'
                                  max:
                                    anyOf:
                                      - type: integer
                                        allOf:
                                          - minimum: 1
                                      - type: 'null'
                                additionalProperties: false
                              tags:
                                anyOf:
                                  - type: array
                                    items:
                                      type: string
                                  - type: 'null'
                            required:
                              - unitId
                              - seats
                            additionalProperties: false
                          allOf:
                            - minItems: 1
                        combinations:
                          anyOf:
                            - type: array
                              items:
                                type: object
                                properties:
                                  unitIds:
                                    type: array
                                    items:
                                      type: string
                                      allOf:
                                        - minLength: 1
                                    allOf:
                                      - minItems: 2
                                  seats:
                                    type: object
                                    properties:
                                      min:
                                        anyOf:
                                          - type: integer
                                            allOf:
                                              - minimum: 1
                                          - type: 'null'
                                      max:
                                        anyOf:
                                          - type: integer
                                            allOf:
                                              - minimum: 1
                                          - type: 'null'
                                    additionalProperties: false
                                required:
                                  - unitIds
                                  - seats
                                additionalProperties: false
                            - type: 'null'
                      required:
                        - poolId
                        - name
                        - units
                      additionalProperties: false
                    allOf:
                      - minItems: 1
                  turnBands:
                    type: array
                    items:
                      type: object
                      properties:
                        minGuests:
                          anyOf:
                            - type: integer
                              allOf:
                                - minimum: 1
                            - type: 'null'
                        maxGuests:
                          anyOf:
                            - type: integer
                              allOf:
                                - minimum: 1
                            - type: 'null'
                        minutes:
                          type: integer
                          allOf:
                            - minimum: 1
                      required:
                        - minutes
                      additionalProperties: false
                    allOf:
                      - minItems: 1
                  shifts:
                    type: array
                    items:
                      type: object
                      properties:
                        day:
                          type: string
                          enum:
                            - MON
                            - TUE
                            - WED
                            - THU
                            - FRI
                            - SAT
                            - SUN
                        start:
                          type: string
                          allOf:
                            - pattern: ^(?:[01]\d|2[0-3]):[0-5]\d$
                        end:
                          type: string
                          allOf:
                            - pattern: ^(?:(?:[01]\d|2[0-3]):[0-5]\d|24:00)$
                      required:
                        - day
                        - start
                        - end
                      additionalProperties: false
                    allOf:
                      - minItems: 1
                  pacing:
                    anyOf:
                      - type: object
                        properties:
                          intervalMinutes:
                            type: integer
                            allOf:
                              - minimum: 1
                          maxCovers:
                            type: integer
                            allOf:
                              - minimum: 1
                          enforcement:
                            type: string
                            enum:
                              - hard
                              - soft
                        required:
                          - intervalMinutes
                          - maxCovers
                          - enforcement
                        additionalProperties: false
                      - type: 'null'
                  bookingPolicy:
                    anyOf:
                      - type: object
                        properties:
                          minLeadMinutes:
                            anyOf:
                              - type: integer
                                allOf:
                                  - minimum: 0
                              - type: 'null'
                          maxHorizonDays:
                            anyOf:
                              - type: integer
                                allOf:
                                  - minimum: 1
                              - type: 'null'
                          slotAlignment:
                            anyOf:
                              - type: string
                                enum:
                                  - service_duration
                                  - quarter_hourly
                                  - half_hourly
                                  - hourly
                              - type: 'null'
                          autoConfirm:
                            anyOf:
                              - type: boolean
                              - type: 'null'
                        additionalProperties: false
                      - type: 'null'
                  cancellationPolicy:
                    anyOf:
                      - type: object
                        properties:
                          requiresCardOnFile:
                            type: boolean
                          tiers:
                            type: array
                            items:
                              type: object
                              properties:
                                withinHoursBeforeStart:
                                  type: integer
                                  allOf:
                                    - minimum: 0
                                basis:
                                  type: string
                                  enum:
                                    - flat
                                    - percent_of_subtotal
                                    - full
                                flatAmountMinor:
                                  anyOf:
                                    - type: integer
                                      allOf:
                                        - minimum: 0
                                    - type: 'null'
                                percentBps:
                                  anyOf:
                                    - type: integer
                                      allOf:
                                        - minimum: 0
                                          maximum: 10000
                                    - type: 'null'
                              required:
                                - withinHoursBeforeStart
                                - basis
                              additionalProperties: false
                          rescheduleCutoffHours:
                            anyOf:
                              - anyOf:
                                  - anyOf:
                                      - type: number
                                      - type: string
                                        enum:
                                          - NaN
                                      - type: string
                                        enum:
                                          - Infinity
                                      - type: string
                                        enum:
                                          - '-Infinity'
                                  - type: string
                                    enum:
                                      - Infinity
                                      - '-Infinity'
                                      - NaN
                              - type: 'null'
                          policyText:
                            anyOf:
                              - type: string
                              - type: 'null'
                        required:
                          - requiresCardOnFile
                          - tiers
                        additionalProperties: false
                      - type: 'null'
                  closedDates:
                    anyOf:
                      - type: array
                        items:
                          type: string
                      - type: 'null'
                  object:
                    type: string
                    enum:
                      - booking_configuration
                  location_id:
                    type: string
                  version_id:
                    type: string
                  published_at:
                    type: string
                  livemode:
                    type: boolean
                required:
                  - timeZone
                  - currency
                  - areas
                  - turnBands
                  - shifts
                  - object
                  - location_id
                  - version_id
                  - published_at
                  - livemode
                additionalProperties: false
        '401':
          description: DeveloperApiUnauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperApiUnauthorized'
        '403':
          description: DeveloperApiForbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperApiForbidden'
        '404':
          description: DeveloperApiNotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperApiNotFound'
        '422':
          description: DeveloperApiUnprocessable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperApiUnprocessable'
        '429':
          description: DeveloperApiRateLimited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeveloperApiRateLimited'
          headers:
            Retry-After:
              description: >-
                Seconds to wait before retrying; also returned as retry_after in
                the body.
              schema:
                type: integer
                minimum: 1
      security:
        - bearer: []
components:
  schemas:
    DeveloperApiUnauthorized:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - DeveloperApiUnauthorized
        message:
          type: string
      required:
        - _tag
        - message
      additionalProperties: false
    DeveloperApiForbidden:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - DeveloperApiForbidden
        code:
          type: string
          enum:
            - insufficient_scope
            - wrong_environment
        message:
          type: string
      required:
        - _tag
        - code
        - message
      additionalProperties: false
    DeveloperApiNotFound:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - DeveloperApiNotFound
        message:
          type: string
      required:
        - _tag
        - message
      additionalProperties: false
    DeveloperApiUnprocessable:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - DeveloperApiUnprocessable
        code:
          type: string
        message:
          type: string
        details:
          type: object
      required:
        - _tag
        - code
        - message
      additionalProperties: false
    DeveloperApiRateLimited:
      type: object
      properties:
        _tag:
          type: string
          enum:
            - DeveloperApiRateLimited
        message:
          type: string
        retry_after:
          anyOf:
            - type: number
            - type: string
              enum:
                - NaN
            - type: string
              enum:
                - Infinity
            - type: string
              enum:
                - '-Infinity'
      required:
        - _tag
        - message
        - retry_after
      additionalProperties: false
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        API key — `mpk_test_…` for the sandbox, `mpk_live_…` for production.
        Issued by Maple during partner onboarding.

````