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

# List open times for a booking service

> **Beta** — this endpoint may change before general availability.



## OpenAPI

````yaml /api-reference/openapi.json get /booking-slots
openapi: 3.1.0
info:
  title: Replo Public API
  version: '2026-11-10'
servers:
  - url: https://api.replo.app/v1
security: []
paths:
  /booking-slots:
    get:
      tags:
        - Booking-slots
      summary: List open times for a booking service
      description: '**Beta** — this endpoint may change before general availability.'
      operationId: booking-slots.list
      parameters:
        - name: Replo-Api-Version
          in: header
          required: true
          schema:
            type: string
            enum:
              - '2026-11-10'
          description: The public API version to use for this request.
        - schema:
            type: string
            format: uuid
            description: The project that owns the forms, from list_projects
          required: true
          description: The project that owns the forms, from list_projects
          name: projectId
          in: query
        - schema:
            type: string
            format: uuid
            description: The service's id, from replo_booking_services_list
          required: true
          description: The service's id, from replo_booking_services_list
          name: serviceId
          in: query
        - schema:
            type: string
            format: date-time
            description: Start of the window to search
          required: true
          description: Start of the window to search
          name: from
          in: query
        - schema:
            type: string
            format: date-time
            description: End of the window to search; at most 62 days after from
          required: true
          description: End of the window to search; at most 62 days after from
          name: to
          in: query
        - schema:
            type: string
            format: uuid
            description: Only this staff member's times; anyone's if left out
          required: false
          description: Only this staff member's times; anyone's if left out
          name: staffId
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
            description: People in the party; 1 if left out
          required: false
          description: People in the party; 1 if left out
          name: seats
          in: query
        - schema:
            anyOf:
              - type: string
                pattern: ^[a-z0-9][a-z0-9-]{0,63}$
              - type: array
                items:
                  type: string
                  pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                maxItems: 20
            description: >-
              Add-ons the visitor wants; they make each booking longer, so fewer
              times fit
          required: false
          description: >-
            Add-ons the visitor wants; they make each booking longer, so fewer
            times fit
          name: addOnKeys
          in: query
      responses:
        '200':
          description: List open times for a booking service
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                      - booking_slots
                  serviceId:
                    type: string
                    format: uuid
                  timeZone:
                    type: string
                    description: The time zone the opening hours are set in
                  slots:
                    type: array
                    items:
                      type: object
                      properties:
                        startsAt:
                          type: string
                        endsAt:
                          type: string
                        staffId:
                          type: string
                          format: uuid
                        seatsLeft:
                          type: integer
                      required:
                        - startsAt
                        - endsAt
                        - staffId
                        - seatsLeft
                required:
                  - object
                  - serviceId
                  - timeZone
                  - slots
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '401':
          description: >-
            Missing or invalid Replo Public API token. Send an active key as
            `Authorization: Bearer replo_sk_...`; if it was revoked, create a
            new key in Replo Settings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '403':
          description: >-
            You are not authorized to access this resource. Ask a workspace
            owner to perform this action or to grant the key's creator access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '404':
          description: >-
            Not Found. The resource may not exist, this key may lack the
            required scope, or the key's creator may have lost access. Check the
            key's scopes in Replo Settings and the creator's project or
            workspace access; a workspace owner can grant access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '409':
          description: The resource is in a conflicting state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '413':
          description: File content exceeds the 10 MiB limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '429':
          description: >-
            Too many requests. Please retry after the time indicated by the
            Retry-After header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '500':
          description: An internal error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '503':
          description: Service temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    PublicApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            doc_url:
              type: string
            issues:
              type: array
              items:
                type: object
                properties:
                  param:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Dotted path to the failing field within the request body,
                      query or path, e.g. "name" or "variants.0.available"; null
                      when the rule covers the whole input.
                  message:
                    type: string
                    description: Why the field was rejected.
                required:
                  - param
                  - message
              description: >-
                Present on an invalid_request whose input failed validation:
                each failing field and why, at most 10.
          required:
            - code
            - message
            - doc_url
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.