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

# POST /api/patient_messages

`POST /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

- `since` string
- `patient` integer
- `doctor` integer

## Response `201`

Created

- PatientMessage
  - `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

## 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 `thread` to the response with the `201` status

[Operation history](https://skmtc.dev/drchrono/apis/drchrono-api/changes/api/patient_messages/post.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)
