Skip to navigation

List conversations

View as Markdown

Returns one page of the workspace’s active conversations across every text channel. Closed conversations are not listed. Fetch a closed one directly with GET /api/conversations/{conversationId}. Each row carries the conversation columns plus the contact’s name, phone and lead status, the agent’s name, a 160-character preview of the last message and a lead qualification score.

Ordering and filtering. By default rows are ordered by updated_at descending (most recent activity first). With needsHuman=waiting only threads where the agent asked for a person and nobody has resolved it yet are returned, ordered by needs_human_at ascending, so the person who has waited longest comes first.

Pagination. Page-number pagination with page and limit. total is the number of matching conversations across all pages. needsHumanWaiting is the workspace-wide count of threads waiting for a person, whatever page or filter you asked for. Invalid values are never rejected: a non-numeric or zero page becomes 1, a non-numeric or zero limit becomes 50, and a limit above 100 is clamped to 100.

Consistency. Pages are cached for up to 30 seconds. An operator reply sent through POST /api/conversations/{conversationId}/messages clears the cache immediately. needsHumanWaiting is never cached.

Access

  • Required scope: read (or write).
  • Rate limit: General API — 120 requests/min per workspace (Starter), 200 (Growth), 300 (Business), 600 (Enterprise). See Rate limits.
  • Plan: Available on every plan.

Authentication

AuthorizationBearer

Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.

ScopeGET / HEADPOST / PUT / PATCH / DELETEAdmin-only routes
readYesNoNo
writeYesYesNo
fullYesYesYes

Operations restricted to admins or owners reject keys without the full scope with 403, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See Authentication.

Query parameters

pageintegerOptional>=1Defaults to 1

1-indexed page number. Non-numeric or values below 1 are treated as 1.

limitintegerOptional1-100Defaults to 50

Conversations per page. Values above 100 are clamped to 100; non-numeric or values below 1 fall back to 50.

needsHumanenumOptional

Pass waiting to list only threads where the agent asked for a person and it is not resolved yet, oldest wait first. Any other value is ignored and the normal list is returned.

Allowed values:
statusenumOptional

Pass closed to list the closed conversations instead of the inbox, newest activity first. The inbox (no status) returns the active threads plus any closed thread still waiting for a person. Ignored when needsHuman=waiting is also sent. Any other value is ignored.

Allowed values:

Response

One page of conversations.
dataobject

Errors

401
Unauthorized Error
403
Forbidden Error
429
Too Many Requests Error