Skip to content
Rigel docs
Open Rigel

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#

What outside accounts are connected: parameters
FieldDescription
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.

What outside accounts are connected: response fields
FieldDescription
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.

What outside accounts are connected: errors
StatusCodeWhen
400validation_failedA field is missing, misspelled or out of range. details.fields lists each problem.
401unauthenticatedThe request has no valid session.
404not_foundThe 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.

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
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();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Response, 200
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.

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list?app=email' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
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();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/household.integration.list?app=email HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Response, 200
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.

Rigel is in early access, and sign-up is by invitation. Open Rigel