Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FlasheyEstudi/Oasis-Liquido/llms.txt

Use this file to discover all available pages before exploring further.

The Appointments API lets patients book consultations with doctors, and lets clinic staff manage the lifecycle of those consultations. Listing results are automatically filtered by the authenticated user’s role — patients see only their own appointments, doctors see only theirs, and admins see all.

GET /api/v1/appointments

Return a paginated list of appointments. Results are filtered server-side based on the caller’s role. Additional filters can be applied via query parameters.

Query parameters

patient_id
string
Filter by patient UUID.
doctor_id
string
Filter by doctor UUID.
clinic_id
string
Filter by clinic UUID.
status
string
Filter by appointment status. One of: scheduled, confirmed, in_progress, completed, cancelled.
date_from
string
ISO 8601 lower bound for date_time (inclusive).
date_to
string
ISO 8601 upper bound for date_time (inclusive).
page
number
default:"1"
Page number for pagination.
limit
number
default:"20"
Number of results per page.

curl example

curl "http://localhost:8000/api/v1/appointments?status=scheduled&page=1&limit=20" \
  --header "Authorization: Bearer <access_token>"

POST /api/v1/appointments

Create a new appointment. Only users with the patient role can call this endpoint.

Request body

doctor_id
string
required
UUID of the doctor to book with.
clinic_id
string
required
UUID of the clinic where the appointment takes place.
date_time
string
required
ISO 8601 datetime for the appointment start, e.g. 2026-06-15T10:00:00Z.
duration_minutes
number
default:"30"
Duration of the appointment in minutes.

curl example

curl --request POST http://localhost:8000/api/v1/appointments \
  --header "Authorization: Bearer <access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "doctor_id": "dr-uuid-001",
    "clinic_id": "clinic-uuid-001",
    "date_time": "2026-06-15T10:00:00Z",
    "duration_minutes": 30
  }'

GET /api/v1/appointments/:id

Retrieve a single appointment by its UUID. The response includes expanded patient, doctor, and clinic objects.

Path parameters

id
string
required
UUID of the appointment.

curl example

curl http://localhost:8000/api/v1/appointments/appt-uuid-001 \
  --header "Authorization: Bearer <access_token>"

PATCH /api/v1/appointments/:id

Update the status of an existing appointment. Clinic staff and doctors use this to progress an appointment through its lifecycle.

Path parameters

id
string
required
UUID of the appointment to update.

Request body

status
string
required
New status value. Must be one of: scheduled, confirmed, in_progress, completed, cancelled.

curl example

curl --request PATCH http://localhost:8000/api/v1/appointments/appt-uuid-001 \
  --header "Authorization: Bearer <access_token>" \
  --header "Content-Type: application/json" \
  --data '{"status": "confirmed"}'

Appointment status values

StatusDescription
scheduledAppointment created, awaiting confirmation
confirmedConfirmed by clinic staff or doctor
in_progressThe consultation is currently underway
completedThe consultation has finished
cancelledThe appointment was cancelled

Response fields

id
string
required
UUID of the appointment.
patient_id
string
required
UUID of the patient.
doctor_id
string
required
UUID of the doctor.
clinic_id
string
required
UUID of the clinic.
date_time
string
required
ISO 8601 datetime of the appointment.
duration_minutes
number
required
Duration in minutes.
status
string
required
Current appointment status.
notes
string
Optional free-text notes.
created_at
string
required
ISO 8601 creation timestamp.
updated_at
string
required
ISO 8601 last-updated timestamp.

Build docs developers (and LLMs) love