curl --request GET \
--url https://{projectID}.texterchat.com/server/api/v2/chats/{chatId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{projectID}.texterchat.com/server/api/v2/chats/{chatId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{projectID}.texterchat.com/server/api/v2/chats/{chatId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"title": "Niv Shteingart",
"channelInfo": {
"name": "whatsapp",
"id": "972521234567",
"accountId": "972549876543"
},
"departmentId": null,
"agent": {
"uid": null,
"displayName": ""
},
"status": 0,
"created": "2025-05-07T11:09:03.295Z",
"updatedAt": "2025-11-03T20:05:15.532Z",
"lastIncomingMessageTimestamp": 1762200310000,
"lastMessage": {
"type": "text",
"text": "מה שמך?"
},
"unreadCount": 2,
"botState": {
"id": "236ef058aa87c90536c33493d2024cd87055bdac4d64a0f22fd84fcb3cea6f8d"
},
"lastMessageTimestamp": 1762200315209
}{
"error": "Chat not found",
"success": false
}Get Chat by Chat ID
Retrieve a chat by its ID. The response is the chat’s public view - a trimmed set of properties (it does not include _id, labels, crmData or displayName, and botState is narrowed to just its session id). To retrieve the complete chat record, use Search Chats.
curl --request GET \
--url https://{projectID}.texterchat.com/server/api/v2/chats/{chatId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{projectID}.texterchat.com/server/api/v2/chats/{chatId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{projectID}.texterchat.com/server/api/v2/chats/{chatId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"title": "Niv Shteingart",
"channelInfo": {
"name": "whatsapp",
"id": "972521234567",
"accountId": "972549876543"
},
"departmentId": null,
"agent": {
"uid": null,
"displayName": ""
},
"status": 0,
"created": "2025-05-07T11:09:03.295Z",
"updatedAt": "2025-11-03T20:05:15.532Z",
"lastIncomingMessageTimestamp": 1762200310000,
"lastMessage": {
"type": "text",
"text": "מה שמך?"
},
"unreadCount": 2,
"botState": {
"id": "236ef058aa87c90536c33493d2024cd87055bdac4d64a0f22fd84fcb3cea6f8d"
},
"lastMessageTimestamp": 1762200315209
}{
"error": "Chat not found",
"success": false
}Send session message
To look a chat up by phone number instead of ID, use Get Chat by Recipient.Authorizations
API token generated in Texter: gear icon → Developers → API Tokens. When creating a token, assign it the scopes required by the endpoints you plan to call - each endpoint lists its required scopes.
Path Parameters
The unique identifier of the chat. You can obtain this value by using the Search Chats endpoint with the contact's phone number. Must be a 24-character hex string (MongoDB ObjectId); IDs in any other shape do not match this route
^[a-f0-9]{24}$Response
The public chat view. Field-by-field reference: The Chat object
The public chat view returned by Get Chat by ID. Note: this is a trimmed version of the chat - fields like _id, labels, crmData and displayName are not included, and botState is narrowed to its id only.
true
Channel that an entity belongs to
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Chat status: 0 = BOT (handled by bot), 1 = PENDING (waiting for an agent), 2 = ASSIGNED (shown as "Taken" in Texter), 3 = RESOLVED, 4 = BULK
0, 1, 2, 3, 4 Epoch milliseconds
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Narrowed bot state - only the session ID is returned
Show child attributes
Show child attributes
Timestamp (epoch milliseconds) of the last message sent or received