Skip to content
merran
GitHubInstall

Merran documentation API & integrations

What's next

GET
/api/plan/next
curl --request GET \
--url http://localhost:3000/api/plan/next \
--cookie merran.session_token=<merran.session_token>

The next meal still planned, by the household’s clock: today’s from the meal of the hour on (breakfast until 11, lunch until 3, then dinner), then the days after. Snacks and the week’s pool aren’t counted. With an API key, it needs the plan: read permission.

What’s next.

Media typeapplication/json
object
today
required

Today, in the household’s time zone.

string
/^\d{4}-\d{2}-\d{2}$/
mealNow
required
string
Allowed values: breakfast lunch dinner snack
entry
required
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

{
"today": "2026-10-15",
"mealNow": "dinner",
"entry": {
"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."
}
}
}

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