Ukeplaner

Uken: planlegg den, les den, bytt en middag og lås en dag.19 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

POST/api/v1/households/{householdId}/plans/generate

Put the week in the planning queue and answer with the run

Adults only; a Junior member gets 403. Answers 202 with the run's id (ADR-289): the week is built by a background job, GET plans/runs/{jobId} says where the run stands, and the phone is told by push when the week lands (#200). Costs credits unless the cookbook or the starter library answers every day — GET cost-estimate says the price first. A second press while the run is going joins it and gets the same run id back; 409 with code week_planning_in_progress only for two presses in the very same instant (ADR-073). What the run itself can end in — rules that cannot all be met, a provider that never answered — is on the run's status, not here.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdGeneratePlanRequest

Svar

202Accepted
application/jsonPlanRunAccepted
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 POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/plans/generate" \
  -H "Content-Type: application/json" \
  -d '{"weekStart":"2026-09-07"}'

Eksempel på svar

202application/json
{
  "jobId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStart": "2026-09-07"
}
GET/api/v1/households/{householdId}/plans/runs/{jobId}

Say where a planning run stands, and why it ended if it ended badly

Any member — the week is the household's and so is the wait. status is queued, running, done or failed; queuePosition counts from one while the run waits, and counts the runs already in the model, because they are what it is waiting for. planId is the week the run settled, once it is done. failure carries the problem the run would have answered with while a request was still open — planning_conflict with its errors, for one (ADR-289).

Parametre

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

Svar

200OK
application/jsonPlanRunStatusResponse
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/plans/runs/3fa85f64-5717-4562-b3fc-2c963f66afa6"

Eksempel på svar

200application/json
{
  "jobId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStart": "2026-09-07",
  "status": "Queued",
  "queuePosition": 0,
  "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "startedAt": "2026-09-07T16:30:00Z"
}
GET/api/v1/households/{householdId}/plans/cost-estimate

Estimate what planning the week would cost, with a day-by-day preflight

Reads only — nothing is generated or charged (#340). Answers the credits, what is left of the quota, whether the run would be admitted, and a preflight of what each day becomes if the run is pressed as it stands (#694, ADR-066). scope defaults to WholeWeek; allowGeneration overrides the household's cap on new dishes for this estimate only. lockedDates and excludedTitles are the sheet's «Låst» and «Ikke denne» (ADR-356 (#3244)), read exactly as the run's policy reads them; lockedDates absent means the plan's own locks. heldDishes («yyyy-MM-dd:Title») are the cookbook dishes the sheet already showed on days nobody touched, held there so re-pricing does not move them (ADR-366 (#3288)).

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
weekStartquerystring (date)Påkrevd—
scopequeryReplanScope——
allowGenerationqueryinteger (int32)——
lockedDatesquerystring (date)[]——
excludedTitlesquerystring[]——
heldDishesquerystring[]——

Svar

200OK
application/jsonPlanCostEstimateResponse
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/plans/cost-estimate?weekStart=2026-09-07"

Eksempel på svar

200application/json
{
  "credits": 0,
  "remaining": 0,
  "affordable": false,
  "daysToGenerate": 0,
  "usesStarterLibrary": false,
  "resetsAt": "2026-09-07T16:30:00Z",
  "suggestMoreCredits": 0,
  "affordableNewDishes": 0,
  "shortfall": 0
}
GET/api/v1/households/{householdId}/plans/overview

List which days carry a dinner, week by week, for a window of at most 92 days

Month-map data: each week's status, each day's entry type and dish name, and whether the week has a shopping list and when the trip was finished. from and to are both required and from must not be after to (#445), and the window may cover at most 92 days — a calendar read, not a page (#2977, ADR-292). The widest any client asks for is a month grid's six weeks.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
fromquerystring (date)Påkrevd—
toquerystring (date)Påkrevd—

Svar

200OK
application/jsonPlanOverviewResponse
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/plans/overview?from=2026-09-07&to=2026-09-07"

Eksempel på svar

200application/json
{
  "weeks": [
    {
      "weekStart": "2026-09-07",
      "status": {},
      "days": [
        {}
      ],
      "hasShoppingList": false,
      "changedSinceShopped": 0
    }
  ]
}
GET/api/v1/households/{householdId}/plans/by-week/{weekStart}

Get the week's live plan

weekStart is the week's Monday. Superseded versions are never returned; 404 when the week has no plan.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
weekStartpathstring (date)Påkrevd—

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/by-week/2026-09-07"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
GET/api/v1/households/{householdId}/plans/by-week/{weekStart}/use-up

Read the use-up bundle for a week: what is running out after the planned use, and the fewest swaps that would use it.

weekStart is normalised to its Monday. Anchored at that Monday or today, whichever is later, while every deadline is measured from today (ADR-175): a week whose days are all past the food's life gets an empty bundle, and so does a week that is over. The bundle carries an id; apply or dismiss it through the home use-up endpoints. Read-only. A weekStart far outside the calendar a household lives in answers 400.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
weekStartpathstring (date)Påkrevd—

Svar

200OK
application/jsonHomeUseUpBundleQuestion
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/plans/by-week/2026-09-07/use-up"

Eksempel på svar

200application/json
{
  "bundleId": "string",
  "changes": [
    {
      "id": "string",
      "day": "2026-09-07",
      "kind": {},
      "recipeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "string",
      "uses": [
        {}
      ],
      "handsBack": [
        {}
      ],
      "activeMinutes": 0,
      "shoppingDelta": 0
    }
  ],
  "coveredCount": 0,
  "urgentCount": 0,
  "notDinner": [
    {
      "foodKey": "string",
      "displayName": "string",
      "reason": {}
    }
  ]
}
POST/api/v1/households/{householdId}/plans/{planId}/activate

Make this plan the week's live plan

Adults only; a Junior member gets 403. Any other live plan for the same week is superseded first (#437). Safe to retry: activating the plan that is already active changes nothing and answers 200.

Parametre

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

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/activate"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/restore

Undo a replan: bring back the plan this one replaced

Adults only; a Junior member gets 403. The given plan is superseded and the week's previous plan is live again; the shopping list follows it back, but the credits the run spent are not refunded (#342). 409 with code plan_not_current when the week has been planned again since and this plan is no longer the week's — resync the page. 422 with code no_earlier_plan when this is the week's first plan.

Parametre

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

Svar

200OK
application/jsonWeeklyPlanResponse
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
application/problem+jsonProblemDetails
409Conflict
application/problem+jsonProblemDetails
422Unprocessable Entity
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.

Problemkoder

`code` i problemkroppen er den du forgreiner på. `detail` er engelsk, skrevet for loggen.

no_earlier_plan
— Det finnes ingen tidligere versjon av denne uken å gå tilbake til.
plan_not_current
— Uken er planlagt på nytt siden sist. Last på nytt og prøv igjen.

Eksempel

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

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
PATCH/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}

Replace one day's dinner with another candidate, or make it a leftovers day

Adults only; a Junior member gets 403. Send exactly one of mealCandidateId (a candidate generated for the same date) or entryType "Leftovers" (#1691, ADR-136). Regenerates the week's shopping list if one exists. A superseded plan answers 400 — refresh to the current week.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdReplacePlanEntryRequest

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Content-Type: application/json" \
  -d '{}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/feedback

Say what was wrong with a planned dinner and let Bryti act on it

Adults only; a Junior member gets 403. «Si fra om denne retten» (#740, ADR-075): depending on the reason Bryti swaps the day, replans the open days, offers a variant, excludes the dish, or only notes it when the day has passed or its outcome is recorded. Two of the reasons can end in a generation, so the call may cost credits and runs under the planner's time budget (502/504 as for planning the week). The answer carries the week and a typed result the client uses for «Angre».

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdPlanEntryFeedbackRequest

Svar

200OK
application/jsonPlanEntryFeedbackResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
404Not Found
application/problem+jsonProblemDetails
422Unprocessable Entity
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.
502Bad Gateway
application/problem+jsonProblemDetails
504Gateway Timeout
application/problem+jsonProblemDetails

Eksempel

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/feedback" \
  -H "Content-Type: application/json" \
  -d '{"reason":"RuleBroken"}'

Eksempel på svar

200application/json
{
  "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
  },
  "result": {
    "reason": {},
    "action": {}
  }
}
POST/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/move

Move a dinner to another day in the same week, trading places if that day has one

Adults only; a Junior member gets 403. toDate must be a day of the same plan, and the day being moved must have a dinner (#111). Regenerates the week's shopping list if one exists.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdMovePlanEntryRequest

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/move" \
  -H "Content-Type: application/json" \
  -d '{"toDate":"2026-09-07"}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
DELETE/api/v1/households/{householdId}/plans/{planId}

Delete the week's plan, putting the week back to «not planned»

Adults only; a Junior member gets 403. Deleting a live plan also removes the versions it superseded and the week's shopping list; deleting a superseded plan by id removes only that one (#882). The week's candidate pool survives.

Parametre

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

Svar

204No Content
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6"
DELETE/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/dinner

Take the dinner off a day and leave the day open

Adults only; a Junior member gets 403. Not eating out and not a swap — the day simply has nothing planned (#111). Regenerates the week's shopping list if one exists.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/dinner"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/plan-recipe

Put a recipe from the library on a day

Adults only; a Junior member gets 403. No model is asked and nothing is charged: the recipe becomes the day's dinner, scaled to that day's table (#115). A week with no plan yet is opened by the first dish (#1681). A base recipe is a part, not a dinner, and is refused with 400 (ADR-154).

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdPlanRecipeOnDayRequest

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/plan-recipe" \
  -H "Content-Type: application/json" \
  -d '{"recipeId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","date":"2026-09-07"}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/lock

Lock a day's dinner so a replan leaves it alone

Adults only; a Junior member gets 403.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/lock"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/unlock

Unlock a day's dinner so a replan may change it again

Adults only; a Junior member gets 403.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/unlock"

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/tips/{index}/used

Mark one of tonight's serving tips as used, or take the mark off

Any member, Juniors included — it says what happened in the kitchen and changes no plan (#696, ADR-076). index is the tip's position in the entry's stored array (ServingNoteResponse.TipIndex), not its place in the servingNotes list. Idempotent. Nothing is saved to the cookbook; the marks are what the finished screen offers to turn into a variant.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—
indexpathinteger (int32)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSetServingTipUsedRequest

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/tips/0/used" \
  -H "Content-Type: application/json" \
  -d '{"used":false}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/entries/{entryId}/freezer

Say how many baby portions tonight's cooking put in the freezer

Any member, Juniors included — it says what happened in the kitchen (#3092). Portions is the total for this dinner, not an increment: tapping again sends two and «Angre» sends zero, so the call is idempotent. 400 when the dinner is not showing the freezer advice, or when portions is outside 0..20. Writes one pantry row on the food key baby-portion-frozen, in the freezer.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
entryIdpathstring (uuid)Påkrevd—

Forespørselskropp

application/jsonPåkrevdSetFrozenBabyPortionsRequest

Svar

200OK
application/jsonWeeklyPlanResponse
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/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/freezer" \
  -H "Content-Type: application/json" \
  -d '{"portions":0}'

Eksempel på svar

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStartDate": "2026-09-07",
  "status": "Draft",
  "plannerVersion": "string",
  "scoreBreakdown": {
    "key": 0
  },
  "entries": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "date": "2026-09-07",
      "entryType": {},
      "isLocked": false,
      "portions": 0,
      "candidate": {}
    }
  ],
  "createdAt": "2026-09-07T16:30:00Z",
  "activatedAt": "2026-09-07T16:30:00Z",
  "fromStarterLibrary": false,
  "shoppingListStale": false
}
POST/api/v1/households/{householdId}/plans/{planId}/replan

Put the week back in the planning queue and answer with the run

Adults only; a Junior member gets 403. Answers 202 with the run's id (ADR-289): the week is planned again by a background job, and GET plans/runs/{jobId} says where it stands. scope defaults to OpenDays, which fills only the days with nothing on them and changes nothing already decided; WholeWeek re-solves everything that is not locked, answered for or in the past (#340). The optional body is the preflight's answer (#694, ADR-066).May cost credits — GET plans/cost-estimate says the price first. The shopping list follows the week to the new plan, and «Angre» is POST plans/{planId}/restore. A press while a run is going joins that run; 409 (week_planning_in_progress) means the same as for planning the week.

Parametre

NavnHvorTypePåkrevdBeskrivelse
householdIdpathstring (uuid)Påkrevd—
planIdpathstring (uuid)Påkrevd—
scopequeryReplanScope——

Forespørselskropp

application/jsonValgfriPlanPolicy | null

Svar

202Accepted
application/jsonPlanRunAccepted
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 POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/plans/3fa85f64-5717-4562-b3fc-2c963f66afa6/replan" \
  -H "Content-Type: application/json" \
  -d '{"allowNearMisses":false}'

Eksempel på svar

202application/json
{
  "jobId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "weekStart": "2026-09-07"
}

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

DayOfWeek

Type

Verdier

SundayMondayTuesdayWednesdayThursdayFridaySaturday

eller null

GeneratePlanRequest

FeltTypePåkrevd
weekStartstring (date)Påkrevd
policyPlanPolicy | null—

HomeUseUpBundleQuestion

FeltTypePåkrevd
bundleIdstringPåkrevd
changesHomeUseUpChange[]Påkrevd
coveredCountinteger (int32)Påkrevd
urgentCountinteger (int32)Påkrevd
notDinnerHomeUseUpFood[]Påkrevd
nextWeekHomeUseUpNextWeek | null—

HomeUseUpChange

FeltTypePåkrevd
idstringPåkrevd
daystring (date)Påkrevd
kindHomeUseUpChangeKindPåkrevd
recipeIdstring (uuid) | nullPåkrevd
titlestringPåkrevd
usesHomeUseUpUse[]Påkrevd
handsBackHomeUseUpUse[]Påkrevd
activeMinutesinteger (int32)Påkrevd
shoppingDeltainteger (int32)Påkrevd

HomeUseUpChangeKind

Type

Verdier

SwapDishAdaptIngredientFillOpenDay

HomeUseUpFood

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
reasonHomeUseUpFoodReason—

HomeUseUpFoodReason

Type

Verdier

BreadFoodNoRecipeLeftoversNoChangeInTime

Standard "BreadFood"

HomeUseUpNextWeek

FeltTypePåkrevd
changeCountinteger (int32)Påkrevd
foodNamesstring[]Påkrevd

HomeUseUpUse

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
quantitynumber (double) | nullPåkrevd
unitstring | nullPåkrevd
usesMostOfItboolean—

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

MovePlanEntryRequest

FeltTypePåkrevd
toDatestring (date)Påkrevd

OutcomeReason

Type

Verdier

UnexpectedEventMissingIngredientNotEnoughTimeTooTiredNotAppealingIllnessPlansChangedOtherDidNotLike

eller null

OutcomeStatus

Type

Verdier

CookedCookedWithChangesNotCookedAteElsewhere

PlanCostEstimateResponse

FeltTypePåkrevd
creditsinteger (int32)Påkrevd
remaininginteger (int32)Påkrevd
affordablebooleanPåkrevd
daysToGenerateinteger (int32)Påkrevd
usesStarterLibrarybooleanPåkrevd
resetsAtstring (date-time)Påkrevd
suggestMoreCreditsinteger (int32)—
preflightPlanPreflightResponse | null—
affordableNewDishesinteger (int32)—
shortfallinteger (int32)—

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

PlanEntryFeedbackAction

Type

Verdier

SwappedReplannedVariantOfferedExcludedNotedNothingToSwapTo

PlanEntryFeedbackReason

Type

Verdier

RuleBrokenTooMuchOfCategoryConstraintNotHonouredTooMuchWorkKidsWontEatNeverAgain

PlanEntryFeedbackRequest

FeltTypePåkrevd
reasonPlanEntryFeedbackReasonPåkrevd
textstring | null—
memberIdstring (uuid) | null—

PlanEntryFeedbackResponse

FeltTypePåkrevd
planWeeklyPlanResponsePåkrevd
resultPlanEntryFeedbackResultResponsePåkrevd

PlanEntryFeedbackResultResponse

FeltTypePåkrevd
reasonPlanEntryFeedbackReasonPåkrevd
actionPlanEntryFeedbackActionPåkrevd
brokePlanEntryFeedbackRuleResponse | null—
categorystring | null—
categoryCountBeforeinteger (int32) | null—
categoryCountAfterinteger (int32) | null—
memberNamesstring[] | null—
previousCandidateIdstring (uuid) | null—
newCandidateIdstring (uuid) | null—
newTitlestring | null—
newActiveMinutesinteger (int32) | null—
preferenceIdsstring (uuid)[] | null—
recipeIdstring (uuid) | null—
variantTitlestring | null—
existingVariantIdstring (uuid) | null—

PlanEntryFeedbackRuleResponse

FeltTypePåkrevd
rulePlanDeviationRulePåkrevd
ruleIdstring (uuid) | null—
categorystring | null—
minutesinteger (int32) | null—
weekdayDayOfWeek | null—
targetinteger (int32) | null—
actualinteger (int32) | null—
ingredientstring | null—
memberNamestring | null—
constraintKindstring | null—

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

PlanHeldDish

FeltTypePåkrevd
datestring (date)Påkrevd
titlestringPåkrevd

PlanningConflictDayResponse

FeltTypePåkrevd
datestring (date)Påkrevd
reasonstringPåkrevd

PlanningConflictResponse

FeltTypePåkrevd
codestringPåkrevd
messagestringPåkrevd
relatedDatesstring (date)[]Påkrevd
suggestedResolutionstringPåkrevd
categorystring | null—
requiredCountinteger (int32) | null—
availableCountinteger (int32) | null—
ruleMaximuminteger (int32) | null—
servedCountinteger (int32) | null—
dayReasonsPlanningConflictDayResponse[] | null—

PlanOverviewDayResponse

FeltTypePåkrevd
datestring (date)Påkrevd
hasDinnerbooleanPåkrevd
entryTypePlanEntryTypePåkrevd
titlestring | null—

PlanOverviewResponse

FeltTypePåkrevd
weeksPlanOverviewWeekResponse[]Påkrevd

PlanOverviewWeekResponse

FeltTypePåkrevd
weekStartstring (date)Påkrevd
statusPlanStatusPåkrevd
daysPlanOverviewDayResponse[]Påkrevd
hasShoppingListboolean—
shoppedAtstring (date-time) | null—
changedSinceShoppedinteger (int32)—

PlanPickedDish

FeltTypePåkrevd
datestring (date)Påkrevd
candidateIdstring (uuid) | null—
recipeIdstring (uuid) | null—

PlanPolicy

FeltTypePåkrevd
allowGenerationinteger (int32) | null—
allowNearMissesboolean—
categoryCapsRunCategoryCap[] | null—
reopenDatesstring (date)[] | null—
lockedDatesstring (date)[] | null—
excludedTitlesstring[] | null—
pickedDishesPlanPickedDish[] | null—
heldDishesPlanHeldDish[] | null—

PlanPreflightBlockedRule

FeltTypePåkrevd
rulePlanDeviationRulePåkrevd
categorystring | null—
minutesinteger (int32) | null—
priceCeilingPriceCeiling | null—

PlanPreflightDay

FeltTypePåkrevd
datestring (date)Påkrevd
statePlanPreflightDayStatePåkrevd
titlestring | null—
categorystring | null—
bendPlanDeviationResponse | null—
reasonPlanPreflightReason | null—
keptboolean | null—
usesUpPlanPreflightUseUp[] | null—

PlanPreflightDayState

Type

Verdier

LibraryGenerateNearMissStaysOpenLockedAnsweredPastEatingOutLeftoversReplaced

PlanPreflightReason

FeltTypePåkrevd
kindPlanPreflightReasonKindPåkrevd
usedinteger (int32) | null—
capinteger (int32) | null—
proposalsinteger (int32) | null—
rulesPlanPreflightBlockedRule[] | null—

PlanPreflightReasonKind

Type

Verdier

CapReachedNoCandidateFitsRuleBlocked

PlanPreflightResponse

FeltTypePåkrevd
daysPlanPreflightDay[]Påkrevd
nearMissOfferPlanDeviationResponse[]Påkrevd
generationCapinteger (int32)Påkrevd
householdCapinteger (int32)Påkrevd
alwaysNewDishesbooleanPåkrevd
nextWeekOnlyboolean—

PlanPreflightUseUp

FeltTypePåkrevd
foodKeystringPåkrevd
displayNamestringPåkrevd
bestBeforestring (date) | nullPåkrevd

PlanRecipeOnDayRequest

FeltTypePåkrevd
recipeIdstring (uuid)Påkrevd
datestring (date)Påkrevd

PlanRunAccepted

FeltTypePåkrevd
jobIdstring (uuid)Påkrevd
weekStartstring (date)Påkrevd

PlanRunFailureResponse

FeltTypePåkrevd
statusinteger (int32)Påkrevd
codestring | nullPåkrevd
errorsPlanningConflictResponse[] | null—
resetsAtstring (date-time) | null—
scopestring | null—
shortfallinteger (int32) | null—

PlanRunState

Type

Verdier

QueuedRunningDoneFailed

PlanRunStatusResponse

FeltTypePåkrevd
jobIdstring (uuid)Påkrevd
weekStartstring (date)Påkrevd
statusPlanRunStatePåkrevd
queuePositioninteger (int32) | nullPåkrevd
planIdstring (uuid) | nullPåkrevd
startedAtstring (date-time)Påkrevd
failurePlanRunFailureResponse | null—

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—

RecipeSectionKind

Type

Verdier

OwnLinkedUnresolved

ReplacePlanEntryRequest

FeltTypePåkrevd
mealCandidateIdstring (uuid) | null—
entryTypePlanEntryType | null—

ReplanScope

Type

Verdier

OpenDaysWholeWeek

eller null

RunCategoryCap

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

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—

SetFrozenBabyPortionsRequest

FeltTypePåkrevd
portionsinteger (int32)Påkrevd

SetServingTipUsedRequest

FeltTypePåkrevd
usedbooleanPåkrevd

StaleReason

Type

Verdier

GuestsHouseholdMixed

eller 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—