---
title: "PATCH /public/v1/approvals/messages/{messageId}"
method: PATCH
path: "/public/v1/approvals/messages/{messageId}"
tags: ["Inbox"]
---

# PATCH /public/v1/approvals/messages/{messageId}

`PATCH /public/v1/approvals/messages/{messageId}`

Edit the body of an unsent message draft. Works for every draft in the sequence: the first outreach message, follow-ups, and re-engagements alike. A draft stays editable while it is pending approval and after it has been approved but not yet sent (the send path reads the latest body at send time), so an approved draft can still be corrected before its send window. Once a message has been sent it can no longer be edited. An already-sent message returns 400. A 409 is reserved for the narrow case where the message is sent concurrently, after this request read its status but before the write lands. A draft stays editable after its campaign is deleted, matching the in-app behaviour. `subject` is accepted on INMAIL messages only, and cannot be blank once set. Character limits are enforced per message type: CONNECT 300 (200 on a Basic, non-Premium LinkedIn seat), INMAIL 1700 (subject 200), FOLLOW_UP 1000, RE_ENGAGEMENT 1000, FIRST_DEGREE_INTRO 8000.

## Path parameters

- `messageId` string, required

## Request body

- object
  - `message` string, required — The new message body. Replaces the existing draft in full.
  - `subject` string — INMAIL only. Replaces the InMail subject line. Max 200 characters. Cannot be blank: omit the field to leave the existing subject unchanged.

## Response `200`

Default Response

- object
  - `statusCode` number
  - `status` boolean
  - `message` string
  - `data` object
    - `messageId` string
    - `messageType` string
    - `campaignId` string
    - `prospectId` string
    - `status` string

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `409` — Default Response
- `429` — Default Response
- `500` — Default Response

## Changes

- **2026-08-25** `b8c3d11d7a36` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/joinvalley/apis/valley-public-api/changes/public/v1/approvals/messages/:messageId/patch.md)

---

[API](https://skmtc.dev/joinvalley/apis/valley-public-api.md) · [All operations](https://skmtc.dev/joinvalley/apis/valley-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/joinvalley/valley-public-api/revisions/a8e70cca9931/schema)
