SparrowDesk
Conversations

List all conversations with replies

Conversation list uses the same filters and `starting_after` cursor as GET /conversations (`per_page` max 20). Root `pages` / `total_count` apply to conversations only. Each row includes `replies` with the same shape as GET /conversations/{id}/replies (`data`, `pages`, `total_count`). Use `replies_per_page` (max 50), `replies_sort_order`, and `type` for the embedded reply page. For more replies on a row, call GET /conversations/{id}/replies with `starting_after` = `replies.pages.next_cursor`, or follow `replies.pages.next_url` when returned.

GET
/conversations/with-replies
AuthorizationBearer <token>

In: header

Query Parameters

starting_after?string|null

Cursor for conversation list pagination

per_page?integer

Conversations per page (1–20, default 20)

Range1 <= value <= 20
replies_per_page?integer

Replies per conversation (1–50, default 50)

Range1 <= value <= 50
replies_sort_order?string

Reply list sort by sent_at (default desc)

Value in"asc" | "desc"
type?string

Filter replies by type

Value in"INTERNAL_NOTE" | "REPLY"
status?array<string>
priority?array<string>
assigned_to_member_id?array<integer>
assigned_to_team_id?array<integer>
brand_id?array<integer>
requested_by_id?integer
handled_by_ai_agent?string

Same as GET /conversations handled_by_ai_agent. Omitted — no filter by AI handling. true — only conversations assigned to an AI agent. false — conversations handed off for human help, or where the assignee is not an AI agent.

Value intrue | false
search?string

Search by subject, description, replies, or conversation ID. Use quotes for exact phrases.

Lengthlength <= 250
sort_by?string
Value in"created_at" | "updated_at"
sort_order?string

Sort order for the conversation list

Value in"asc" | "desc"

Response Body

curl -X GET "https://app.sparrowdesk.com/v1/conversations/with-replies"
Empty
Empty
Empty
Empty