Home

The day as the home screen shows it.8 operations

Headers on every response

Every response on this page carries these headers.
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).

Operations

GET/api/v1/households/{householdId}/home/today

Read the day as Home shows it: dinner, timing, calendar, shopping, questions

date defaults to the household's local today. Any member, a Junior included; the questions say which of them need an adult to answer. Not a pure read: opening the day makes sure, idempotently, that the household has one conversation for this date with Bryti's morning message at the top, and the response names both (#1888, ADR-162). A date far outside the calendar a household lives in answers 400. Not free either: the day may ask the model for a dish that uses up what is about to go off, so the read is rate-limited per household — 120 a minute by default, and over the ceiling answers 429 with a Retry-After header.

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
datequerystring (date)——

Responses

200OK
application/jsonHomeTodayResponse
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 Requests
application/problem+jsonProblemDetails
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Example

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

Example response

200application/json
{
  "date": "2026-09-07",
  "conversationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "morningMessageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "dinnerTime": "string",
  "dinnerTimeSource": "HouseholdDefault",
  "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "tonight": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "date": "2026-09-07",
    "entryType": {},
    "isLocked": false,
    "portions": 0,
    "candidate": {}
  },
  "events": [
    {
      "title": "string",
      "startTime": "string",
      "endTime": "string",
      "isAllDay": false,
      "personName": "string"
    }
  ],
  "timing": {
    "gapMinutes": 0,
    "tightBelowMinutes": 0,
    "suggestedDinnerTime": "string",
    "latestStart": "string",
    "activeMinutes": 0,
    "totalMinutes": 0,
    "nextEventTitle": "string",
    "nextEventStart": "string",
    "nextEventPersonName": "string"
  },
  "shopping": {
    "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "shoppingListId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "itemsToBuy": 0,
    "bestStoreName": "string",
    "bestStoreHasEverything": false,
    "estimatedTotal": 0,
    "stale": false,
    "itemsAtHome": 0
  },
  "questions": [
    {
      "id": "string",
      "kind": {},
      "requiresAdult": false
    }
  ],
  "notes": [
    {
      "id": "string",
      "kind": {},
      "answeredAt": "2026-09-07T16:30:00Z",
      "undoable": false,
      "undoExpiresAt": "2026-09-07T16:30:00Z"
    }
  ]
}
POST/api/v1/households/{householdId}/home/today/questions/{questionId}/dismiss

Say no to one of the day's questions

Remembered for the household on that date only — tomorrow the card may ask again. Any member, a Junior included: dismissing a question does not change the plan. The one exception is «use-up-bundle», which is adults only (ADR-203): a «nei takk» there silences the household's use-up bundle on every surface until tomorrow, and a Junior gets 403 junior_forbidden. Safe to repeat: a second «nei» rewrites the same row. A questionId the day does not ask answers 404, and a date more than a fortnight from today answers 400: «nei» is about a day the household is living. Checking that the day asks costs the same work as reading it, so the route shares home/today's per-household ceiling and answers 429 over it (#2122).

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
questionIdpathstringRequired—
datequerystring (date)——

Responses

200OK
application/jsonDismissHomeQuestionResponse
400Bad Request
application/problem+jsonProblemDetails
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
403Forbidden
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 Requests
application/problem+jsonProblemDetails
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Example

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/home/today/questions/string/dismiss"

Example response

200application/json
{
  "questionId": "string",
  "date": "2026-09-07"
}
POST/api/v1/households/{householdId}/home/use-up/{bundleId}/apply

Apply a use-up bundle: make the swaps it proposes and adjust the shopping list, then return today's home view.

Adults only. The bundle id comes from the week or day use-up read; a bundle the plan has since outgrown answers 409 (ADR-173). The shopping list is adjusted, never regenerated. Applying rebuilds the bundle and answers with the whole day, so the route shares home/today's per-household ceiling and answers 429 over it (#2122).

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
bundleIdpathstringRequired—

Request body

application/jsonRequiredApplyUseUpBundleRequest

Responses

200OK
application/jsonHomeTodayResponse
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
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 Requests
application/problem+jsonProblemDetails
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Problem codes

The `code` in the problem body is what to branch on. `detail` is English, written for a log.

use_up_bundle_stale
— These suggestions came from a week and a pantry that have changed since. Ask for today again.

Example

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

Example response

200application/json
{
  "date": "2026-09-07",
  "conversationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "morningMessageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "dinnerTime": "string",
  "dinnerTimeSource": "HouseholdDefault",
  "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "tonight": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "date": "2026-09-07",
    "entryType": {},
    "isLocked": false,
    "portions": 0,
    "candidate": {}
  },
  "events": [
    {
      "title": "string",
      "startTime": "string",
      "endTime": "string",
      "isAllDay": false,
      "personName": "string"
    }
  ],
  "timing": {
    "gapMinutes": 0,
    "tightBelowMinutes": 0,
    "suggestedDinnerTime": "string",
    "latestStart": "string",
    "activeMinutes": 0,
    "totalMinutes": 0,
    "nextEventTitle": "string",
    "nextEventStart": "string",
    "nextEventPersonName": "string"
  },
  "shopping": {
    "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "shoppingListId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "itemsToBuy": 0,
    "bestStoreName": "string",
    "bestStoreHasEverything": false,
    "estimatedTotal": 0,
    "stale": false,
    "itemsAtHome": 0
  },
  "questions": [
    {
      "id": "string",
      "kind": {},
      "requiresAdult": false
    }
  ],
  "notes": [
    {
      "id": "string",
      "kind": {},
      "answeredAt": "2026-09-07T16:30:00Z",
      "undoable": false,
      "undoExpiresAt": "2026-09-07T16:30:00Z"
    }
  ]
}
POST/api/v1/households/{householdId}/home/use-up/{bundleId}/dismiss

Dismiss a use-up bundle for this household so the morning message stops asking, and return today's home view.

Adults only (ADR-203): dismissing this card silences the household's use-up bundle on every surface until tomorrow. A bundle the plan or the pantry has since outgrown answers 409, and the client re-reads (ADR-173). Shares home/today's per-household ceiling and answers 429 over it (#2122).

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
bundleIdpathstringRequired—

Responses

200OK
application/jsonHomeTodayResponse
401No session, or the session is no longer valid.
application/problem+jsonProblemDetails
403Forbidden
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 Requests
application/problem+jsonProblemDetails
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Problem codes

The `code` in the problem body is what to branch on. `detail` is English, written for a log.

use_up_bundle_stale
— These suggestions came from a week and a pantry that have changed since. Ask for today again.

Example

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/home/use-up/string/dismiss"

Example response

200application/json
{
  "date": "2026-09-07",
  "conversationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "morningMessageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "dinnerTime": "string",
  "dinnerTimeSource": "HouseholdDefault",
  "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "tonight": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "date": "2026-09-07",
    "entryType": {},
    "isLocked": false,
    "portions": 0,
    "candidate": {}
  },
  "events": [
    {
      "title": "string",
      "startTime": "string",
      "endTime": "string",
      "isAllDay": false,
      "personName": "string"
    }
  ],
  "timing": {
    "gapMinutes": 0,
    "tightBelowMinutes": 0,
    "suggestedDinnerTime": "string",
    "latestStart": "string",
    "activeMinutes": 0,
    "totalMinutes": 0,
    "nextEventTitle": "string",
    "nextEventStart": "string",
    "nextEventPersonName": "string"
  },
  "shopping": {
    "planId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "shoppingListId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "itemsToBuy": 0,
    "bestStoreName": "string",
    "bestStoreHasEverything": false,
    "estimatedTotal": 0,
    "stale": false,
    "itemsAtHome": 0
  },
  "questions": [
    {
      "id": "string",
      "kind": {},
      "requiresAdult": false
    }
  ],
  "notes": [
    {
      "id": "string",
      "kind": {},
      "answeredAt": "2026-09-07T16:30:00Z",
      "undoable": false,
      "undoExpiresAt": "2026-09-07T16:30:00Z"
    }
  ]
}
PATCH/api/v1/households/{householdId}/plan-entries/{entryId}/dinner-time

Move tonight's dinner time, tonight only or for named weekdays

Adults only; a Junior member gets 403. Addressed by plan entry, no plan id needed. With weekdays given, a DinnerTimeOnWeekday household rule is filed as well as moving tonight. Bryti writes one line into the day's thread, and the answer shows on Home as an undoable «Notert» note.

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
entryIdpathstring (uuid)Required—

Request body

application/jsonRequiredSetDinnerTimeRequest

Responses

200OK
application/jsonPlanEntryResponse
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
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Example

curl -b "bryti_session=…" \
  -X PATCH \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/plan-entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/dinner-time" \
  -H "Content-Type: application/json" \
  -d '{"time":"string"}'

Example response

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "date": "2026-09-07",
  "entryType": "CookAtHome",
  "isLocked": false,
  "portions": 0,
  "candidate": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "targetDate": "2026-09-07",
    "category": {},
    "content": {},
    "scores": {
      "key": 0
    },
    "createdAt": "2026-09-07T16:30:00Z"
  }
}
POST/api/v1/households/{householdId}/plan-entries/{entryId}/dinner-time/undo

Put tonight's dinner time back to the usual

Adults only; a Junior member gets 403. A weekday rule filed by the same answer is unfiled, or put back to the time it had.

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
entryIdpathstring (uuid)Required—

Responses

200OK
application/jsonPlanEntryResponse
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
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Example

curl -b "bryti_session=…" \
  -X POST \
  "https://bryti.app/api/v1/households/3fa85f64-5717-4562-b3fc-2c963f66afa6/plan-entries/3fa85f64-5717-4562-b3fc-2c963f66afa6/dinner-time/undo"

Example response

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "date": "2026-09-07",
  "entryType": "CookAtHome",
  "isLocked": false,
  "portions": 0,
  "candidate": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "targetDate": "2026-09-07",
    "category": {},
    "content": {},
    "scores": {
      "key": 0
    },
    "createdAt": "2026-09-07T16:30:00Z"
  }
}
POST/api/v1/households/{householdId}/plan-entries/{entryId}/adaptations

Put a pantry item into tonight's dish in place of an ingredient

Adults only; a Junior member gets 403. «Legg melka i suppa»: deterministic, no model turn, and never a new variant in the recipe library. The shopping list is adjusted, never regenerated; the response lists the items that stopped being needed. 400 when insteadOfFoodKey is not in the dish.

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
entryIdpathstring (uuid)Required—

Request body

application/jsonRequiredCreatePlanEntryAdaptationRequest

Responses

200OK
application/jsonPlanEntryAdaptationResult
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
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Example

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

Example response

200application/json
{
  "entry": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "date": "2026-09-07",
    "entryType": {},
    "isLocked": false,
    "portions": 0,
    "candidate": {}
  },
  "removedShoppingItemIds": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  ],
  "shoppingListChanged": false
}
DELETE/api/v1/households/{householdId}/adaptations/{adaptationId}

Undo an adaptation: the dish goes back to the recipe as written

Adults only; a Junior member gets 403. The shopping list lines the adaptation took off come back.

Parameters

NameInTypeRequiredDescription
householdIdpathstring (uuid)Required—
adaptationIdpathstring (uuid)Required—

Responses

200OK
application/jsonPlanEntryResponse
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
Headers
Retry-After
— Seconds to wait when a rate limit answered, or an HTTP date when the household's AI is paused. Absent when the household's AI quota for the period is used up — that resets by itself.

Example

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

Example response

200application/json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "date": "2026-09-07",
  "entryType": "CookAtHome",
  "isLocked": false,
  "portions": 0,
  "candidate": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "householdId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "targetDate": "2026-09-07",
    "category": {},
    "content": {},
    "scores": {
      "key": 0
    },
    "createdAt": "2026-09-07T16:30:00Z"
  }
}

Schemas

ApplyUseUpBundleRequest

PropertyTypeRequired
changeIdsstring[] | null—

BabyPortionFit

Type

Values

NotApplicablePossibleNotPossible

CandidateContent

PropertyTypeRequired
titlestringRequired
rationalestringRequired
ingredientsCandidateIngredient[]Required
stepsstring[]Required
activeMinutesinteger (int32)Required
totalMinutesinteger (int32)Required
portionsinteger (int32)Required
tagsstring[]Required
leftoverPotentialstringRequired
confidencenumber (double)Required
assumptionsstring[]Required
safetyWarningsstring[]Required
nutritionCandidateNutrition | null—
timersCandidateStepTimer[] | null—
sectionsCandidateSection[] | null—

CandidateIngredient

PropertyTypeRequired
foodKeystringRequired
displayNamestringRequired
quantitynumber (double)Required
unitstringRequired
isOptionalbooleanRequired
missingbooleanRequired
displayQuantitynumber (double) | null—
displayUnitstring | null—

CandidateNutrition

PropertyTypeRequired
kcalPerPortioninteger (int32)Required
proteinGramsnumber (double)Required
fibreGramsnumber (double)Required
addedSugarGramsnumber (double)Required
saltGramsnumber (double)Required
fruitVegPortionsnumber (double)Required
coveragenumber (double)Required

CandidatePrice

PropertyTypeRequired
classPriceClassRequired
perPortionNoknumber (double) | nullRequired
sourcePriceSourceRequired
coveragenumber (double)Required

CandidateSection

PropertyTypeRequired
namestring | nullRequired
kindRecipeSectionKindRequired
ingredientsCandidateIngredient[]Required
stepsstring[]Required
timersCandidateStepTimer[] | nullRequired
sourceRecipeIdstring (uuid) | nullRequired
sourceRecipeTitlestring | nullRequired

CandidateStepTimer

PropertyTypeRequired
stepinteger (int32)Required
minutesinteger (int32)Required
namestringRequired

CreatePlanEntryAdaptationRequest

PropertyTypeRequired
useFoodKeystringRequired
insteadOfFoodKeystringRequired
quantitynumber (double) | null—
unitstring | null—
notestring | null—

DinnerTimeSource

Type

Values

HouseholdDefaultWeekdayRuleDateEventPlanEntry

DismissHomeQuestionResponse

PropertyTypeRequired
questionIdstringRequired
datestring (date)Required

FirstWeekPhase

Type

Values

EmptyPlannedShoppedReceiptReadSwappedDone

FirstWeekStep

Type

Values

PlanOpenListReceiptSwap

or null

HolidayKey

Type

Values

FastelavnEasterConstitutionDayMidsummerSchoolStartChristmas

HomeDinnerTimeQuestion

PropertyTypeRequired
currentstringRequired
suggestedstringRequired
choicesstring[]Required
tooTightstring[]Required
eventTitlestringRequired
eventStartstringRequired
personNamestring | nullRequired
totalMinutesinteger (int32)Required
latestStartstringRequired

HomeEventResponse

PropertyTypeRequired
titlestringRequired
startTimestring | nullRequired
endTimestring | nullRequired
isAllDaybooleanRequired
personNamestring | nullRequired

HomeFirstWeekQuestion

PropertyTypeRequired
phaseFirstWeekPhaseRequired
nextFirstWeekStep | nullRequired
swapDaystring (date) | nullRequired

HomeHolidayQuestion

PropertyTypeRequired
keyHolidayKeyRequired
datestring (date)Required

HomeNoteKind

Type

Values

DinnerTimeMovedDinnerTimeMovedWeeklyRecipeAdaptedOutcomeRecordedUseUpApplied

HomeNoteResponse

PropertyTypeRequired
idstringRequired
kindHomeNoteKindRequired
answeredAtstring (date-time)Required
undoablebooleanRequired
undoExpiresAtstring (date-time) | nullRequired
fromTimestring | null—
toTimestring | null—
fromFoodDisplayNamestring | null—
toFoodDisplayNamestring | null—
quantitynumber (double) | null—
unitstring | null—
changeCountinteger (int32) | null—
usedDisplayNamesstring[] | null—
textstring | null—

HomePantryStaleQuestion

PropertyTypeRequired
daysSinceLastObservationinteger (int32)Required

HomeQuestionKind

Type

Values

OnboardingOutcomeDinnerTimeUseUpUseUpBundlePantryStaleFirstWeekHoliday

HomeQuestionResponse

PropertyTypeRequired
idstringRequired
kindHomeQuestionKindRequired
requiresAdultbooleanRequired
dinnerTimeHomeDinnerTimeQuestion | null—
useUpHomeUseUpQuestion | null—
planEntryIdstring (uuid) | null—
useUpBundleHomeUseUpBundleQuestion | null—
pantryStaleHomePantryStaleQuestion | null—
firstWeekHomeFirstWeekQuestion | null—
holidayHomeHolidayQuestion | null—

HomeShoppingSummaryResponse

PropertyTypeRequired
planIdstring (uuid)Required
shoppingListIdstring (uuid)Required
itemsToBuyinteger (int32)Required
bestStoreNamestring | nullRequired
bestStoreHasEverythingbooleanRequired
estimatedTotalnumber (double) | nullRequired
stalebooleanRequired
itemsAtHomeinteger (int32)—

HomeTimingResponse

PropertyTypeRequired
gapMinutesinteger (int32) | nullRequired
tightBelowMinutesinteger (int32)Required
suggestedDinnerTimestring | nullRequired
latestStartstring | nullRequired
activeMinutesinteger (int32) | nullRequired
totalMinutesinteger (int32) | nullRequired
nextEventTitlestring | nullRequired
nextEventStartstring | nullRequired
nextEventPersonNamestring | nullRequired

HomeTodayResponse

PropertyTypeRequired
datestring (date)Required
conversationIdstring (uuid) | nullRequired
morningMessageIdstring (uuid) | nullRequired
dinnerTimestringRequired
dinnerTimeSourceDinnerTimeSourceRequired
planIdstring (uuid) | nullRequired
tonightPlanEntryResponse | nullRequired
eventsHomeEventResponse[]Required
timingHomeTimingResponse | nullRequired
shoppingHomeShoppingSummaryResponse | nullRequired
questionsHomeQuestionResponse[]Required
notesHomeNoteResponse[]Required

HomeUseUpBundleQuestion

PropertyTypeRequired
bundleIdstringRequired
changesHomeUseUpChange[]Required
coveredCountinteger (int32)Required
urgentCountinteger (int32)Required
notDinnerHomeUseUpFood[]Required
nextWeekHomeUseUpNextWeek | null—

HomeUseUpChange

PropertyTypeRequired
idstringRequired
daystring (date)Required
kindHomeUseUpChangeKindRequired
recipeIdstring (uuid) | nullRequired
titlestringRequired
usesHomeUseUpUse[]Required
handsBackHomeUseUpUse[]Required
activeMinutesinteger (int32)Required
shoppingDeltainteger (int32)Required

HomeUseUpChangeKind

Type

Values

SwapDishAdaptIngredientFillOpenDay

HomeUseUpFood

PropertyTypeRequired
foodKeystringRequired
displayNamestringRequired
reasonHomeUseUpFoodReason—

HomeUseUpFoodReason

Type

Values

BreadFoodNoRecipeLeftoversNoChangeInTime

Default "BreadFood"

HomeUseUpNextWeek

PropertyTypeRequired
changeCountinteger (int32)Required
foodNamesstring[]Required

HomeUseUpQuestion

PropertyTypeRequired
itemFoodKeystringRequired
itemDisplayNamestringRequired
bestBeforestring (date) | nullRequired
replacesFoodKeystringRequired
replacesDisplayNamestringRequired
quantitynumber (double)Required
unitstringRequired
notestring | nullRequired

HomeUseUpUse

PropertyTypeRequired
foodKeystringRequired
displayNamestringRequired
quantitynumber (double) | nullRequired
unitstring | nullRequired
usesMostOfItboolean—

MealCandidateResponse

PropertyTypeRequired
idstring (uuid)Required
householdIdstring (uuid)Required
targetDatestring (date)Required
categoryMealCategoryRequired
contentCandidateContentRequired
scoresmapRequired
createdAtstring (date-time)Required
recipeIdstring (uuid) | null—
imageUrlstring | null—
priceCandidatePrice | null—

MealCategory

Type

Values

FishMeatPoultryVegetarianVeganSoupPastaTacoLeftoversOther

OutcomeReason

Type

Values

UnexpectedEventMissingIngredientNotEnoughTimeTooTiredNotAppealingIllnessPlansChangedOtherDidNotLike

or null

OutcomeStatus

Type

Values

CookedCookedWithChangesNotCookedAteElsewhere

PlanEntryAdaptationResponse

PropertyTypeRequired
idstring (uuid)Required
fromFoodKeystringRequired
fromDisplayNamestringRequired
toFoodKeystringRequired
toDisplayNamestringRequired
quantitynumber (double)Required
unitstringRequired
notestring | nullRequired

PlanEntryAdaptationResult

PropertyTypeRequired
entryPlanEntryResponseRequired
removedShoppingItemIdsstring (uuid)[]Required
shoppingListChangedbooleanRequired

PlanEntryResponse

PropertyTypeRequired
idstring (uuid)Required
datestring (date)Required
entryTypePlanEntryTypeRequired
isLockedbooleanRequired
portionsinteger (int32)Required
candidateMealCandidateResponse | nullRequired
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

Values

CookAtHomeEatingOutNoDinnerPlanLeftovers

PriceClass

Type

Values

CheapMidExpensive

PriceSource

Type

Values

ObservedCatalogueTableUnknown

ProblemDetails

PropertyTypeRequired
typestring | null—
titlestring | null—
statusinteger (int32) | null—
detailstring | null—
instancestring | null—
codestring | null—

RecipeSectionKind

Type

Values

OwnLinkedUnresolved

ServingAudienceKind

Type

Values

PotMemberBabyGuests

ServingNoteResponse

PropertyTypeRequired
kindServingAudienceKindRequired
sourceServingNoteSourceRequired
codestringRequired
textstringRequired
tagsstring[]Required
memberIdstring (uuid) | null—
memberNamestring | null—
stepIndexinteger (int32) | null—
tipIndexinteger (int32) | null—
tipFoodsstring[] | null—
rowTextstring | null—
lappKindstring | null—
actionstring | null—
whystring | null—

ServingNoteSource

Type

Values

EngineModel

ServingSummaryResponse

PropertyTypeRequired
kindServingAudienceKindRequired
memberIdstring (uuid) | nullRequired
memberNamestring | nullRequired
labelstringRequired
textstringRequired
fitBabyPortionFitRequired
clausesstring[]Required
shortstring | null—

SetDinnerTimeRequest

PropertyTypeRequired
timestringRequired
weekdaysWeekday[] | null—

Weekday

Type

Values

SundayMondayTuesdayWednesdayThursdayFridaySaturday