# Get Appointments

> GET /v1/appointments

`GET https://app.untetherlabs.com/api/v1/appointments`

This endpoint is paginated. See /using-the-api/pagination.

## Request

```bash
curl -X GET 'https://app.untetherlabs.com/api/v1/appointments' \
  -H 'Authorization: Bearer $UNTETHER_API_KEY'
```

## Query parameters

- `teamId` (uuid)
- `providerId` (uuid)
- `memberId` (string)
- `startDate` (string, example "2024-11-20T07:43:34+0000")
- `endDate` (string, example "2024-11-20T07:43:34+0000")
- `status` (AppointmentStatus, one of `upcoming`, `occurred`, `cancelled`, `no-show`, `re-scheduled`)
- `type` (string)
- `pageSize` (number, default 20, min 1, max 200)
- `cursor` (string)

## Response 200

- `items` (Appointment[], required)
  - `createdAt` (string, required, example "2024-11-20T07:43:34+0000")
  - `type` (string, required, example "video") — Appointment type, company specific
  - `status` (AppointmentStatus, required, one of `upcoming`, `occurred`, `cancelled`, `no-show`, `re-scheduled`)
  - `providerId` (uuid, required)
  - `memberId` (string | null, required)
  - `startDate` (string, required, example "2024-11-20T07:43:34+0000")
  - `endDate` (string, required, example "2024-11-20T07:43:34+0000")
  - `actualStartDate` (string | null, required, example "2024-11-20T07:43:34+0000")
  - `actualEndDate` (string | null, required, example "2024-11-20T07:43:34+0000")
  - `location` (string | null, required)
  - `cancellationDate` (string | null, required, example "2024-11-20T07:43:34+0000") — Only present when status = `cancelled`
  - `cancellationReason` (string | null, required) — Only present when status = `cancelled`
- `cursor` (string)

## Errors

- `negative-range` (400) — Time range end date must come after start date.
- `validation` (400) — Input validation failed.
