GET /v1/conversations

Auth: tenant — _Status:_ stable

List the tenant's conversations, newest-updated_at first. Drives the frontend's left-rail thread list.

Request

Query parameters

NameTypeDefaultDescription
before_updated_atint (epoch s)noneReturns conversations updated strictly before this. Use the previous page's last updated_at to paginate backward.
limitint50Page size. Max 200.
folder_idint \"null"noneWhen set, only conversations in that folder. Use null, empty, or 0 for unfiled. Omit to return all.
curl -H "Authorization: Bearer atr_…" \
  "http://arbiter.example.com/v1/conversations?limit=20"
curl -H "Authorization: Bearer atr_…" \
  "http://arbiter.example.com/v1/conversations?folder_id=3"

Response

200 OK

{
  "count": 1,
  "conversations": [
    {
      "id": 1,
      "tenant_id": 1,
      "title": "Q3 planning",
      "agent_id": "index",
      "created_at": 1777088000,
      "updated_at": 1777088752,
      "message_count": 4,
      "archived": false,
      "folder_id": 3
    }
  ]
}

Field schemas: Data model → Conversation.

folder_id is null when the conversation is unfiled.

Archived rows are returned by default — clients filter for display. Use the archived flag on the conversation rows to hide them.

Failure modes

StatusWhenBody
400folder_id present but not a valid id / does not exist for this tenant.{"error": "..."}
401Missing / invalid bearer; tenant disabled.{"error": "..."}

See also