Api reference
List all conversation threads for a user
Threads persist across text and voice sessions; one thread can contain both modalities. Sort order is `updated_at` descending. `messages[]` is omitted from list rows — fetch messages via `GET /threads/{thread_id}/messages`.
Authorization
MemberBearer AuthorizationBearer <token>
Member-scoped JWT minted by POST /v1/auth/token. Required on every /v1/users/{user_id}/... route; the token's sub claim must match the path user_id.
In: header
Path Parameters
user_id*User Id
Format
uuidQuery Parameters
limit?Limit
Default
25Range
1 <= value <= 100offset?Offset
Default
0Range
0 <= valueHeader Parameters
org-id?string|null
x-user-id?string|null
x-request-id?string|null
traceparent?string|null
Idempotency-Key?|null
Response Body
application/json
application/json
curl -X GET "https://loading/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/threads"{
"data": [
{
"thread_id": "1de43264-67cb-48af-89f9-e865c375bb84",
"title": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"message_count": 0,
"messages": [
{
"message_id": "string",
"role": "user",
"content": "string",
"modality": "text",
"timestamp": "2019-08-24T14:15:22Z",
"voice_call_id": "24c116e5-d1d8-49ce-9fa3-7550ed63a95c"
}
]
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 0
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Get a short-lived signed URL for the original uploaded document
Returns a fresh 15-minute signed URL on each call. Do not cache — request again when the link expires.
Update thread metadata (title only)
Only the thread title can be edited; messages are immutable. Partners surface this as a rename action in the conversation list UI.