---
title: "GET /api/patient_messages"
method: GET
path: "/api/patient_messages"
tags: ["Clinical"]
---

# GET /api/patient_messages

`GET /api/patient_messages`

## Request

- Base URL: `https://app.drchrono.com`
- URL: `https://app.drchrono.com/api/patient_messages`
- Auth: OAuth 2
  - Authorization code: `https://app.drchrono.com/o/authorize/`
  - Token URL: `https://app.drchrono.com/o/token/` scopes: `patients:read`, `patients:write`, `messages:read`, `messages:write`

## Query parameters

- `cursor` string: The pagination cursor value.
- `page_size` integer: Number of results to return per page.
- `since` string
- `patient` integer
- `doctor` integer

## Response `200`

OK

- object: Paginated Result
  - `previous` string: Previous paginated page
  - `data` PatientMessage[]: result data
    - `body` string
    - `patient` integer, required
    - `attachments` object[]
      - `updated_at` string
      - `created_at` string
      - `attachment` string
      - `doctor` integer
    - `thread` integer, nullable: ID of the DoctorMessageThread containing this message (OnPatient message threading)
    - `doctor` integer, required
    - `created_at` string
    - `updated_at` string
    - `message` string
    - `id` integer
    - `subject` string, required
  - `next` string: Next Paginated page

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Permission Denied
- `404`: Not Found
- `405`: Method Not Allowed
- `500`: Internal Server Error

## Changes

- **2026-07-13** `1f92de898aec`: 1 info
  - added the optional property `data/items/thread` to the response with the `200` status

[Operation history](https://skmtc.dev/drchrono/apis/drchrono-api/changes/api/patient_messages/get.md)

---

[API](https://skmtc.dev/drchrono/apis/drchrono-api.md) - [All operations](https://skmtc.dev/drchrono/apis/drchrono-api/llms.txt) - [OpenAPI document](https://skmtc.dev/drchrono/apis/drchrono-api/revisions/98cabe79d150?raw)
