Merran documentation API & integrations
Add planned meals to the list
const url = 'http://localhost:3000/api/list/from-plan';const options = { method: 'POST', headers: { cookie: 'merran.session_token=<merran.session_token>', 'Content-Type': 'application/json' }, body: '{"from":"2026-10-12","to":"2026-10-18"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/list/from-plan \ --header 'Content-Type: application/json' \ --cookie merran.session_token=<merran.session_token> \ --data '{ "from": "2026-10-12", "to": "2026-10-18" }'The ingredients of planned meals from one day to another that aren’t on the list yet: scaled to their servings, their sides’ too, added up across meals and into what’s there, leaving off what’s always on hand. Every-week items not on the list come along. From then on the list follows the plan: taking a meal off, skipping it or changing it takes its share back off. With an API key, it needs the list: write permission.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
2026-10-15Example
2026-10-15Example
{ "from": "2026-10-12", "to": "2026-10-18"}Responses
Section titled “Responses”Added.
object
Meals added.
New lines on the list.
Lines added to ones already there.
Every-week items added.
Left off: always on hand.
Left off: at home already, and now set aside for them.
Example
{ "meals": 3, "added": 14, "merged": 2, "everyWeek": 2, "onHand": [ "salt", "black pepper" ], "inPantry": [ "rice" ]}Days out of order, or too many at once.
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.