List conversations a user is part of
Lists all conversations that a user is a part of.
The response contains user-specific fields to indicate whether a user has any unread messages in a conversation (isUnread), and a counter for unread messages (unreadMessageCount).
You can filter results with optional provided filters, or create your own custom filters.
Filter by custom filters
You can create a custom filter in the required JSON structure using your preferred programming language. The filter interface is the same as the JavaScript SDK's Conversation filter. URLencode the JSON formatted filter to use your custom filter.
NodeJS example
// fetches a conversation which has a custom field { "category": "shoes" } and the user can read and write in
const filter = {
custom: { category: ['==', 'shoes'], access: ['==', 'ReadWrite'] },
};
const encodedFilter = encodeURIComponent(JSON.stringify(filter));
const res = await fetch(
`https://api.talkjs.com/v1/${appId}/users/${userId}/conversations?filter=${encodedFilter}`
);
const conversations = await res.json();
Request
- Base URLhttps://api.talkjs.com
- Auth
- HTTP bearer
- or HTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
A unique identifier of your TalkJS app. You can find your app ID on the Settings page of your dashboard.
A unique identifier of a user.
Query parameters
Optional parameter to control the sorting order of conversations.
You can sort conversations either based on the timestamp of their last activity (lastActivity), or the timestamp of their date of creation (createdAt). Ordering conversations by their creation date can be useful if you want stable sorting.
Optional parameter to control the sorting order of conversations. You can sort conversations either in descending (DESC) or ascending (ASC) order.
An optional object ID that identifies a place in the record list, to allow you to paginate through a list of results.
By default, all records are sorted in descending order based on their createdAt property, which is a timestamp of a record's insertion date.
An optional parameter to specify the number of conversations that should be returned.
An optional timestamp to offset results with. Using OffsetTs can be useful combined with lastActivity sorting, since conversations can move to the front of the results list when new messages are sent.
Optional filter to return only conversations where the last message was sent after a certain timestamp. The timestamp should be a Unix timestamp expressed in milliseconds.
Optional filter to return only conversations where the last message was sent before a certain timestamp. The timestamp should be a Unix timestamp expressed in milliseconds.
Optional filter to return only conversations that contain messages the user hasn't read yet.
Response
Conversations for a user listed successfully.
Example response
{
"data": [
{
"id": "1629972494",
"participants": {
"alice": {
"access": "ReadWrite",
"notify": "MentionsOnly"
},
"zayneb": {
"access": "ReadWrite",
"notify": true
}
},
"subject": "Studio headphones",
"custom": {
"productId": "454545"
},
"createdAt": 1525249255419,
"topicId": "customer_support",
"photoUrl": "https://example.com/productpictures/012345.jpg",
"welcomeMessages": [
"Hello there!",
"I'm currently out of town, leave a message and I'll respond ASAP :)"
],
"lastMessage": {
"id": "msg_123ABcdefghiJKlmNOpqRS",
"type": "UserMessage",
"origin": "web",
"location": [
51.44442681184582,
5.4733118103642395
],
"text": "Hi, how are you?",
"custom": {
"priority": "high"
},
"attachment": {
"dimensions": {
"height": 1125,
"width": 516
},
"size": 51552,
"url": "https://example.com/attachment.jpg"
},
"conversationId": "0123456789",
"createdAt": 1697711905431,
"senderId": "alice",
"editedAt": 1629972494633,
"referencedMessageId": "msg_012ABcdefghiJKlmNOpqRS",
"readBy": [
"zayneb"
]
},
"isUnread": true,
"unreadMessageCount": 2
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.