Skip to content
Rigel docs
Open Rigel

Find dishes by name

meals.dish.search

GET/api/v1/households/{household_id}/queries/meals.dish.search

  • Query
  • Rigel runs it

Dishes whose name contains the text (ignoring case), names that start with it first, then the most often planned. Use it before planning to reuse an existing dish instead of making a duplicate.

Parameters#

Find dishes by name: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

textquerystringrequired

Part of a dish name.

1 to 120 characters
limitqueryintegeroptional

How many dishes to return, 1 to 100.

1 to 100Default 20

Response#

200 The answer.

Find dishes by name: response fields
FieldDescription
dishesarray of objectsrequired

Matching dishes.

dishes[].idstringrequired

A dish ID, such as dsh_01JC0000000000000000000000.

dishes[].namestringrequired

The dish's name.

dishes[].is_awaybooleanrequired

Eaten away from home, so it needs no groceries.

dishes[].icon_file_idstring or nullrequired

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

dishes[].recipe_idstring or nullrequired

The recipe the dish is made from, or null.

dishes[].recipe_titlestring or nullrequired

That recipe's title, or null.

dishes[].times_plannedintegerrequired

How many meals have this dish.

dishes[].last_planned_onstring (date) or nullrequired

The latest date a meal has it, or null if none does.

Errors#

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

Find dishes by name: 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.

Search dishes for tacos

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

{
  "dishes": [
    {
      "id": "dsh_01M6V9CSF42115AECDV14HYQ9G",
      "name": "Chicken thigh tacos",
      "is_away": false,
      "icon_file_id": null,
      "recipe_id": null,
      "recipe_title": null,
      "times_planned": 1,
      "last_planned_on": "2026-11-10"
    }
  ]
}

For Rigel#

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