---
title: "Get Available Slots"
method: GET
path: "/api/availability"
tags: ["availability"]
---

# Get Available Slots

`GET /api/availability`

Get available slots for appointments. **Requires authentication.**

- CALL_CONOSCITIVA / CALL_GRATUITA: Returns all operators with role ``customer_care``
- INCONTRO_PSICOLOGO: Returns only assigned psychologist slots
- INCONTRO_NUTRIZIONISTA: Returns only assigned nutritionist slots

Location types:
- online: Default, returns online slots (clinic_location_id is ignored)
- in_person: Returns in-person slots (clinic_location_id is required)

## Query parameters

- `appointment_type` 'CALL_CONOSCITIVA' | 'CALL_GRATUITA' | 'CALL_SUPPORTO' | 'CALL_EXTRA' | 'INCONTRO_PSICOLOGO' | 'INCONTRO_NUTRIZIONISTA' | 'INCONTRO_CONGIUNTO', required — Appointment type constants.
- `limit` integer — Maximum number of slots to return
- `location_type` string — Location type: 'online' or 'in_person'
- `clinic_location_id` string, uuid, nullable — Clinic location ID (required for in_person)
- `include_booked` boolean — If true (only for CALL_CONOSCITIVA / CALL_GRATUITA), include already-booked slots with is_booked=true.

## Response `200`

Successful Response

- AvailabilitySlotResponse[]
  - `id` string, required — Availability slot UUID
  - `slot_datetime` string, date-time, required — Slot date and time
  - `duration_minutes` integer, required — Duration in minutes
  - `location_type` string, required — Location type: 'online' or 'in_person'
  - `clinic_location_id` string, nullable — Clinic location UUID (null for online appointments)
  - `clinic_location` ClinicLocationResponse — Clinic location response model.
    - `id` string, required — Clinic location UUID
    - `name` string, required — Clinic location name
    - `address` string, nullable — Clinic location address
    - `city_id` integer, nullable — City ID
    - `city` CityInfo — City information model.
      - `id` integer, required — City ID
      - `name` string, required — City name
      - `province_code` string, nullable — Province code
    - `is_active` boolean, required — Whether the clinic location is active
  - `room_id` string, nullable — Room UUID (null for online appointments)
  - `room` ModelsSchemasAppointmentModelsRoomResponse — Room response model.
    - `id` string, required — Room UUID
    - `clinic_location_id` string, required — Clinic location UUID
    - `name` string, required — Room name
    - `description` string, nullable — Room description
    - `room_type` 'STANDARD' | 'NUTRITION' — Room type constants.
    - `capacity` integer — Room capacity
    - `is_active` boolean, required — Whether the room is active
  - `operator_id` string, nullable — Operator UUID (null for CALL_CONOSCITIVA, assigned on booking)
  - `operator_first_name` string, nullable — Operator first name (null for CALL_CONOSCITIVA)
  - `operator_last_name` string, nullable — Operator last name (null for CALL_CONOSCITIVA)
  - `operator_profession` string, nullable — Operator profession (PSICOLOGO/NUTRIZIONISTA, null for CALL_CONOSCITIVA)
  - `is_pending_reservation` boolean — True if this slot has a pending reservation by the current user
  - `pending_payment_id` string, nullable — Payment ID if this slot has a pending reservation
  - `is_booked` boolean — True if this slot is shown as already booked (real booking or scarcity placeholder). Only returned when include_booked=true.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/corabea/apis/corabea-api.md) · [All operations](https://skmtc.dev/corabea/apis/corabea-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/corabea/corabea-api/revisions/13c1bce1bdc4/schema)
