Skip to content
merran
GitHubInstall

Merran documentation API & integrations

Put things at home back as they were

POST
/api/pantry/restore
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.

Media typeapplication/json
object
items
required
Array<object>
>= 1 items <= 500 items

Something at home as it was, to put it back (Undo).

object
id
required
string
name
required
string
>= 1 characters <= 200 characters
foodKey
required
string
<= 200 characters
quantity
required
number | null
unit
required
string | null
<= 40 characters
amountText
required
string | null
<= 60 characters
aisle
required
string | null
storedIn
required

Where it’s kept.

string | null
Allowed values: fridge freezer cupboard
useBy
required
string | null
/^\d{4}-\d{2}-\d{2}$/

Example

2026-10-20
forMeals
required
Array<object> | null
<= 100 items
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"
}
]
}

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
Allowed values: fridge freezer cupboard
aisle
required
string | null
useBy
required
string | null
/^\d{4}-\d{2}-\d{2}$/
meals
required

The planned meals it’s set aside for.

Array<object>
object
id
required
string
name
required
string
date
required
string
/^\d{4}-\d{2}-\d{2}$/
status
required
string
Allowed values: planned cooked skipped
useSoon
required
One of:
object
kind
required
string
Allowed values: past
date
required
string
/^\d{4}-\d{2}-\d{2}$/
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.