Skip to content
Rigel docs
Open Rigel

What changed an item

inventory.item.history

GET/api/v1/households/{household_id}/queries/inventory.item.history

  • Query
  • Rigel runs it

What changed an item and who or what changed it, newest first, from the household's audit trail: added, moved, amount changed, seen, picture or date changed, removed. A removed item still has history. This reads the command log, which only the server keeps, so it runs over HTTP and for the agent but not against a device's local copy.

Parameters#

What changed an item: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

item_idquerystringrequired

A inventory item ID, such as inv_01JC0000000000000000000000.

limitqueryintegeroptional

How many entries to return, 1–100. Defaults to 20.

1 to 100Default 20

Response#

200 The answer.

What changed an item: response fields
FieldDescription
entriesarray of objectsrequired
entries[].atstring (date-time)required

When the change was made.

entries[].commandstringrequired

The command that made it, such as inventory.item.move.

entries[].whatstringrequired

What changed, in words: "Moved to Fridge".

entries[].bystringrequired

Who or what did it: "Nia", "Rigel, for Nia".

entries[].batchbooleanrequired

Whether it was one of several changes applied together from a photo or a list.

item_existsbooleanrequired

Whether the item still exists; false once it's been removed.

Errors#

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

What changed an item: 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.

What happened to an item

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

{
  "entries": [
    {
      "at": "2026-11-07T15:17:52.150Z",
      "command": "inventory.item.set_photo",
      "what": "Picture changed",
      "by": "Ada Okafor",
      "batch": false
    },
    {
      "at": "2026-11-07T15:17:52.148Z",
      "command": "inventory.location.confirm",
      "what": "Seen",
      "by": "Ada Okafor",
      "batch": false
    },
    {
      "at": "2026-11-07T15:17:52.137Z",
      "command": "inventory.item.adjust",
      "what": "Amount changed from 3 cans to 2 cans",
      "by": "Ada Okafor",
      "batch": false
    },
    {
      "at": "2026-11-07T15:17:52.086Z",
      "command": "inventory.item.add",
      "what": "Added",
      "by": "Ada Okafor",
      "batch": false
    }
  ],
  "item_exists": true
}

For Rigel#

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