Edit a message
const url = 'https://chat.centralcodestation.com/api/v1/tenants/example/applications/example/conversations/example/messages/example';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"body":"See you at 9:30!"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://chat.centralcodestation.com/api/v1/tenants/example/applications/example/conversations/example/messages/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "body": "See you at 9:30!" }'The author with messages.update, or a moderator with messages.delete.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”A Chat conversation id (uuid).
A Chat message id (uuid).
The Identity Server tenant id.
The Identity Server id of a chat-enabled tenant application.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
{ "body": "See you at 9:30!"}Responses
Section titled “Responses”Success.
object
Set when a machine client sent it (on behalf of sender_user_id, or as SYSTEM).
object
Falls back to the user id when Chat has no profile.
Empty for a deleted message (tombstone).
object
A file id owned by a File/Media platform — Chat never stores bytes.
object
Example
{ "message_id": "0d9e6a52-8b0c-4c47-b1f2-5c9a2c1d7e33", "conversation_id": "6b1f4c7e-3c52-4a0a-9a39-7d2e2f1f8a10", "tenant_id": "fitness", "application_id": "fitness-app", "sender_user_id": "coach-ana", "sender_client_id": null, "sender": { "user_id": "coach-ana", "display_name": "Ana Coach", "avatar_url": null }, "body": "See you at 9!", "message_type": "TEXT", "reply_to_message_id": null, "attachments": [], "status": "ACTIVE", "edited_at": null, "deleted_at": null, "created_at": "2026-10-14T09:30:00.000Z", "updated_at": "2026-10-14T09:30:00.000Z", "reactions": [ { "emoji": "👍", "count": 1, "reacted_by_me": false } ], "mentioned_user_ids": []}Error. error is one of: invalid_request, body_too_long.
object
Stable snake_case error code.
Example
{ "status_code": 400, "error": "invalid_request", "message": "The request is malformed: a required field is missing, a value has the wrong type or format, or a field the route does not accept was sent", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: invalid_token, token_revoked.
object
Stable snake_case error code.
Example
{ "status_code": 401, "error": "invalid_token", "message": "The bearer token is missing, malformed, expired, signed by an unknown key, has the wrong audience (`aud` must be `chat-api`), or lacks the required scope.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: not_tenant_member, no_application_access, tenant_not_available, insufficient_scope, client_context_mismatch, missing_capability, principal_not_allowed.
object
Stable snake_case error code.
Example
{ "status_code": 403, "error": "not_tenant_member", "message": "The user is not an active member of the tenant in the URL.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: application_not_found, not_found.
object
Stable snake_case error code.
Example
{ "status_code": 404, "error": "application_not_found", "message": "The application does not exist in the tenant, or Chat is not enabled for it.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: rate_limited.
object
Stable snake_case error code.
Example
{ "status_code": 429, "error": "rate_limited", "message": "The caller exceeded a rate limit", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: identity_unavailable.
object
Stable snake_case error code.
Example
{ "status_code": 503, "error": "identity_unavailable", "message": "Chat could not reach the Identity Server and has no fresh cached answer.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}default
Section titled “default”Error — see error for the code.
object
Stable snake_case error code.
Example
{ "status_code": 403, "error": "invalid_request", "message": "Missing Chat capability messages.send", "path": "/api/v1/tenants/t1/applications/a1/conversations"}