Merran documentation API & integrations
Change something on the list
const url = 'http://localhost:3000/api/list/items/0199e8b0-5a10-7a01-8b00-00000000001d';const options = { method: 'PATCH', headers: { cookie: 'merran.session_token=<merran.session_token>', 'Content-Type': 'application/json' }, body: '{"checked":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url http://localhost:3000/api/list/items/0199e8b0-5a10-7a01-8b00-00000000001d \ --header 'Content-Type: application/json' \ --cookie merran.session_token=<merran.session_token> \ --data '{ "checked": true }'Check it off or not, rename it, change how much, or move it to another aisle or list, which the household remembers for the food. With an API key, it needs the list: write permission.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
0199e8b0-5a10-7a01-8b00-00000000001dRequest Bodyrequired
Section titled “Request Bodyrequired”object
“2 lb”, “half a bag”, or empty for none.
An aisle’s id, or null. The household’s remembered for the food: next time it goes there.
Another list’s id. Remembered for the food too: next time it goes on that list.
Example
{ "checked": true}Responses
Section titled “Responses”Changed.
object
The list it’s on.
How much, as it shows: “1 ½ cups”, “half a bag”, or empty.
A unit id, like “cup” or “pound”; null for a count.
An amount in words (“half a bag”), when it isn’t a number.
Its aisle’s id.
How it got on the list: from the plan, typed in, every week, a usual buy, or the assistant.
The planned meals it’s for.
object
Example
{ "id": "0199e8b0-5a10-7a01-8b00-00000000001d", "list": "0199e8b0-5a10-7a01-8b00-00000000001c", "name": "chicken thighs", "amount": "3 lb", "quantity": 3, "unit": "pound", "amountText": null, "aisle": "0199e8b0-5a10-7a01-8b00-000000000021", "checked": false, "source": "plan", "meals": [ { "id": "0199e8b0-5a10-7a01-8b00-00000000001b", "name": "Lemon Chicken" } ], "createdAt": "2026-10-15T18:30:00.000Z"}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." } }}Not on the list, or no such aisle or list.
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.