---
title: "List Patient Appointments"
method: GET
path: "/api/v3/admin/patient-appointments/"
tags: ["admin", "patient-appointments"]
---

# List Patient Appointments

`GET /api/v3/admin/patient-appointments/`

## Request

- Base URL: `https://api.endless.health` (the document declares no server; this is the origin it was published from)
- URL: `https://api.endless.health/api/v3/admin/patient-appointments/`
- Auth: none declared

List patient appointments with flexible filtering.

Access control:
- Staff: Can view appointments within their organization (automatically filtered)
- Coaches: Can view appointments for their assigned patients only
- Superusers: Can view all appointments

## Query parameters

- `user_id` integer, nullable: Filter by patient user_id
- `coach_id` integer, nullable: Filter by coach_id
- `organization_id` integer, nullable: Filter by organization_id
- `start_time` string, date-time, nullable: Filter from this start time. Can be combined with time_frame.
- `end_time` string, date-time, nullable: Filter until this end time. Can be combined with time_frame.
- `status` string, nullable: Filter by appointment status
- `time_frame` 'PAST' | 'UPCOMING': Time frame filters for appointments. - PAST: Appointments where end_time < now (the appointment has ended) - UPCOMING: Appointments where end_time >= now (the appointment hasn't ended yet)
- `limit` integer: Maximum number of results
- `offset` integer: Number of results to skip

## Response `200`

Successful Response

- PatientAppointmentResponseSchema[]
  - `coach_id` integer, required
  - `start_time` string, date-time, nullable
  - `end_time` string, date-time, nullable
  - `timezone` string, nullable
  - `is_available` boolean
  - `status` 'SCHEDULED' | 'CANCELED' | 'NOT_ATTENDED' | 'RESCHEDULED'
  - `title` string, nullable
  - `description` string, nullable
  - `location` string, nullable
  - `is_recurring` boolean
  - `recurrence_rule` string, nullable
  - `max_bookings` integer, nullable
  - `booking_duration` integer, nullable
  - `notes` string, nullable
  - `id` integer, required
  - `user_id` integer, required
  - `external_calendar_id` string, nullable
  - `external_event_id` string, nullable
  - `meeting_link` string, nullable
  - `cancel_link` string, nullable
  - `reschedule_link` string, nullable
  - `coach_name` string, nullable
  - `session_number` integer, nullable
  - `upcoming_session_status` string, nullable
  - `attended` boolean, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `404`: Not found
- `422`: Validation Error

---

[API](https://skmtc.dev/endless/apis/eh-core-v3-api-prod.md) - [All operations](https://skmtc.dev/endless/apis/eh-core-v3-api-prod/llms.txt) - [OpenAPI document](https://skmtc.dev/endless/apis/eh-core-v3-api-prod/revisions/9046a1eb2d0c?raw)
