List chats
Returns your chats, latest activity first. fromDate and toDate filter on lastActivityAt.
Chats the Knock dashboard hides, such as spam, are not listed. A chat with new activity moves to the top, so it can be skipped or repeated while you page through: deduplicate by contactId, and start the next sync with fromDate set to when this one started.
ApiKeyAuthx-api-key<token>Your Knock API key. Ask your Knock account team for one: a key with the Enrichment API role for enrichment, or the Viewer role for chats and meetings.
limit?integerPage size.
1 <= value <= 10050offset?integerNumber of items to skip.
0 <= value0fromDate?stringStart of the time window, inclusive: a date (YYYY-MM-DD) for the start of that day in UTC, or a date-time (YYYY-MM-DDTHH:mm[:ss[.sss]], optionally followed by Z or ±HH:MM; UTC without one).
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?(Z|[+-]\d{2}:\d{2})?)?$toDate?stringEnd of the time window, inclusive: a date (YYYY-MM-DD) for the end of that day in UTC, or a date-time (YYYY-MM-DDTHH:mm[:ss[.sss]], optionally followed by Z or ±HH:MM; UTC without one).
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?(Z|[+-]\d{2}:\d{2})?)?$A page of chats.
application/json- response
A page of chats.
total*integerNumber of items that match the query, across all pages.
limit*integerPage size of this page.
offset*integerNumber of items skipped before this page.
items*array<>Chats, latest activity first.
curl -X GET 'https://app.knock-ai.com/v1/chats' \ -H 'x-api-key: <YOUR_API_KEY>'{ "total": 1, "limit": 50, "offset": 0, "items": [ { "contactId": "9b1e4c2a-6f3d-4e8b-a7c5-1d2e3f4a5b6c", "firstName": "Jane", "lastName": "Doe", "role": "VP Sales", "companyName": "Acme", "companyDomain": "acme.com", "channels": [ "slack" ], "status": "Qualified", "intent": "buying", "segment": "Enterprise", "ownerId": "5a7c9e1b-3d5f-4a6b-8c9d-0e1f2a3b4c5d", "ownerName": "Alex Kim", "lastActivityAt": "2026-10-19T10:00:00.000Z", "createdAt": "2026-10-01T09:00:00.000Z" } ]}