Oppskrifter

Husholdningens oppskriftsbok.20 operasjoner

Hoder på hvert svar

Hvert svar på denne siden har disse hodene.
X-Trace-Id
— The W3C trace id of this request — the same id in the log and in the traceId of a problem. Quote it when reporting.
Server-Timing
— Where the time went: total, db;dur=…;desc="N queries", and every step the handler named (ADR-163).
X-Diagnostics
— Only when the request asked with X-Diagnostics: 1 or ?diagnostics=1: the same breakdown as one JSON object, with the trace id (ADR-163).

Operasjoner

GET/api/v1/households/{householdId}/recipes

Read 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

Any member. One page of rows — id, title, category, minutes, portions, tags, picture and the household's own marks (favorites, times cooked, excluded from planning). The ingredients, the steps, the named parts and the folded base recipes are one GET …/recipes/{id} away (#2960). ?q= matches the title and the ingredient names, case-insensitively; ?category= is a MealCategory and may be repeated — any of them (#3177); ?maxTotalMinutes= keeps the dishes at most that many minutes from start to table (#3177); ?favourites=true keeps only the dishes the household has marked; ?isBase= and ?isDinner= keep doughs or dinners only; ?source= is one RecipeSource and keeps that section alone — User is the book's «Bare egne», the household's own writing and its own base recipes (#3055); ?sort= is Title (default) or ActiveMinutes. ?limit= is 1–100, 50 by default. The order is the shelf's own — dinners before base recipes, the household's own before generated, then the sort — so the reader's sections stay whole across pages. 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.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
qquerystring——
categoryqueryMealCategory[]——
favouritesqueryboolean——
isBasequeryboolean——
isDinnerqueryboolean——
sourcequeryRecipeSource——
sortqueryRecipeListSort——
maxTotalMinutesqueryinteger (int32)——
cursorquerystring——
limitqueryinteger (int32)——

Svar

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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes"

Eksempel på svar

200application/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
}
POST/api/v1/households/{householdId}/recipes

Add a recipe of the household's own

Adults only; a Junior member gets 403 — writing the shared cookbook is household-shaping (#980). Created recipes are always Source = User.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSaveRecipeRequest

Svar

201Created
application/jsonRecipeResponse
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes" \
  -H "Content-Type: application/json" \
  -d '{"title":"string","category":"Fish","ingredients":[{"foodKey":"string","displayName":"string","quantity":0,"unit":"string","isOptional":false}],"steps":["string"],"tags":["string"],"activeMinutes":0,"totalMinutes":0,"basePortions":0}'

Eksempel på svar

201application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}
GET/api/v1/households/{householdId}/recipes/facets

Count what each of the book's filters would leave, over the whole book

Any member. The numbers the book's «Filtrer» sheet shows (#3177): total for the whole filter, and for each group — every category the book holds, the time-to-table steps (any, ≤ 20, ≤ 30, ≤ 45 minutes), the three sources and the favourites — how many dishes that choice would leave under the word typed and the other groups' choices. Takes the list's own ?q=, ?category= (repeatable), ?favourites= and ?maxTotalMinutes=, and ?source= as All (default), Own or Library — the household's shelf and the starter library together, the household's own writing, or the library alone.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
qquerystring——
categoryqueryMealCategory[]——
favouritesqueryboolean——
maxTotalMinutesqueryinteger (int32)——
sourcequeryRecipeBookSource——

Svar

200OK
application/jsonRecipeFacetsResponse
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/facets"

Eksempel på svar

200application/json
{
  "total": 0,
  "categories": [
    {
      "category": {},
      "count": 0
    }
  ],
  "times": [
    {
      "maxTotalMinutes": 0,
      "count": 0
    }
  ],
  "sources": {
    "all": 0,
    "own": 0,
    "library": 0
  },
  "favourites": 0
}
GET/api/v1/households/{householdId}/recipes/tags

List the tags the household has used on its own recipes

Any member. Distinct, trimmed, lowercased and sorted — the vocabulary the editor's autocomplete offers. The shared library's tags are not in it: they are Bryti's words, not this household's.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonstring[]
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/tags"

Eksempel på svar

200application/json
[
  "string"
]
GET/api/v1/households/{householdId}/recipes/library

Read the shared starter library a page at a time, searched and sorted on the server

Any member. Only the shared seed recipes (never the household's own). ?q= matches the title and the ingredient names, case-insensitively; ?category= is a MealCategory and may be repeated — any of them (#3177); ?maxTotalMinutes= keeps the dishes at most that many minutes from start to table (#3177); ?favourites=true keeps only the dishes this household has marked; ?sort= is Default (by title), Title or Quickest (active minutes, then title) — the enum's names, as ?category= takes the category's. ?limit= is 1–100, 50 by default. Each recipe carries the household's own marks like the list does, 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 (#2828).

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
qquerystring——
categoryqueryMealCategory[]——
favouritesqueryboolean——
sortqueryRecipeLibrarySort——
maxTotalMinutesqueryinteger (int32)——
cursorquerystring——
limitqueryinteger (int32)——

Svar

200OK
application/jsonPagedRecipeResponse
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/library"

Eksempel på svar

200application/json
{
  "items": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "string",
      "category": {},
      "source": {},
      "ingredients": [
        {}
      ],
      "steps": [
        "string"
      ],
      "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
}
GET/api/v1/households/{householdId}/recipes/{recipeId}

Read one recipe, with its linked base recipes folded in

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonRecipeResponse
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}
PATCH/api/v1/households/{householdId}/recipes/{recipeId}

Edit one of the household's own recipes

Adults only; a Junior member gets 403. The whole content is replaced. Only Source = User recipes can be edited — a seed or generated recipe answers 400 (save a variant instead). Null StepSections, References and IsBase keep what the recipe has; an empty list clears them (ADR-154 pt. 10). Every edit is recorded in the history.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSaveRecipeRequest

Svar

200OK
application/jsonRecipeResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X PATCH \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Content-Type: application/json" \
  -d '{"title":"string","category":"Fish","ingredients":[{"foodKey":"string","displayName":"string","quantity":0,"unit":"string","isOptional":false}],"steps":["string"],"tags":["string"],"activeMinutes":0,"totalMinutes":0,"basePortions":0}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}
DELETE/api/v1/households/{householdId}/recipes/{recipeId}

Delete one of the household's own or generated recipes

Adults only; a Junior member gets 403. Seed recipes cannot be deleted (400). 409 with code recipe_in_plan and the date when the recipe is a dinner still to come — swap that day out first (#1897, ADR-168). Days already past keep their history and do not block.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Svar

204No Content
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
application/problem+jsonProblemDetails
409Conflict
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X DELETE \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6"
GET/api/v1/households/{householdId}/recipes/{recipeId}/history

List a page of a recipe's edit history, newest first

Any member. Cursor-paged (ADR-292): 50 revisions by default, 100 at most, and Total is every revision the recipe has — what «Vis alle 12» says. Empty for a recipe nobody has edited since history was recorded. 400 on a limit out of range or a cursor this endpoint did not hand out.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—
cursorquerystring——
limitqueryinteger (int32)——

Svar

200OK
application/jsonPagedRecipeRevisionResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/history"

Eksempel på svar

200application/json
{
  "items": [
    {
      "version": 0,
      "changedAt": "2026-09-07T16:30:00Z",
      "changes": [
        {}
      ]
    }
  ],
  "nextCursor": "string",
  "total": 0
}
GET/api/v1/households/{householdId}/recipes/{recipeId}/fit

Check whether a recipe suits the household or one evening's table

Without date the whole household's constraints apply; with date, the people eating that evening. Says what a variant would swap or leave out, whether one can be made at all, and whether the household already saved one with that title (#742, ADR-072).

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—
datequerystring (date)——

Svar

200OK
application/jsonRecipeFitResponse
400The request could not be read as the route needs it: a body that is not the documented shape (a required field left out, a null where none is allowed, a value too long for its field), a parameter that does not parse, or a NUL character anywhere (#3540, #3541, #3543). Code validation_failed or value_too_long.
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/fit"

Eksempel på svar

200application/json
{
  "conflicts": [
    {
      "foodKey": "string",
      "displayName": "string",
      "isOptional": false,
      "constraint": "string",
      "constraintKind": "string",
      "memberNames": [
        "string"
      ],
      "substituteFoodKey": "string",
      "substituteDisplayName": "string",
      "removed": false,
      "note": "string"
    }
  ],
  "canMakeVariant": false,
  "variantTitle": "string",
  "existingVariantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
GET/api/v1/households/{householdId}/recipes/{recipeId}/tips

Read the kitchen tips that fit one recipe

Any member. At most three tips, best first, each judged to help with this dish as written: technique, preparation or rescue. Only Bryti's library recipes have any; the household's own and imported recipes get none. The text is Norwegian and carries no source (#3743).

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonRecipeTipsResponse
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/tips"

Eksempel på svar

200application/json
{
  "tips": [
    {
      "id": "string",
      "text": "string",
      "kind": "string"
    }
  ]
}
POST/api/v1/households/{householdId}/recipes/{recipeId}/variants

Save a variant of the recipe as the household's own

Adults only; a Junior member gets 403. Two kinds that never coincide: a swap the table needs (default — «uten melk», #742) or the tips the household marked as used in cook mode (FromTips, #696, ADR-076). Safe to retry: a variant with that title already saved is returned with AlreadyExisted = true rather than duplicated. With PlanOnDate the variant is also put on Date as that day's dinner. 400 when FromTips and PlanOnDate are combined, when the dish already suits the table, or when a conflict has no honest substitute.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdCreateRecipeVariantRequest

Svar

200OK
application/jsonRecipeVariantResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/variants" \
  -H "Content-Type: application/json" \
  -d '{"planOnDate":false}'

Eksempel på svar

200application/json
{
  "recipe": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "category": {},
    "source": {},
    "ingredients": [
      {}
    ],
    "steps": [
      "string"
    ],
    "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
  },
  "alreadyExisted": false,
  "plan": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "weekStartDate": "2026-09-07",
    "status": {},
    "plannerVersion": "string",
    "scoreBreakdown": {
      "key": 0
    },
    "entries": [
      {}
    ],
    "createdAt": "2026-09-07T16:30:00Z",
    "activatedAt": "2026-09-07T16:30:00Z",
    "fromStarterLibrary": false,
    "shoppingListStale": false
  }
}
PUT/api/v1/households/{householdId}/recipes/{recipeId}/favorite

Mark or unmark a recipe as a favorite for one member or the whole household

Any member, Junior included. Null HouseholdMemberId means the whole household. Safe to retry: setting an existing mark or clearing a missing one is a no-op. 400 when the member is outside this household.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSetRecipeFavoriteRequest

Svar

200OK
application/jsonRecipeResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X PUT \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/favorite" \
  -H "Content-Type: application/json" \
  -d '{"householdMemberId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","favorite":false}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}
PUT/api/v1/households/{householdId}/recipes/{recipeId}/exclusion

Tell the planner never to propose this recipe again, or undo that

Adults only; a Junior member gets 403. Per household — the recipe stays in the cookbook, marked, with «Angre» (#740, ADR-075). Safe to retry: idempotent both ways.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSetRecipeExclusionRequest

Svar

200OK
application/jsonRecipeResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X PUT \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/exclusion" \
  -H "Content-Type: application/json" \
  -d '{"excluded":false}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}
GET/api/v1/households/{householdId}/recipes/{recipeId}/references/{referenceId}/candidates

List a page of the recipes a reference could be linked to, by name

Adults only; a Junior member gets 403. Cursor-paged (ADR-292), ordered by title. Kind picks which of the sheet's three lists: Suggestions is the normalised-title match on the reference's own label («Er det denne?»), Bases is the household's base recipes, and All — the default — is everything it can see except the dish itself, for the search box. q matches the title, case-insensitively. 400 on a limit out of range or a cursor cut under another kind.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—
referenceIdpathstring (uuid)Påkrevd—
qquerystring——
kindqueryReferenceCandidateKind——
cursorquerystring——
limitqueryinteger (int32)——

Svar

400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/references/3fa85f64-5717-4562-b3fc-2c963f66afa6/candidates"

Eksempel på svar

200application/json
{
  "items": [
    {
      "recipeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "string",
      "isBase": false,
      "titleMatches": false
    }
  ],
  "nextCursor": "string",
  "total": 0
}
POST/api/v1/households/{householdId}/recipes/{recipeId}/sections/extract

Lift a named part of a recipe out into a base recipe of its own

Adults only; a Junior member gets 403. Only on the household's own recipes. The part becomes a base recipe and the host keeps a linked reference in its place, in one transaction (ADR-154 pt. 9). 400 when the part has no ingredients or no steps of its own; 404 when no part has that name.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdExtractSectionRequest

Svar

200OK
application/jsonExtractSectionResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/sections/extract" \
  -H "Content-Type: application/json" \
  -d '{"section":"string"}'

Eksempel på svar

200application/json
{
  "host": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "category": {},
    "source": {},
    "ingredients": [
      {}
    ],
    "steps": [
      "string"
    ],
    "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
  },
  "base": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "category": {},
    "source": {},
    "ingredients": [
      {}
    ],
    "steps": [
      "string"
    ],
    "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
  }
}
GET/api/v1/households/{householdId}/recipes/{recipeId}/image

Read the household's own photograph of a recipe

Any member. The address a recipe's ImageUrl names when the household put the picture there itself; served only to the household, never linked elsewhere. 404 when the recipe has no photograph of the household's own.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Svar

401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/image"
POST/api/v1/households/{householdId}/recipes/{recipeId}/image

Put a photograph of the dish on one of the household's own recipes

Adults only; a Junior member gets 403. JSON body: a base64 JPEG whose long side is at most 2 000 px, 5 MB at most — the apps scale and convert HEIC and PNG before sending. 400 with code image_not_jpeg or image_too_large otherwise, and recipe_not_own for a starter-library or generated recipe (save a variant first). The camera's metadata is removed; the file is the household's and replaces any picture the recipe had (ADR-343 (#3181)).

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSetRecipeImageRequest

Svar

200OK
application/jsonRecipeResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/image" \
  -H "Content-Type: application/json" \
  -d '{"imageBase64":"string","contentType":"string"}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}
DELETE/api/v1/households/{householdId}/recipes/{recipeId}/image

Take the photograph off one of the household's own recipes

Adults only; a Junior member gets 403. Removes the picture whether the household took it or the import found it; the household's own file is deleted. 400 with code recipe_not_own for a recipe that is not the household's own.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
recipeIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonRecipeResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
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
Hoder
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.

Eksempel

curl -b "bryti_session=…" \
  -X DELETE \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/recipes/3fa85f64-5717-4562-b3fc-2c963f66afa6/image"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "category": "Fish",
  "source": "Seed",
  "ingredients": [
    {
      "foodKey": "string",
      "displayName": "string",
      "quantity": 0,
      "unit": "string",
      "isOptional": false
    }
  ],
  "steps": [
    "string"
  ],
  "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
}

Skjema

BabyPortionFit

Type

Verdier

NotApplicablePossibleNotPossible

CandidateContent

FeltTypePåkrevd
titlestringPåkrevd
rationalestringPåkrevd
ingredientsCandidateIngredient[]Påkrevd
stepsstring[]Påkrevd
activeMinutesinteger (int32)Påkrevd
totalMinutesinteger (int32)Påkrevd
portionsinteger (int32)Påkrevd
tagsstring[]Påkrevd
leftoverPotentialstringPåkrevd
confidencenumber (double)Påkrevd
assumptionsstring[]Påkrevd
safetyWarningsstring[]Påkrevd
nutritionCandidateNutrition | null—
timersCandidateStepTimer[] | null—
sectionsCandidateSection[] | null—

CandidateIngredient

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
quantitynumber (double)Påkrevd
unitstringPåkrevd
isOptionalbooleanPåkrevd
missingbooleanPåkrevd
displayQuantitynumber (double) | null—
displayUnitstring | null—

CandidateNutrition

FeltTypePåkrevd
kcalPerPortioninteger (int32)Påkrevd
proteinGramsnumber (double)Påkrevd
fibreGramsnumber (double)Påkrevd
addedSugarGramsnumber (double)Påkrevd
saltGramsnumber (double)Påkrevd
fruitVegPortionsnumber (double)Påkrevd
coveragenumber (double)Påkrevd

CandidatePrice

FeltTypePåkrevd
classPriceClassPåkrevd
perPortionNoknumber (double) | nullPåkrevd
sourcePriceSourcePåkrevd
coveragenumber (double)Påkrevd

CandidateSection

FeltTypePåkrevd
namestring | nullPåkrevd
kindRecipeSectionKindPåkrevd
ingredientsCandidateIngredient[]Påkrevd
stepsstring[]Påkrevd
timersCandidateStepTimer[] | nullPåkrevd
sourceRecipeIdstring (uuid) | nullPåkrevd
sourceRecipeTitlestring | nullPåkrevd

CandidateStepTimer

FeltTypePåkrevd
stepinteger (int32)Påkrevd
minutesinteger (int32)Påkrevd
namestringPåkrevd

CreateRecipeVariantRequest

FeltTypePåkrevd
datestring (date) | null—
planOnDateboolean—
fromTipsVariantFromTipsRequest | null—

ExtractSectionRequest

FeltTypePåkrevd
sectionstringPåkrevd
titlestring | null—

ExtractSectionResponse

FeltTypePåkrevd
hostRecipeResponsePåkrevd
baseRecipeResponsePåkrevd

MealCandidateResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
householdIdstring (uuid)Påkrevd
targetDatestring (date)Påkrevd
categoryMealCategoryPåkrevd
contentCandidateContentPåkrevd
scoresmapPåkrevd
createdAtstring (date-time)Påkrevd
recipeIdstring (uuid) | null—
imageUrlstring | null—
priceCandidatePrice | null—

MealCategory

Type

Verdier

FishMeatPoultryVegetarianVeganSoupPastaTacoLeftoversOther

OutcomeReason

Type

Verdier

UnexpectedEventMissingIngredientNotEnoughTimeTooTiredNotAppealingIllnessPlansChangedOtherDidNotLike

eller null

OutcomeStatus

Type

Verdier

CookedCookedWithChangesNotCookedAteElsewhere

PagedRecipeListItemResponse

FeltTypePåkrevd
itemsRecipeListItemResponse[]Påkrevd
nextCursorstring | nullPåkrevd
totalinteger (int32) | nullPåkrevd

PagedRecipeResponse

FeltTypePåkrevd
itemsRecipeResponse[]Påkrevd
nextCursorstring | nullPåkrevd
totalinteger (int32) | nullPåkrevd

PagedRecipeRevisionResponse

FeltTypePåkrevd
itemsRecipeRevisionResponse[]Påkrevd
nextCursorstring | nullPåkrevd
totalinteger (int32) | nullPåkrevd

PagedReferenceLinkCandidateResponse

FeltTypePåkrevd
itemsReferenceLinkCandidateResponse[]Påkrevd
nextCursorstring | nullPåkrevd
totalinteger (int32) | nullPåkrevd

PlanDeviationKind

Type

Verdier

BentSoftNearMissLeftOpenHandPicked

PlanDeviationOptionResponse

FeltTypePåkrevd
codestringPåkrevd
datestring (date) | null—
categorystring | null—
ruleIdstring (uuid) | null—

PlanDeviationResponse

FeltTypePåkrevd
kindPlanDeviationKindPåkrevd
rulePlanDeviationRulePåkrevd
ruleIdstring (uuid) | nullPåkrevd
datestring (date) | nullPåkrevd
categorystring | nullPåkrevd
targetinteger (int32) | nullPåkrevd
actualinteger (int32) | nullPåkrevd
minutesinteger (int32) | nullPåkrevd
reasonstringPåkrevd
optionsPlanDeviationOptionResponse[]Påkrevd
ingredientstring | null—
memberNamestring | null—
constraintKindstring | null—
lockedByHouseholdboolean | null—
capSpentboolean | null—
priceCeilingPriceCeiling | null—

PlanDeviationRule

Type

Verdier

CategoryFrequencyMaximumActiveCookingTimeCalendarCapCategoryOnDayCategoryExcludedDaysHardConstraintBabySafePortionDietaryPreferencePriceClassOnDaysRepeatAfterDays

PlanEntryAdaptationResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
fromFoodKeystringPåkrevd
fromDisplayNamestringPåkrevd
toFoodKeystringPåkrevd
toDisplayNamestringPåkrevd
quantitynumber (double)Påkrevd
unitstringPåkrevd
notestring | nullPåkrevd

PlanEntryResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
datestring (date)Påkrevd
entryTypePlanEntryTypePåkrevd
isLockedbooleanPåkrevd
portionsinteger (int32)Påkrevd
candidateMealCandidateResponse | nullPåkrevd
outcomeOutcomeStatus | null—
outcomeReasonOutcomeReason | null—
outcomeFollowedUpAtstring (date-time) | null—
leftoverFromDatesstring (date)[] | null—
leftoverPortionsinteger (int32) | null—
lastModifiedByUserIdstring (uuid) | null—
lastModifiedByNamestring | null—
lastModifiedAtstring (date-time) | null—
servingNotesServingNoteResponse[] | null—
servingSummariesServingSummaryResponse[] | null—
usedTipIndexesinteger (int32)[] | null—
servingTimestring | null—
adaptationsPlanEntryAdaptationResponse[] | null—
frozenBabyPortionsinteger (int32) | null—
newFromRunboolean | null—

PlanEntryType

Type

Verdier

CookAtHomeEatingOutNoDinnerPlanLeftovers

PlanStatus

Type

Verdier

DraftActiveSuperseded

PriceCeiling

Type

Verdier

CheapCheapOrMid

PriceClass

Type

Verdier

CheapMidExpensive

PriceSource

Type

Verdier

ObservedCatalogueTableUnknown

ProblemDetails

FeltTypePåkrevd
typestring | null—
titlestring | null—
statusinteger (int32) | null—
detailstring | null—
instancestring | null—
codestring | null—

RecipeBookSource

Type

Verdier

AllOwnLibrary

eller null

RecipeCategoryFacet

FeltTypePåkrevd
categoryMealCategoryPåkrevd
countinteger (int32)Påkrevd

RecipeChange

FeltTypePåkrevd
fieldRecipeChangeFieldPåkrevd
detailstring | nullPåkrevd

RecipeChangeField

Type

Verdier

TitleCategoryIngredientsStepsTagsTimesPortionsSectionsReferencesBaseDinner

RecipeFacetsResponse

FeltTypePåkrevd
totalinteger (int32)Påkrevd
categoriesRecipeCategoryFacet[]Påkrevd
timesRecipeTimeFacet[]Påkrevd
sourcesRecipeSourceFacetsPåkrevd
favouritesinteger (int32)Påkrevd

RecipeFitConflictResponse

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
isOptionalbooleanPåkrevd
constraintstringPåkrevd
constraintKindstringPåkrevd
memberNamesstring[]Påkrevd
substituteFoodKeystring | nullPåkrevd
substituteDisplayNamestring | nullPåkrevd
removedbooleanPåkrevd
notestring | nullPåkrevd

RecipeFitResponse

FeltTypePåkrevd
conflictsRecipeFitConflictResponse[]Påkrevd
canMakeVariantbooleanPåkrevd
variantTitlestring | nullPåkrevd
existingVariantIdstring (uuid) | nullPåkrevd
softMatchesRecipeFitSoftMatchResponse[] | null—

RecipeFitSoftMatchResponse

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
constraintstringPåkrevd
memberNamesstring[]Påkrevd

RecipeIngredientDto

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
quantitynumber (double)Påkrevd
unitstringPåkrevd
isOptionalbooleanPåkrevd
functionTagsstring[] | null—
displayQuantitynumber (double) | null—
displayUnitstring | null—
sectionstring | null—

RecipeLibrarySort

Type

Verdier

DefaultTitleQuickest

eller null

RecipeLinkResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
titlestringPåkrevd

RecipeListItemResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
titlestringPåkrevd
categoryMealCategoryPåkrevd
sourceRecipeSourcePåkrevd
tagsstring[]Påkrevd
activeMinutesinteger (int32)Påkrevd
totalMinutesinteger (int32)Påkrevd
basePortionsinteger (int32)Påkrevd
isFamilyFavoritebooleanPåkrevd
favoriteMemberIdsstring (uuid)[]Påkrevd
sourceUrlstring | null—
sourceNamestring | null—
licensestring | null—
imageUrlstring | null—
timesCookedinteger (int32)—
lastCookedOnstring (date) | null—
excludedFromPlanningboolean—
isBaseboolean—
effectiveActiveMinutesinteger (int32) | null—
effectiveTotalMinutesinteger (int32) | null—
isDinnerboolean—
attributionstring | null—
isCoreboolean—

RecipeListSort

Type

Verdier

TitleActiveMinutes

eller null

RecipeReferenceDto

FeltTypePåkrevd
idstring (uuid) | nullPåkrevd
labelstringPåkrevd
sourceHintstring | nullPåkrevd
sectionstring | nullPåkrevd
positioninteger (int32)Påkrevd
linkedRecipeIdstring (uuid) | nullPåkrevd
linkedRecipeTitlestring | null—

RecipeResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
titlestringPåkrevd
categoryMealCategoryPåkrevd
sourceRecipeSourcePåkrevd
ingredientsRecipeIngredientDto[]Påkrevd
stepsstring[]Påkrevd
tagsstring[]Påkrevd
activeMinutesinteger (int32)Påkrevd
totalMinutesinteger (int32)Påkrevd
basePortionsinteger (int32)Påkrevd
isFamilyFavoritebooleanPåkrevd
favoriteMemberIdsstring (uuid)[]Påkrevd
sourceUrlstring | null—
sourceNamestring | null—
licensestring | null—
imageUrlstring | null—
timesCookedinteger (int32)—
lastCookedOnstring (date) | null—
timersCandidateStepTimer[] | null—
excludedFromPlanningboolean—
isBaseboolean—
stepSectionsRecipeStepSectionDto[] | null—
referencesRecipeReferenceDto[] | null—
sectionsRecipeSectionResponse[] | null—
effectiveActiveMinutesinteger (int32) | null—
effectiveTotalMinutesinteger (int32) | null—
isDinnerboolean—
attributionstring | null—
translatedFromstring | null—
imageLicensestring | null—
imageAuthorstring | null—
imageSourceUrlstring | null—
isCoreboolean—
usedByRecipeLinkResponse[] | null—

RecipeRevisionResponse

FeltTypePåkrevd
versioninteger (int32)Påkrevd
changedAtstring (date-time)Påkrevd
changesRecipeChange[]Påkrevd

RecipeSectionKind

Type

Verdier

OwnLinkedUnresolved

RecipeSectionResponse

FeltTypePåkrevd
namestring | nullPåkrevd
kindRecipeSectionKindPåkrevd
ingredientsRecipeIngredientDto[]Påkrevd
stepsstring[]Påkrevd
timersCandidateStepTimer[] | nullPåkrevd
sourceRecipeIdstring (uuid) | null—
sourceRecipeTitlestring | null—
referenceIdstring (uuid) | null—
sourceHintstring | null—
sourceActiveMinutesinteger (int32) | null—
sourceTotalMinutesinteger (int32) | null—

RecipeSource

Type

Verdier

SeedGeneratedUser

RecipeSourceFacets

FeltTypePåkrevd
allinteger (int32)Påkrevd
owninteger (int32)Påkrevd
libraryinteger (int32)Påkrevd

RecipeStepSectionDto

FeltTypePåkrevd
namestringPåkrevd
fromStepinteger (int32)Påkrevd

RecipeTimeFacet

FeltTypePåkrevd
maxTotalMinutesinteger (int32) | nullPåkrevd
countinteger (int32)Påkrevd

RecipeTipResponse

FeltTypePåkrevd
idstringPåkrevd
textstringPåkrevd
kindstringPåkrevd

RecipeTipsResponse

FeltTypePåkrevd
tipsRecipeTipResponse[]Påkrevd

RecipeVariantResponse

FeltTypePåkrevd
recipeRecipeResponsePåkrevd
alreadyExistedbooleanPåkrevd
planWeeklyPlanResponse | nullPåkrevd

ReferenceCandidateKind

Type

Verdier

SuggestionsBasesAll

eller null

ReferenceLinkCandidateResponse

FeltTypePåkrevd
recipeIdstring (uuid)Påkrevd
titlestringPåkrevd
isBasebooleanPåkrevd
titleMatchesbooleanPåkrevd

SaveRecipeRequest

FeltTypePåkrevd
titlestringPåkrevd
categoryMealCategoryPåkrevd
ingredientsRecipeIngredientDto[]Påkrevd
stepsstring[]Påkrevd
tagsstring[]Påkrevd
activeMinutesinteger (int32)Påkrevd
totalMinutesinteger (int32)Påkrevd
basePortionsinteger (int32)Påkrevd
timersCandidateStepTimer[] | null—
stepSectionsRecipeStepSectionDto[] | null—
referencesRecipeReferenceDto[] | null—
isBaseboolean | null—
isDinnerboolean | null—

ServingAudienceKind

Type

Verdier

PotMemberBabyGuests

ServingNoteResponse

FeltTypePåkrevd
kindServingAudienceKindPåkrevd
sourceServingNoteSourcePåkrevd
codestringPåkrevd
textstringPåkrevd
tagsstring[]Påkrevd
memberIdstring (uuid) | null—
memberNamestring | null—
stepIndexinteger (int32) | null—
tipIndexinteger (int32) | null—
tipFoodsstring[] | null—
rowTextstring | null—
lappKindstring | null—
actionstring | null—
whystring | null—

ServingNoteSource

Type

Verdier

EngineModel

ServingSummaryResponse

FeltTypePåkrevd
kindServingAudienceKindPåkrevd
memberIdstring (uuid) | nullPåkrevd
memberNamestring | nullPåkrevd
labelstringPåkrevd
textstringPåkrevd
fitBabyPortionFitPåkrevd
clausesstring[]Påkrevd
shortstring | null—

SetRecipeExclusionRequest

FeltTypePåkrevd
excludedbooleanPåkrevd

SetRecipeFavoriteRequest

FeltTypePåkrevd
householdMemberIdstring (uuid) | nullPåkrevd
favoritebooleanPåkrevd

SetRecipeImageRequest

FeltTypePåkrevd
imageBase64stringPåkrevd
contentTypestringPåkrevd

SetReferenceLinkRequest

FeltTypePåkrevd
linkedRecipeIdstring (uuid) | nullPåkrevd

StaleReason

Type

Verdier

GuestsHouseholdMixed

eller null

VariantFromTipsRequest

FeltTypePåkrevd
planIdstring (uuid)Påkrevd
entryIdstring (uuid)Påkrevd
tipIndexesinteger (int32)[]Påkrevd
titlestring | null—

WeeklyPlanResponse

FeltTypePåkrevd
idstring (uuid)Påkrevd
householdIdstring (uuid)Påkrevd
weekStartDatestring (date)Påkrevd
statusPlanStatusPåkrevd
plannerVersionstringPåkrevd
scoreBreakdownmapPåkrevd
entriesPlanEntryResponse[]Påkrevd
createdAtstring (date-time)Påkrevd
activatedAtstring (date-time) | nullPåkrevd
fromStarterLibraryboolean—
shoppingListStaleboolean—
staleDatesstring (date)[] | null—
staleReasonStaleReason | null—
deviationsPlanDeviationResponse[] | null—