---
title: "List appointments (agenda)"
method: GET
path: "/v1/appointments"
tags: ["Appointments"]
---

# List appointments (agenda)

`GET /v1/appointments`

## Request

- Base URL: `https://scribe-api.telepatia.ai`
- URL: `https://scribe-api.telepatia.ai/v1/appointments`
- Auth: HTTP bearer

List the appointments visible to the authenticated caller, tenant-scoped by role, sorted by start time. Filter by a start-time range and status, paginated.

## Query parameters

- `startFrom` string, nullable: ISO-8601 lower bound on start (inclusive).
- `startTo` string, nullable: ISO-8601 upper bound on start (inclusive).
- `status` AppointmentStatus[], nullable: Filter by one or more statuses (repeatable).
- `consultationInternalId` string, nullable: Filter to the booking that carries this consultation id.
- `page` integer: Page number (1-based).
- `limit` integer: Number of items per page.

## Response `200`

Successful Response

- AppointmentListResponse: Paginated list of appointments (the agenda).
  - `items` AppointmentResponse[], required: Page of appointments.
    - `id` string, required: Stable public identifier.
    - `consultationInternalId` string, nullable
    - `status` string, required
    - `start` string, nullable
    - `end` string, nullable
    - `minutesDuration` integer, nullable
    - `serviceType` string, nullable
    - `appointmentType` string, nullable
    - `reason` string, nullable
    - `description` string, nullable
    - `scribeSessionModality` 'IN_PERSON' | 'TELEMEDICINE' | 'DICTATION': Supported scribe session modalities.
    - `medicalRecordConfigurationId` string, nullable: The template the booking opens on. Null when the booking names none, or when the template has been deleted since.
    - `createdAt` string, required: ISO-8601 timestamp when the appointment was created.
  - `total` integer, nullable: Total appointments matching the filter (null on later pages).
  - `page` integer, required: Current page number (1-based).
  - `limit` integer, required: Number of items per page.
  - `totalPages` integer, nullable: Total number of pages (null when the total is unknown).
  - `hasMore` boolean, required: Whether another page likely exists (accurate on every page).

## Other responses

- `400`: Bad Request — invalid parameters, validation failures, or missing fields.
- `401`: Unauthorized — missing or invalid API key.
- `503`: Service Unavailable — an external dependency is down.

---

[API](https://skmtc.dev/telepatia/apis/scribe-public-api.md) - [All operations](https://skmtc.dev/telepatia/apis/scribe-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/telepatia/apis/scribe-public-api/revisions/be963942e472?raw)
