The household's topics
chat.conversation.list
GET/api/v1/households/{household_id}/queries/chat.conversation.list
- Query
- Rigel runs it
Every topic, the main chat first and then by latest message, with how many messages I haven't read in each and how each notifies me. The main chat is always listed, even before anything is sent there.
Parameters#
| Field | Description |
|---|---|
household_idpathstringrequired | The household's ID. |
include_archivedquerybooleanoptional | Also list archived topics; left out, they're hidden. |
Response#
200 The answer.
| Field | Description |
|---|---|
itemsarray of objectsrequired | |
items[].idstringrequired | A conversation ID, such as cnv_01JC0000000000000000000000. |
items[].titlestringrequired | The topic's title. |
items[].is_mainbooleanrequired | Whether this is the household's main chat. |
items[].stateone of: open, archivedrequired | open, or archived (hidden from the list, still readable). |
items[].last_message_atstring (date-time) or nullrequired | When the latest message, threads included, was sent; null when empty. |
items[].unread_countintegerrequired | How many messages I haven't read, threads included. |
items[].follow_levelone of: all, mentions, nonerequired | How it notifies me, with the default filled in. |
items[].addressstringrequired | The web route that opens it. |
Errors#
Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.
| Status | Code | When |
|---|---|---|
400 | validation_failed | A field is missing, misspelled or out of range. details.fields lists each problem. |
401 | unauthenticated | The request has no valid session. |
404 | not_found | The household doesn't exist, or you aren't a member of it. |
Examples#
These are real. Each was recorded from a sample household, the Okafors, running through the whole API when this site was built.
List the conversations
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/chat.conversation.list' \
-H "Cookie: rigel_session=$RIGEL_SESSION"const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/chat.conversation.list", {
headers: {
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
});
const data = await response.json();GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/chat.conversation.list HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01M6V9CSNFFKKF6VADN7ZMMKC9
{
"items": [
{
"id": "cnv_00000000000000000000000000",
"title": "Family",
"is_main": true,
"state": "open",
"last_message_at": "2026-11-07T15:17:52.422Z",
"unread_count": 0,
"follow_level": "all",
"address": "/chat/cnv_00000000000000000000000000"
}
]
}For Rigel#
Rigel's tool for this query is chat_conversation_list. Rigel runs this on its own, then says what it did. The agent guide has the rest.