Skip to content
KnockDevelopers

Chats and meetings

Read the chats, messages and meetings from your Knock dashboard.

Chat with a Developer
  • GET /v1/chats: chats, latest activity first.
  • GET /v1/chats/{contactId}/messages: a chat's messages, oldest first, up to 500. Not paginated.
  • GET /v1/meetings: meetings: booked, completed and cancelled, newest booking first.

API key

Use a key with the Viewer role. Admin, Editor, CRM Admin and AI Manager keys also work. An Enrichment API key gets 403 permissions.denied. See Authentication.

Pagination

Both lists take limit (1–100, default 50) and offset (default 0). Optional fromDate and toDate are inclusive and take YYYY-MM-DD (the whole UTC day) or YYYY-MM-DDTHH:mm[:ss[.sss]], UTC unless followed by Z or ±HH:MM (URL-encode + as %2B). Other formats get 400 validation. Chats filter on lastActivityAt, meetings on updatedAt.

Terminal
curl "https://app.knock-ai.com/v1/chats?limit=50&offset=0&fromDate=2026-10-01" \
  -H "x-api-key: $KNOCK_API_KEY"
200 OK (trimmed)
{
  "items": [
    {
      "contactId": "9b1e4c2a-6f3d-4e8b-a7c5-1d2e3f4a5b6c",
      "firstName": "Jane",
      "companyDomain": "acme.com",
      "channels": ["slack"],
      "status": "Qualified",
      "intent": "buying",
      "lastActivityAt": "2026-10-19T10:00:00.000Z"
    }
  ],
  "total": 120,
  "limit": 50,
  "offset": 0
}

Add limit to offset until offset reaches total. A chat with new activity moves to the top of the list, so it can be skipped or repeated while you page: deduplicate by contactId, and start the next sync with fromDate set to when this one started.

Errors

  • 404 external-api.chat.not-found: no chat with this contactId, or the dashboard hides it (for example, spam).
  • 502 external-api.history.unavailable: temporary. Retry with backoff.

See Errors for the rest.

Chat with a Developer

On this page