What outside accounts are connected
household.integration.list
GET/api/v1/households/{household_id}/queries/household.integration.list
- Query
- Rigel runs it
Every connected account with whether it works and who connected it. With app, only that app's.
Parameters#
| Field | Description |
|---|---|
household_idpathstringrequired | The household's ID. |
appqueryone of: meals, recipes, shopping, inventory, calendar, email, tasks, documents, chat, maintenanceoptional | Only the integrations this app uses. |
Response#
200 The answer.
| Field | Description |
|---|---|
itemsarray of objectsrequired | |
items[].idstringrequired | A integration ID, such as int_01JC0000000000000000000000. |
items[].serviceone of: google_calendar, gmail, google_drive, imaprequired | The service: google_calendar, gmail, google_drive, or imap (a mailbox read over IMAP). |
items[].namestringrequired | The service in words, such as "Google Calendar". |
items[].what_it_can_dostringrequired | What connecting it lets Rigel do, in words. |
items[].appone of: meals, recipes, shopping, inventory, calendar, email, tasks, documents, chat, maintenancerequired | The app that uses it. |
items[].account_labelstringrequired | The account's email address. |
items[].stateone of: connected, needs_reconnectrequired | connected, or needs_reconnect when the provider stopped accepting the credential. |
items[].problemstring or nullrequired | What's wrong, in words, when it needs a reconnect. |
items[].connected_by_person_idstring or nullrequired | The person who connected it, or null if they've left. |
items[].connected_atstring (date-time)required | When it was first connected. |
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 connected accounts
Everyone in the household can see what's connected. No credential is ever returned.
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list' \
-H "Cookie: rigel_session=$RIGEL_SESSION"const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list", {
headers: {
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
});
const data = await response.json();GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.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_01M6V9CSTR7FX5F933B1WVA0H3
{
"items": [
{
"id": "int_01M6V9CSTFHJQXMXWK5DX51W4V",
"service": "google_calendar",
"name": "Google Calendar",
"what_it_can_do": "Sees your Google calendars and keeps the ones you link in step with Rigel, both ways.",
"app": "calendar",
"account_label": "ada.okafor@example.com",
"state": "connected",
"problem": null,
"connected_by_person_id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
"connected_at": "2026-11-07T15:17:52.590Z"
},
{
"id": "int_01M6V9CSTNJWMPDJYH543TTF7A",
"service": "gmail",
"name": "Gmail",
"what_it_can_do": "Reads the messages that match the labels or senders you choose. Never sends or deletes mail.",
"app": "email",
"account_label": "okafors.mail@example.com",
"state": "connected",
"problem": null,
"connected_by_person_id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
"connected_at": "2026-11-07T15:17:52.595Z"
},
{
"id": "int_01M6V9CSTQDH5WHAHGST73CA42",
"service": "google_drive",
"name": "Google Drive",
"what_it_can_do": "Reads the folders and files you choose to import. Never changes your Drive.",
"app": "documents",
"account_label": "ada.okafor@example.com",
"state": "connected",
"problem": null,
"connected_by_person_id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
"connected_at": "2026-11-07T15:17:52.599Z"
}
]
}List the accounts one app uses
app narrows the list to the accounts that app can use.
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list?app=email' \
-H "Cookie: rigel_session=$RIGEL_SESSION"const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list?app=email", {
headers: {
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
});
const data = await response.json();GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list?app=email HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01M6V9CSTTSB6E9NF8H83VE6EZ
{
"items": [
{
"id": "int_01M6V9CSTNJWMPDJYH543TTF7A",
"service": "gmail",
"name": "Gmail",
"what_it_can_do": "Reads the messages that match the labels or senders you choose. Never sends or deletes mail.",
"app": "email",
"account_label": "okafors.mail@example.com",
"state": "connected",
"problem": null,
"connected_by_person_id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
"connected_at": "2026-11-07T15:17:52.595Z"
}
]
}For Rigel#
Rigel's tool for this query is household_integration_list. Rigel runs this on its own, then says what it did. The agent guide has the rest.