Auth. HMAC v1 or bearer token — see Authentication.
Status. Live · Idempotent: No (each call posts a fresh edit; pass
new_text you want the bubble to read).Which id goes in the URL
This is a message-scoped route:{id} is a message_id, not a chat_id. Prefer the Chert-issued message_id returned by POST /api/v1/send, or the message.id returned by POST /api/v1/chats and POST /api/v1/chats/{id}/messages. Chert resolves that id to the underlying iMessage identifier internally before applying the edit.
For outbound messages surfaced by
GET /api/v1/chats/{id}/messages, the listed message id is also accepted.Request
POST /api/v1/messages/{id}/edit
Response
Path parameters
string
required
The Chert
message_id returned by a send endpoint, or the outbound message id surfaced on chat-message listings.Body
string
required
The replacement bubble text. Empty strings are rejected.
integer
default:"0"
For multi-part messages, the zero-based index of the text part to edit. Default
0 (the first text part). Most sends have only one text part.Response fields
string
Always
"edited" on success.string
Echoed-back
message_id of the edited bubble.string
The text that now appears in the bubble.
string
ISO-8601 timestamp the edit was applied.
array | null
Reserved for future use. May surface previous versions of the bubble when the underlying transport reports them.
Errors
See the full error code reference.

