# List Appointments

Endpoint: GET /appointment
Version: v1
Security: x-api-key, a-api-key

## Query parameters:

  - `page` (integer)

  - `page_size` (integer)

  - `sort_by` (array)
    Comma separated search fields. See [Sorting](/#sorting)

  - `q[]` (array)
    Filter result by one or more fields.

See [Query Filtering](/#query-filtering)

Available filters:

| Value | Format |
|---|---|
| created | [timestamp](/#timestamp) |
| updated | [timestamp](/#timestamp) |
| app_time | [datetime](/#datetime)|
| appointment_id | [integer](/#numeric) |
| profession_id | [integer](/#numeric) |
| business_id | [integer](/#numeric) |
| client_id | [integer](/#numeric) |
| appointment_type_id | [integer](/#numeric) |
| practitioner_id | [integer](/#numeric) |

## Response 200 fields (application/json):

  - `appointments` (array)

  - `appointments.row_num` (integer)

  - `appointments.total_rows` (integer)

  - `appointments.links` (object)

  - `appointments.links.self` (string)
    Example: https://api.pracsuite.com/v1/appointment/1

  - `appointments.links.resources` (string)
    Example: https://api.pracsuite.com/v1/appointment/1/resource

  - `appointments.tenant_id` (integer)

  - `appointments.appointment_id` (integer)

  - `appointments.client_id` (integer)

  - `appointments.app_time` (string)
    ISO 8601 local datetime in the tenant's timezone.
    Example: 2026-01-01T12:05:30

  - `appointments.description` (string)

  - `appointments.appointment_type_id` (integer)

  - `appointments.appointment_status_id` (integer)

  - `appointments.category` (string)

  - `appointments.duration` (integer)

  - `appointments.notes` (string)

  - `appointments.practitioner_id` (integer)

  - `appointments.business_id` (integer)

  - `appointments.profession_id` (integer)

  - `appointments.item_id` (integer)

  - `appointments.account_id` (integer)

  - `appointments.created` (string)
    RFC 3339 UTC date-time (Z) with microsecond precision.
    Example: 2020-09-12T11:09:42.687393Z

  - `appointments.modified` (string)
    RFC 3339 UTC date-time (Z) with microsecond precision.
    Example: 2020-09-12T11:09:42.687393Z

  - `appointments.item_group_id` (integer)

  - `appointments.telehealth_patient_link` (string)

  - `appointments.telehealth_practitioner_link` (string)

  - `appointments.resource_ids` (array)

  - `total_entries` (integer)

  - `links` (object)

  - `links.self` (string)
    Example: https://api.pracsuite.com/v1/appointment?page=2

  - `links.previous` (string)
    Example: https://api.pracsuite.com/v1/appointment?page=1

  - `links.next` (string)
    Example: https://api.pracsuite.com/v1/appointment?page=3

## Response 400 fields (application/json):

  - `error` (object, required)

  - `error.status` (integer)
    Example: 400

  - `error.code` (string)
    Example: INVALID_PARAMS

  - `error.detail` (string)
    Human readable explanation of the error
    Example: One or more request parameters are invalid.

  - `request_id` (string, required)
    Example: 00000000-0000-0000-0000-000000000000

## Response 401 fields (application/json):

  - `error` (object, required)

  - `error.status` (integer)
    Example: 403

  - `error.code` (string)
    Example: UNAUTHORIZED

  - `error.detail` (string)
    Human readable explanation of the error
    Example: Access could not be verified for this request.

  - `request_id` (string, required)
    Example: 00000000-0000-0000-0000-000000000000

## Response 403 fields (application/json):

  - `error` (object, required)

  - `error.status` (integer)
    Example: 403

  - `error.code` (string)
    Example: MISSING_AUTHENTICATION_TOKEN

  - `error.detail` (string)
    Human readable explanation of the error
    Example: Authentication token is missing or the requested endpoint does not exist

  - `request_id` (string, required)
    Example: 00000000-0000-0000-0000-000000000000

## Response 500 fields (application/json):

  - `error` (object, required)

  - `error.status` (integer)
    Example: 500

  - `error.code` (string)
    Example: SERVER_ERROR

  - `error.detail` (string)
    Human readable explanation of the error
    Example: An unexpected error occurred while processing your request. Please try again in a few minutes. If it keeps happening, contact support with Request ID: 00000000-0000-0000-0000-000000000000.

  - `request_id` (string, required)
    Example: 00000000-0000-0000-0000-000000000000

