GoHighLevel Conversations API

Update Message Status

PUT/conversations/messages/:messageId/status

PUT /conversations/messages/:messageId/status Post the necessary fields for the API to update message status It takes 1 path parameter and 4 body fields, requires the conversations/message.write scope and authenticates with a sub-account (location) token.

Request and authentication

Method
PUT
Full URL
https://services.leadconnectorhq.com/conversations/messages/:messageId/status
Scopes
conversations/message.write
Token type
Sub-account (location) token
Accepted auth
OAuth Access Token, Private Integration Token
API version header
Version: 2021-07-28
Schema verified
22 June 2026

Path parameters

Substituted into the URL. Required by definition.

NameTypeDescription
messageIdrequiredstring

Example: ve9EPM428h8vShlRW1KT

Request body

JSON body fields. Nested objects are shown indented under their parent.

NameTypeDescription
statusrequiredstring

Message status

One of: delivered, failed, pending, read

Example: read

errorunknown

Error object from the conversation provider

emailMessageIdstring

Email message Id

Example: ve9EPM428h8vShlRW1KT

recipientsarray

Email delivery status for additional email recipients.

Response fields

Top-level fields returned on a successful call.

NameTypeDescription
conversationIdrequiredstring

Conversation ID.

Example: ABC12h2F6uBrIkfXYazb

emailMessageIdstring

This contains the email message id (only for Email type). Use this ID to send inbound replies to GHL to create a threaded email.

Example: rnGyqh2F6uBrIkfhFo9A

messageIdrequiredstring

This is the main Message ID

Example: t22c6DQcTDf3MjRhwf77

messageIdsarray

When sending via the GMB channel, we will be returning list of messageIds instead of single messageId.

msgstring

Additional response message when sending a workflow message

Example: Message queued successfully.

forwardDataunknown

Optional metadata for forwarded email

Example: [object Object]

statusrequiredstring

Message status

One of: delivered, failed, pending, read

Example: delivered

Example request

Copy-paste ready. Swap YOUR_TOKEN for your access token or Private Integration Token, and the sample ID for your own.

curl -X PUT 'https://services.leadconnectorhq.com/conversations/messages/ve9EPM428h8vShlRW1KT/status' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Version: 2021-07-28' \
  -H 'Content-Type: application/json' \
  -d '{
    "status": "read"
  }'

Skip the schema lookup

Hylo gives your AI agent this schema — and the other 52 documented here — without you looking anything up. Ask in plain English; it picks the endpoint, fills the body, and can run the call against your own sub-account.

More conversations endpoints