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
| Name | Type | Default | Description | |
|---|---|---|---|---|
before_updated_at | int (epoch s) | none | Returns conversations updated strictly before this. Use the previous page's last updated_at to paginate backward. | |
limit | int | 50 | Page size. Max 200. | |
folder_id | int \ | "null" | none | When 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
| Status | When | Body |
|---|---|---|
| 400 | folder_id present but not a valid id / does not exist for this tenant. | {"error": "..."} |
| 401 | Missing / invalid bearer; tenant disabled. | {"error": "..."} |