curl --request GET \
--url https://{your-subdomain}.neetochat.com/api/external/v2/conversations/{conversation_id}/messages \
--header 'Accept: <accept>' \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>', Accept: '<accept>'}};
fetch('https://{your-subdomain}.neetochat.com/api/external/v2/conversations/{conversation_id}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetochat.com/api/external/v2/conversations/{conversation_id}/messages"
headers = {
"X-Api-Key": "<x-api-key>",
"Accept": "<accept>"
}
response = requests.get(url, headers=headers)
print(response.text){
"messages": [
{
"id": "1bf689fc-9f92-4e39-9f71-4a97078d2b8f",
"body": "<p>Thanks, we have processed your refund.</p>",
"kind": "user_message",
"status": "read",
"created_at": "2026-10-05T16:26:57.912Z",
"updated_at": "2026-10-05T16:26:57.912Z",
"sender": {
"id": "05665eee-4602-4317-8f7f-767b04274e5f",
"name": "Oliver Smith",
"email": "oliver@example.com",
"type": "User"
},
"attachments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"filename": "invoice.pdf",
"content_type": "application/pdf",
"url": "https://spinkart.neetochat.com/rails/active_storage/blobs/redirect/.../invoice.pdf"
}
],
"message_gif": null
}
],
"pagination": {
"current_page": 1,
"total_pages": 4,
"total_count": 52,
"per_page": 15
}
}{
"error": "Conversation does not exist."
}List messages
List the messages in a conversation, oldest first. Internal notes and messages created by NeetoChat are included.
curl --request GET \
--url https://{your-subdomain}.neetochat.com/api/external/v2/conversations/{conversation_id}/messages \
--header 'Accept: <accept>' \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>', Accept: '<accept>'}};
fetch('https://{your-subdomain}.neetochat.com/api/external/v2/conversations/{conversation_id}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetochat.com/api/external/v2/conversations/{conversation_id}/messages"
headers = {
"X-Api-Key": "<x-api-key>",
"Accept": "<accept>"
}
response = requests.get(url, headers=headers)
print(response.text){
"messages": [
{
"id": "1bf689fc-9f92-4e39-9f71-4a97078d2b8f",
"body": "<p>Thanks, we have processed your refund.</p>",
"kind": "user_message",
"status": "read",
"created_at": "2026-10-05T16:26:57.912Z",
"updated_at": "2026-10-05T16:26:57.912Z",
"sender": {
"id": "05665eee-4602-4317-8f7f-767b04274e5f",
"name": "Oliver Smith",
"email": "oliver@example.com",
"type": "User"
},
"attachments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"filename": "invoice.pdf",
"content_type": "application/pdf",
"url": "https://spinkart.neetochat.com/rails/active_storage/blobs/redirect/.../invoice.pdf"
}
],
"message_gif": null
}
],
"pagination": {
"current_page": 1,
"total_pages": 4,
"total_count": 52,
"per_page": 15
}
}{
"error": "Conversation does not exist."
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Specifies the expected response format. Must be set to application/json for proper API communication.
application/json Path Parameters
Id of the conversation. You can get conversation_id by listing conversations using our List conversations API.
"de414e85-a1b5-4240-a465-7b32606980ce"
Query Parameters
Page number to retrieve, starting from 1. Defaults to 1 when omitted.
1
Number of records per page. Defaults to 15 when omitted, and values above 100 are capped at 100. page_size is accepted as an alias.
15
Response
OK - Request succeeded
Hide child attributes
Hide child attributes
"1bf689fc-9f92-4e39-9f71-4a97078d2b8f"
Content of the message. It may contain HTML.
"<p>Thanks, we have processed your refund.</p>"
Type of the message. user_message is a chat message and note is an internal note that only team members can see. Other kinds, such as system_message and activity_message, are created by NeetoChat.
"user_message"
"read"
"2026-10-05T16:26:57.912Z"
"2026-10-05T16:26:57.912Z"
Hide child attributes
Hide child attributes
"05665eee-4602-4317-8f7f-767b04274e5f"
"Oliver Smith"
"oliver@example.com"
User for a team member and Insights::Visitor for a contact.
"User"
Hide child attributes
Hide child attributes