Merran documentation API & integrations
The plan for some days
const url = 'http://localhost:3000/api/plan?from=2026-10-15&to=2026-10-15';const options = { method: 'GET', headers: {cookie: 'merran.session_token=<merran.session_token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'http://localhost:3000/api/plan?from=2026-10-15&to=2026-10-15' \ --cookie merran.session_token=<merran.session_token>Meals from one day to another, up to 62 days apart, in a day’s order: this week’s if no days are given. A week’s pool (meals for any day of it) is dated to the week’s first day, with anyDay set. Meals of recipes in Recently deleted are left out until they’re restored. With an API key, it needs the plan: read permission.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”The first day. This week’s first day if left out.
Example
2026-10-15The first day. This week’s first day if left out.
The last day. Six days after from if left out.
Example
2026-10-15The last day. Six days after from if left out.
Responses
Section titled “Responses”The meals.
object
object
Its day, or for the week’s pool, the week’s first day.
In the week’s pool: for any day of the week.
Its place among the meal’s dishes.
Null for a note.
object
In a serving, when its nutrition is known.
What it’s made with: “with peanut sauce”.
object
A meal that isn’t a recipe: “leftovers”.
Null for the recipe’s own servings.
Why it was picked, when Fill the week picked it: none otherwise.
object
object
object
object
One is the lowest it’s been in a while.
object
object
object
object
object
object
Example
{ "entries": [ { "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 days, or too many of them.
object
object
object
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}Not signed in.
object
object
object
Example
{ "error": { "code": "not_found", "message": "There's nothing here.", "fields": { "name": "Give it a name." } }}Not allowed.
object
object
object
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.