Skip to content
merran
GitHubInstall

Merran documentation API & integrations

Change a meal

PATCH
/api/plan/entries/{entryId}
curl --request PATCH \
--url http://localhost:3000/api/plan/entries/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Content-Type: application/json' \
--cookie merran.session_token=<merran.session_token> \
--data '{ "date": "2026-10-16", "status": "planned" }'

Move it (it goes after any dishes in its new slot), swap its recipe, give it a side, change its servings, or mark it planned, cooked or skipped. Cooked sets when its recipe and side were last made. With an API key, it needs the plan: write permission.

entryId
required
string format: uuid
Media typeapplication/json
object
date
string
/^\d{4}-\d{2}-\d{2}$/

Example

2026-10-15
meal
string
Allowed values: breakfast lunch dinner snack
anyDay
boolean
recipe

Another recipe (Something else): it’s planned afresh, its side kept.

string | null
withRecipe
string | null
note
string | null
>= 1 characters <= 200 characters
servings
number | null
> 0 <= 1000
status
string
Allowed values: planned cooked skipped
why

Why a new recipe was picked, as Something else said.

Array | null
<= 5 items
One of:
object
kind
required
string
Allowed values: theme
label
required
string
<= 60 characters

Example

{
"date": "2026-10-16",
"status": "planned"
}

Changed.

Media typeapplication/json
object
id
required
string
date
required

Its day, or for the week’s pool, the week’s first day.

string
/^\d{4}-\d{2}-\d{2}$/
anyDay
required

In the week’s pool: for any day of the week.

boolean
meal
required
string
Allowed values: breakfast lunch dinner snack
position
required

Its place among the meal’s dishes.

integer
status
required
string
Allowed values: planned cooked skipped
recipe
required

Null for a note.

object
id
required
string
slug
required
string
name
required
string
photo
required
string | null
servings
required
number | null
totalMinutes
required
integer | null
calories
required

In a serving, when its nutrition is known.

number | null
withRecipe
required

What it’s made with: “with peanut sauce”.

object
id
required
string
slug
required
string
name
required
string
calories
required
number | null
note
required

A meal that isn’t a recipe: “leftovers”.

string | null
servings
required

Null for the recipe’s own servings.

number | null
why
required

Why it was picked, when Fill the week picked it: none otherwise.

Array
<= 5 items
One of:
object
kind
required
string
Allowed values: theme
label
required
string
<= 60 characters
createdAt
required
string format: date-time

Example

{
"id": "0199e8b0-5a10-7a01-8b00-00000000001b",
"date": "2026-10-15",
"anyDay": false,
"meal": "dinner",
"position": 0,
"status": "planned",
"recipe": {
"id": "0199e8b0-5a10-7a01-8b00-000000000006",
"slug": "lemon-chicken",
"name": "Lemon Chicken",
"photo": null,
"servings": 4,
"totalMinutes": 50,
"calories": 412
},
"withRecipe": {
"id": "0199e8b0-5a10-7a01-8b00-000000000007",
"slug": "garlic-rice",
"name": "Garlic Rice",
"calories": 210
},
"note": null,
"servings": null,
"why": [
{
"kind": "theme",
"label": "Taco night"
}
],
"createdAt": "2026-10-15T18:30:00.000Z"
}

Not signed in.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
fields
object
key
additional properties
string

Example

{
"error": {
"code": "not_found",
"message": "There's nothing here.",
"fields": {
"name": "Give it a name."
}
}
}

Not allowed.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
fields
object
key
additional properties
string

Example

{
"error": {
"code": "not_found",
"message": "There's nothing here.",
"fields": {
"name": "Give it a name."
}
}
}

No such meal on the plan, or no such recipe.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
fields
object
key
additional properties
string

Example

{
"error": {
"code": "not_found",
"message": "There's nothing here.",
"fields": {
"name": "Give it a name."
}
}
}

© 2026 Kyle Johnson. Documentation: CC BY 4.0. Merran: AGPL-3.0-or-later.