Skip to content
Rigel docs
Open Rigel

Everything the household knows about its people

family.knowledge.get

GET/api/v1/households/{household_id}/queries/family.knowledge.get

  • Query
  • Rigel runs it

Each person with their age and notes, newest first, plus the household's own notes under everyone. With app, notes for other apps are left out; notes for no app are always included.

Parameters#

Everything the household knows about its people: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

appqueryone of: meals, recipes, shopping, inventory, calendar, email, tasks, documents, chat, maintenanceoptional

Only include app-specific notes for this app.

Response#

200 The answer.

Everything the household knows about its people: response fields
FieldDescription
everyonearray of objectsrequired

Notes about the whole household.

everyone[].idstringrequired

A family note ID, such as fnt_01JC0000000000000000000000.

everyone[].textstringrequired

The note, as written.

everyone[].appone of: meals, recipes, shopping, inventory, calendar, email, tasks, documents, chat, maintenance, null or nullrequired

The app it only matters to, or null for everywhere.

everyone[].noted_atstring (date-time)required

When this information was given.

everyone[].noted_agostringrequired

How long ago, in words, such as "3 weeks ago".

peoplearray of objectsrequired
people[].idstringrequired

A person ID, such as per_01JC0000000000000000000000.

people[].namestringrequired

What the family calls them.

people[].agestring or nullrequired

Their age in words, such as "3 years old", or null without a birth date.

people[].signs_inbooleanrequired

Whether they have an account and sign in.

people[].notesarray of objectsrequired
people[].notes[].idstringrequired

A family note ID, such as fnt_01JC0000000000000000000000.

people[].notes[].textstringrequired

The note, as written.

people[].notes[].appone of: meals, recipes, shopping, inventory, calendar, email, tasks, documents, chat, maintenance, null or nullrequired

The app it only matters to, or null for everywhere.

people[].notes[].noted_atstring (date-time)required

When this information was given.

people[].notes[].noted_agostringrequired

How long ago, in words, such as "3 weeks ago".

Errors#

Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.

Everything the household knows about its people: 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.

Everything Rigel knows about the family

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get 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_01M6V9CS7SQ4S1P84SQZWMS553

{
  "everyone": [
    {
      "id": "fnt_01M6V9CS7MX4PM9SC6Z6NVA2EA",
      "text": "Saturday mornings are for pancakes.",
      "app": null,
      "noted_at": "2026-11-07T15:17:51.989Z",
      "noted_ago": "just now"
    },
    {
      "id": "fnt_01M6V9CS7KC15H3QT502N0J25K",
      "text": "Dinner is at 6:00 pm on weeknights.",
      "app": null,
      "noted_at": "2026-11-07T15:17:51.988Z",
      "noted_ago": "just now"
    }
  ],
  "people": [
    {
      "id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
      "name": "Ada Okafor",
      "age": null,
      "signs_in": true,
      "notes": []
    },
    {
      "id": "per_01M6V9CS744BQQH188FS6CXY9W",
      "name": "Ben Okafor",
      "age": null,
      "signs_in": false,
      "notes": [
        {
          "id": "fnt_01M6V9CS7HSE0X6FSYVAC690KF",
          "text": "Ben doesn't eat shellfish.",
          "app": "meals",
          "noted_at": "2026-11-07T15:17:51.986Z",
          "noted_ago": "just now"
        }
      ]
    },
    {
      "id": "per_01M6V9CS79TMYHDAM7FTA9ZK3Z",
      "name": "Nia",
      "age": "8 years old",
      "signs_in": false,
      "notes": [
        {
          "id": "fnt_01M6V9CS7GXFHGYGZ4CFZG4J38",
          "text": "Nia wants to learn to bake. She likes measuring the flour.",
          "app": "recipes",
          "noted_at": "2026-11-07T15:17:51.985Z",
          "noted_ago": "just now"
        }
      ]
    },
    {
      "id": "per_01M6V9CS7CDAEP5VDA5T8R9TG6",
      "name": "Theo",
      "age": "5 years old",
      "signs_in": false,
      "notes": [
        {
          "id": "fnt_01M6V9CS7E9NAJKGNWG7KBC8P4",
          "text": "Theo isn't into spicy food lately. Mild chili is fine.",
          "app": "meals",
          "noted_at": "2026-11-07T15:17:51.990Z",
          "noted_ago": "just now"
        }
      ]
    }
  ]
}

What Rigel knows about meals

The same answer, only the notes tied to one app, plus the ones for every app.

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get?app=meals' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get?app=meals", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get?app=meals 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_01M6V9CS7VKZ8NVGR4EEV9F4CR

{
  "everyone": [
    {
      "id": "fnt_01M6V9CS7MX4PM9SC6Z6NVA2EA",
      "text": "Saturday mornings are for pancakes.",
      "app": null,
      "noted_at": "2026-11-07T15:17:51.989Z",
      "noted_ago": "just now"
    },
    {
      "id": "fnt_01M6V9CS7KC15H3QT502N0J25K",
      "text": "Dinner is at 6:00 pm on weeknights.",
      "app": null,
      "noted_at": "2026-11-07T15:17:51.988Z",
      "noted_ago": "just now"
    }
  ],
  "people": [
    {
      "id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
      "name": "Ada Okafor",
      "age": null,
      "signs_in": true,
      "notes": []
    },
    {
      "id": "per_01M6V9CS744BQQH188FS6CXY9W",
      "name": "Ben Okafor",
      "age": null,
      "signs_in": false,
      "notes": [
        {
          "id": "fnt_01M6V9CS7HSE0X6FSYVAC690KF",
          "text": "Ben doesn't eat shellfish.",
          "app": "meals",
          "noted_at": "2026-11-07T15:17:51.986Z",
          "noted_ago": "just now"
        }
      ]
    },
    {
      "id": "per_01M6V9CS79TMYHDAM7FTA9ZK3Z",
      "name": "Nia",
      "age": "8 years old",
      "signs_in": false,
      "notes": []
    },
    {
      "id": "per_01M6V9CS7CDAEP5VDA5T8R9TG6",
      "name": "Theo",
      "age": "5 years old",
      "signs_in": false,
      "notes": [
        {
          "id": "fnt_01M6V9CS7E9NAJKGNWG7KBC8P4",
          "text": "Theo isn't into spicy food lately. Mild chili is fine.",
          "app": "meals",
          "noted_at": "2026-11-07T15:17:51.990Z",
          "noted_ago": "just now"
        }
      ]
    }
  ]
}

A query with a bad parameter

Queries validate their parameters the same way, and name the allowed values.

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get?app=dancing' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get?app=dancing", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/family.knowledge.get?app=dancing HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Response, 400
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Request-Id: req_01M6V9CTCY7SVKT7GN6CV8G50C

{
  "error": {
    "code": "validation_failed",
    "message": "The request has invalid fields. No changes were applied.",
    "details": {
      "fields": [
        {
          "field": "app",
          "problem": "Invalid option: expected one of \"meals\"|\"recipes\"|\"shopping\"|\"inventory\"|\"calendar\"|\"email\"|\"tasks\"|\"documents\"|\"chat\"|\"maintenance\""
        }
      ]
    },
    "recovery": "Correct each field listed in details.fields, then send the request again.",
    "request_id": "req_01M6V9CTCY7SVKT7GN6CV8G50C"
  }
}

For Rigel#

Rigel's tool for this query is family_knowledge_get. 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