Merran documentation API & integrations
Put things at home back as they were
POST
/api/pantry/restore
const url = 'http://localhost:3000/api/pantry/restore';const options = { method: 'POST', headers: { cookie: 'merran.session_token=<merran.session_token>', 'Content-Type': 'application/json' }, body: '{"items":[{"id":"0199e8b0-5a10-7a01-8b00-000000000026","name":"chicken thighs","foodKey":"chicken thigh","quantity":2,"unit":"pound","amountText":null,"aisle":"0199e8b0-5a10-7a01-8b00-000000000021","storedIn":"fridge","useBy":"2026-10-18","forMeals":[{"meal":"0199e8b0-5a10-7a01-8b00-00000000001b","quantity":2,"unit":"pound"}],"createdAt":"2026-10-15T18:30:00.000Z"}]}'};
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/pantry/restore \ --header 'Content-Type: application/json' \ --cookie merran.session_token=<merran.session_token> \ --data '{ "items": [ { "id": "0199e8b0-5a10-7a01-8b00-000000000026", "name": "chicken thighs", "foodKey": "chicken thigh", "quantity": 2, "unit": "pound", "amountText": null, "aisle": "0199e8b0-5a10-7a01-8b00-000000000021", "storedIn": "fridge", "useBy": "2026-10-18", "forMeals": [ { "meal": "0199e8b0-5a10-7a01-8b00-00000000001b", "quantity": 2, "unit": "pound" } ], "createdAt": "2026-10-15T18:30:00.000Z" } ] }'Undo: things as using them up or changing them said they were. One used up comes back with its id. An aisle that’s gone is left empty. With an API key, it needs the pantry: write permission.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
items
required
Array<object>
Something at home as it was, to put it back (Undo).
object
id
required
string
name
required
string
foodKey
required
string
quantity
required
number | null
unit
required
string | null
amountText
required
string | null
aisle
required
string | null
storedIn
required
Where it’s kept.
string | null
useBy
required
string | null
Example
2026-10-20forMeals
required
Array<object> | null
object
meal
required
string
quantity
required
number | null
unit
required
string | null
createdAt
required
string format: date-time
Example
{ "id": "0199e8b0-5a10-7a01-8b00-000000000026", "name": "chicken thighs", "foodKey": "chicken thigh", "quantity": 2, "unit": "pound", "amountText": null, "aisle": "0199e8b0-5a10-7a01-8b00-000000000021", "storedIn": "fridge", "useBy": "2026-10-18", "forMeals": [ { "meal": "0199e8b0-5a10-7a01-8b00-00000000001b", "quantity": 2, "unit": "pound" } ], "createdAt": "2026-10-15T18:30:00.000Z"}Example
{ "items": [ { "id": "0199e8b0-5a10-7a01-8b00-000000000026", "name": "chicken thighs", "foodKey": "chicken thigh", "quantity": 2, "unit": "pound", "amountText": null, "aisle": "0199e8b0-5a10-7a01-8b00-000000000021", "storedIn": "fridge", "useBy": "2026-10-18", "forMeals": [ { "meal": "0199e8b0-5a10-7a01-8b00-00000000001b", "quantity": 2, "unit": "pound" } ], "createdAt": "2026-10-15T18:30:00.000Z" } ]}Responses
Section titled “Responses”Back as they were.
Media typeapplication/json
object
items
required
Array<object>
object
id
required
string
name
required
string
amount
required
How much, as it shows: “2 lb”, “half a bag”, or empty for just “have it”.
string
quantity
required
number | null
unit
required
string | null
amountText
required
string | null
storedIn
required
Where it’s kept.
string | null
aisle
required
string | null
useBy
required
string | null
meals
required
The planned meals it’s set aside for.
Array<object>
object
id
required
string
name
required
string
date
required
string
status
required
string
useSoon
required
createdAt
required
string format: date-time
Example
{ "items": [ { "id": "0199e8b0-5a10-7a01-8b00-000000000026", "name": "chicken thighs", "amount": "2 lb", "quantity": 2, "unit": "pound", "amountText": null, "storedIn": "fridge", "aisle": "0199e8b0-5a10-7a01-8b00-000000000021", "useBy": "2026-10-18", "meals": [ { "id": "0199e8b0-5a10-7a01-8b00-00000000001b", "name": "Lemon Chicken", "date": "2026-10-17", "status": "planned" } ], "useSoon": { "kind": "soon", "date": "2026-10-18" }, "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.