GoHighLevel Conversations API
Add An Inbound Message
/conversations/messages/inboundPOST /conversations/messages/inbound Post the necessary fields for the API to add a new inbound message. It takes 17 body fields, requires the conversations/message.write scope and authenticates with a sub-account (location) token.
Request and authentication
- Method
POST- Full URL
https://services.leadconnectorhq.com/conversations/messages/inbound- 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
Request body
JSON body fields. Nested objects are shown indented under their parent.
| Name | Type | Description |
|---|---|---|
typerequired | string | Message Type One of: Example: |
attachments | array | Array of attachments |
message | string | Message Body |
conversationIdrequired | string | Conversation Id Example: |
contactIdrequired | string | Contact Id Example: |
conversationProviderIdrequired | string | Conversation Provider Id Example: |
html | string | HTML Body of Email |
subject | string | Subject of the Email |
emailFrom | string | Email address to send from. This field is associated with the contact record and cannot be dynamically changed. Example: |
emailTo | string | Recipient email address. This field is associated with the contact record and cannot be dynamically changed. |
emailCc | array | List of email address to CC Example: |
emailBcc | array | List of email address to BCC Example: |
emailMessageId | string | Send the email message id for which this email should be threaded. This is for replying to a specific email |
altId | string | external mail provider's message id Example: |
direction | object | Message direction, if required can be set manually, default is outbound Example: |
date | string | Date of the inbound message |
call | unknown | Phone call dialer and receiver information |
Response fields
Top-level fields returned on a successful call.
| Name | Type | Description |
|---|---|---|
successrequired | boolean | — |
conversationIdrequired | string | Conversation ID. Example: |
messageIdrequired | string | This is the main Message ID Example: |
messagerequired | string | — |
contactId | string | — |
dateAdded | string | — |
emailMessageId | string | — |
Example request
Copy-paste ready. Swap YOUR_TOKEN for your access token or Private Integration Token.
curl -X POST 'https://services.leadconnectorhq.com/conversations/messages/inbound' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Version: 2021-07-28' \
-H 'Content-Type: application/json' \
-d '{
"type": "SMS",
"conversationId": "ve9EPM428h8vShlRW1KT",
"contactId": "ve9EPM428h8vShlRW1KT",
"conversationProviderId": "61d6d1f9cdac7612faf80753"
}'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
- Add An Outbound MessagePOST /conversations/messages/outbound
- Add Message AttachmentsPUT /conversations/messages/:messageId/attachments
- Complete File UploadPOST /conversations/messages/upload/complete
- Create ConversationPOST /conversations/
- Create Custom SubtypePOST /conversations/preferences/custom-subtypes
- Export Messages By LocationGET /conversations/messages/export
- All GoHighLevel Conversations endpointsCategory index
- GoHighLevel API referenceEvery category, webhooks, and OAuth scopes