---
title: "List appointments"
method: GET
path: "/api/appointments"
tags: ["Appointments"]
---

# List appointments

`GET /api/appointments`

## Request

- Base URL: `https://api.hairdora.com`
- URL: `https://api.hairdora.com/api/appointments`
- Auth: one of:
  - HTTP basic
  - API key in header `Authorization`

Lists the appointments of your organization. Requires the `appointments:read` scope. Optionally filter by `salonId`, `clientId` and a `startTime`/`endTime` window.

## Query parameters

- `salonId` string
- `clientId` string
- `startTime` string
- `endTime` string
- `limit` integer
- `skip` integer
- `sortField` string
- `sortDirection` 'ASC' | 'DESC'
- `fields` string

## Response `200`

Array of appointments

- object[]
  - `_id` string
  - `salonId` string
  - `clientId` string
  - `startTime` string, date-time
  - `endTime` string, date-time
  - `status` string
  - `services` object[]
  - `reminders` object[]
  - `lastEditTime` string, date-time

## Other responses

- `401`: Missing or invalid credentials
- `403`: API key is missing the `appointments:read` scope
- `429`: API key rate limit exceeded
- `default`: Error response

---

[API](https://skmtc.dev/hairdora/apis/hairdora-api.md) · [All operations](https://skmtc.dev/hairdora/apis/hairdora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hairdora/apis/hairdora-api/revisions/347e96f32b88?raw)
