Skip to content
Rigel docs
Open Rigel

What people ate (or are planned to eat) between two dates

meals.eaten.list

GET/api/v1/households/{household_id}/queries/meals.eaten.list

  • Query
  • Rigel runs it

Meals from from to to, oldest first, up to 84 days apart. With person_id, only meals that person is in (each meal still lists everyone in it). Use it to see what the family has eaten lately, for variety and for the usual week.

Parameters#

What people ate (or are planned to eat) between two dates: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

fromquerystring (date)required

The first date, YYYY-MM-DD.

toquerystring (date)required

The last date, YYYY-MM-DD, no more than 84 days after from.

person_idquerystringoptional

Only meals this person is in.

Response#

200 The answer.

What people ate (or are planned to eat) between two dates: response fields
FieldDescription
mealsarray of objectsrequired

The meals in range.

meals[].idstringrequired

A meal ID, such as mel_01JC0000000000000000000000.

meals[].datestring (date)required

The day of the meal, YYYY-MM-DD.

meals[].slotone of: breakfast, lunch, dinner, snackrequired

Which meal of the day: breakfast, lunch, dinner or snack.

meals[].labelstringrequired

The meal in a few words, such as "Tue dinner".

meals[].notestring or nullrequired

The kitchen note on the meal, or null.

meals[].peoplearray of objectsrequired

Who the meal is for, in family order.

meals[].people[].idstringrequired

A person ID, such as per_01JC0000000000000000000000.

meals[].people[].namestringrequired

What the family calls them.

meals[].dishesarray of objectsrequired

The dishes, in the meal's order.

meals[].dishes[].idstringrequired

A dish ID, such as dsh_01JC0000000000000000000000.

meals[].dishes[].namestringrequired

The dish's name.

meals[].dishes[].is_awaybooleanrequired

Eaten away from home, so it needs no groceries.

meals[].dishes[].icon_file_idstring or nullrequired

The dish's icon, or null until one is generated.

meals[].dishes[].recipe_idstring or nullrequired

The recipe the dish is made from, or null.

meals[].dishes[].recipe_titlestring or nullrequired

That recipe's title, or null.

meals[].icon_file_idstring or nullrequired

The icon to show for the meal, or null for a neutral plate.

meals[].is_awaybooleanrequired

Every dish is eaten away from home.

Errors#

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

What people ate (or are planned to eat) between two dates: 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 the family ate last week

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/meals.eaten.list?from=2026-10-31&to=2026-11-06' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/meals.eaten.list?from=2026-10-31&to=2026-11-06", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/meals.eaten.list?from=2026-10-31&to=2026-11-06 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_01M6V9CSH2VPFE963VDN8BZTQ6

{
  "meals": [
    {
      "id": "mel_01M6V9CSFPK69RRZZ3DHRR53T4",
      "date": "2026-11-06",
      "slot": "dinner",
      "label": "Fri dinner",
      "note": "Breakfast for dinner.",
      "people": [
        {
          "id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
          "name": "Ada Okafor"
        },
        {
          "id": "per_01M6V9CS744BQQH188FS6CXY9W",
          "name": "Ben Okafor"
        },
        {
          "id": "per_01M6V9CS79TMYHDAM7FTA9ZK3Z",
          "name": "Nia"
        },
        {
          "id": "per_01M6V9CS7CDAEP5VDA5T8R9TG6",
          "name": "Theo"
        }
      ],
      "dishes": [
        {
          "id": "dsh_01M6V9CSFPC1X45XZ3A8P6N25F",
          "name": "Saturday pancakes",
          "is_away": false,
          "icon_file_id": null,
          "recipe_id": "rcp_01M6V9CSDDZVYFRVFNA4X5BSMZ",
          "recipe_title": "Saturday pancakes"
        }
      ],
      "icon_file_id": null,
      "is_away": false
    }
  ]
}

What Nia ate last week

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/meals.eaten.list?from=2026-10-31&to=2026-11-06&person_id=per_01M6V9CS79TMYHDAM7FTA9ZK3Z' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/meals.eaten.list?from=2026-10-31&to=2026-11-06&person_id=per_01M6V9CS79TMYHDAM7FTA9ZK3Z", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/meals.eaten.list?from=2026-10-31&to=2026-11-06&person_id=per_01M6V9CS79TMYHDAM7FTA9ZK3Z 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_01M6V9CSH49KBM6XW8QJ8AS2PJ

{
  "meals": [
    {
      "id": "mel_01M6V9CSFPK69RRZZ3DHRR53T4",
      "date": "2026-11-06",
      "slot": "dinner",
      "label": "Fri dinner",
      "note": "Breakfast for dinner.",
      "people": [
        {
          "id": "per_01M6V9CS6RX26JK5KVYGRN22D2",
          "name": "Ada Okafor"
        },
        {
          "id": "per_01M6V9CS744BQQH188FS6CXY9W",
          "name": "Ben Okafor"
        },
        {
          "id": "per_01M6V9CS79TMYHDAM7FTA9ZK3Z",
          "name": "Nia"
        },
        {
          "id": "per_01M6V9CS7CDAEP5VDA5T8R9TG6",
          "name": "Theo"
        }
      ],
      "dishes": [
        {
          "id": "dsh_01M6V9CSFPC1X45XZ3A8P6N25F",
          "name": "Saturday pancakes",
          "is_away": false,
          "icon_file_id": null,
          "recipe_id": "rcp_01M6V9CSDDZVYFRVFNA4X5BSMZ",
          "recipe_title": "Saturday pancakes"
        }
      ],
      "icon_file_id": null,
      "is_away": false
    }
  ]
}

For Rigel#

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