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

# List available booking slots for a product

> Referencia detallada para GET /v1/products/{id}/slots.

## Uso

Usalo para administrar productos del tenant, ofertas, disponibilidad o inventario empresarial asociado al catalogo SimplePay.

## Antes de llamar

| Tema             | Detalle                                           |
| ---------------- | ------------------------------------------------- |
| Metodo           | `GET`                                             |
| Ruta             | `/v1/products/{id}/slots`                         |
| Auth             | Bearer API key del ambiente correcto.             |
| Scope            | `availability:read`                               |
| Idempotencia     | No aplica para lecturas.                          |
| Guia relacionada | [API Reference overview](/api-reference/overview) |

## Patron recomendado

* Ejecuta esta lectura desde backend cuando incluya datos privados del tenant.
* Consulta el bloque OpenAPI de esta pagina para el shape exacto de parametros, body y respuestas.

## Ejemplo minimo

```bash terminal theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -sS "https://api.simplepay.mx/v1/products/id_123/slots" \
  -H "Authorization: Bearer $SIMPLEPAY_API_KEY"
```

## Errores a manejar

* `400` indica payload, parametros o estado invalido.
* `401` o `403` indican API key, ambiente o scopes incorrectos.
* `404` significa que el recurso no existe para ese tenant o ambiente.
* `429` y `5xx` se pueden reintentar con backoff; en writes conserva la misma idempotency key.

## Contrato OpenAPI

El playground, parametros, body y respuestas de abajo salen de `/openapi.json`. Si el contrato cambia, actualiza la spec y regenera esta pagina.


## OpenAPI

````yaml openapi.json GET /v1/products/{id}/slots
openapi: 3.1.0
info:
  title: SimplePay API
  version: '2026-06-13'
servers:
  - url: https://api.simplepay.mx
security:
  - SimplePayApiKey: []
paths:
  /v1/products/{id}/slots:
    get:
      summary: List available booking slots for a product
      operationId: listProductSlots
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: start
          in: query
          required: true
          schema:
            type: string
            format: date-time
        - name: end
          in: query
          required: true
          schema:
            type: string
            format: date-time
        - name: time_zone
          in: query
          required: false
          schema:
            type: string
        - name: quantity
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
        - name: duration_minutes
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
        - name: view
          in: query
          required: false
          schema:
            enum:
              - bookable
        - name: group_by
          in: query
          required: false
          schema:
            enum:
              - date
      responses:
        '200':
          description: Available booking slots
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/AvailabilitySlotListResponse'
                  - $ref: '#/components/schemas/BookableSlotListResponse'
                  - $ref: '#/components/schemas/BookableSlotMapResponse'
components:
  schemas:
    AvailabilitySlotListResponse:
      type: object
      required:
        - data
        - object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AvailabilitySlot'
        object:
          const: list
    BookableSlotListResponse:
      type: object
      required:
        - data
        - object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BookableSlot'
        object:
          const: list
    BookableSlotMapResponse:
      type: object
      required:
        - data
        - object
      properties:
        data:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/BookableSlot'
        object:
          const: map
    AvailabilitySlot:
      type: object
      required:
        - available
        - ends_at
        - resource_id
        - starts_at
      properties:
        available:
          type: integer
          minimum: 0
        ends_at:
          type: string
          format: date-time
        resource_id:
          type: string
        starts_at:
          type: string
          format: date-time
    BookableSlot:
      type: object
      required:
        - available
        - date
        - endsAt
        - metadata
        - resourceId
        - startsAt
        - status
        - timeZone
      properties:
        available:
          type: integer
          minimum: 0
        date:
          type: string
          format: date
        durationMinutes:
          type: integer
          minimum: 1
        endsAt:
          type: string
          format: date-time
        metadata:
          type: object
          additionalProperties: true
        resourceId:
          type: string
        startsAt:
          type: string
          format: date-time
        status:
          enum:
            - available
            - blocked
            - booked
            - held
        timeZone:
          type: string
  securitySchemes:
    SimplePayApiKey:
      type: http
      scheme: bearer

````