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#
| Field | Description |
|---|---|
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. |
Response#
200 The answer.
| Field | Description |
|---|---|
entriesarray of objectsrequired | |
entries[].atstring (date-time)required | When the change was made. |
entries[].commandstringrequired | The command that made it, such as |
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.
| 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.
What happened to an item
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/inventory.item.history?item_id=inv_01M6V9CSAPM8JH7W1W1YEBHPRS' \
-H "Cookie: rigel_session=$RIGEL_SESSION"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();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>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.