/api/v1/households/{householdId}/recipesRead the household's own shelf a page at a time: its own and generated recipes, and every base recipe — or one of those sources alone
total counts every match for the filter, and nextCursor — opaque — is handed back as ?cursor= for the next page; null on the last. A cursor cut under another sort, or one nobody handed out, is a 400. The shared starter library is not in this list since #2828: read it from GET …/recipes/library.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
householdId | path | string (uuid) | Required | — |
q | query | string | — | — |
category | query | MealCategory[] | — | — |
favourites | query | boolean | — | — |
isBase | query | boolean | — | — |
isDinner | query | boolean | — | — |
source | query | RecipeSource | — | — |
sort | query | RecipeListSort | — | — |
maxTotalMinutes | query | integer (int32) | — | — |
cursor | query | string | — | — |
limit | query | integer (int32) | — | — |
Responses
- 200OK
application/jsonPagedRecipeListItemResponse- 400Bad Request
application/problem+jsonProblemDetails- 401No session, or the session is no longer valid.
application/problem+jsonProblemDetails- 426The build named in X-App-Version is below its platform's version floor (ADR-070). Problem type app-version-unsupported; the only way forward is the store. Callers without the header are never turned away.
application/problem+jsonProblemDetails- 429Too many calls in the window; Retry-After says how long.
application/problem+jsonProblemDetails- Headers
Retry-After- — Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.
Example
curl -b "bryti_session=…" \
"https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes"Example response
application/json{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"category": {},
"source": {},
"tags": [
"string"
],
"activeMinutes": 0,
"totalMinutes": 0,
"basePortions": 0,
"isFamilyFavorite": false,
"favoriteMemberIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"timesCooked": 0,
"excludedFromPlanning": false,
"isBase": false,
"isDinner": true,
"isCore": false
}
],
"nextCursor": "string",
"total": 0
}