Skip to content
merran
GitHubInstall

Merran documentation API & integrations

The Kroger cart to look over

GET
/api/stores/kroger/basket
curl --request GET \
--url 'http://localhost:3000/api/stores/kroger/basket?items=0199e8b0-5a10-7a01-8b00-00000000001d%2C0199e8b0-5a10-7a01-8b00-00000000001e' \
--cookie merran.session_token=<merran.session_token>

Each thing left to get (the ones asked for, which Send has going to Kroger; or without them, everything left on every list) with its product: the one the household picked before, at today’s price, or Merran’s pick from the store’s search, made by the household’s model for shopping when it has AI. How many packages, worked out from the product’s size where it can be. Nothing is sent until POST /stores/kroger/send. With an API key, it needs the list: write permission.

items

Just these things on the list, by id, separated by commas: the ones Send has going to this store. Without it, everything left on every list.

string
/^[0-9a-f-]{36}(,[0-9a-f-]{36}){0,299}$/i/

Example

0199e8b0-5a10-7a01-8b00-00000000001d,0199e8b0-5a10-7a01-8b00-00000000001e

Just these things on the list, by id, separated by commas: the ones Send has going to this store. Without it, everything left on every list.

The cart to look over.

Media typeapplication/json
object
store
required

The banner: Fry’s.

string
location
required
object
locationId
required
string
name
required
string
banner
required

Kroger’s name for the chain: Fry’s, Ralphs, King Soopers…

string
domain
required

The banner’s site.

string
address
required
string
modality
required
string
Allowed values: PICKUP DELIVERY
linked
required

An account is linked, so it can be sent.

boolean
sentAt
required
string | null format: date-time
lines
required
Array<object>
object
itemId
required
string
name
required
string
amount
required
string
product
required
Any of:
object
id
required
string
upc
required
string | null
name
required
string
brand
required
string | null
size
required
string | null
image
required
string | null
price
required

In the currency’s smallest unit: cents.

integer | null
salePrice
required
integer | null
saleEnds
required

The sale’s last day.

string | null
currency
required
string
aisle
required
string | null
inStock
required
boolean
url
required
string | null
suggested
required

Merran’s pick, not one the household chose.

boolean
packages
required
integer
sure
required

How many is worked out from the product’s size, not a guess.

boolean
sent
required

Sent to the cart last time.

boolean
sale
required

Its sale today, if it’s on one.

object
verdict
required

How good a sale is, against what the product usually costs: the lowest in a while, a normal sale, or barely off (under a tenth).

string
Allowed values: lowest sale small
usual
required

What it usually costs, in cents: its most common price over 90 days, else its regular price.

integer | null

Example

{
"store": "Fry's",
"location": {
"locationId": "70500822",
"name": "Fry's Food Stores - Phoenix",
"banner": "Fry's",
"domain": "frysfood.com",
"address": "4724 N 20th St, Phoenix, AZ"
},
"modality": "PICKUP",
"linked": true,
"sentAt": null,
"lines": [
{
"itemId": "0199e8b0-5a10-7a01-8b00-00000000001d",
"name": "milk",
"amount": "1 gallon",
"product": {
"id": "0001111041700",
"upc": "0001111041700",
"name": "Kroger 2% Reduced Fat Milk",
"brand": "Kroger",
"size": "1 gal",
"image": "https://www.kroger.com/product/images/medium/front/0001111041700",
"price": 349,
"salePrice": 299,
"saleEnds": "2026-10-21",
"currency": "USD",
"aisle": "Dairy",
"inStock": true,
"url": "https://www.frysfood.com/p/milk/0001111041700"
},
"suggested": true,
"packages": 1,
"sure": true,
"sent": false,
"sale": {
"verdict": "sale",
"usual": 349
}
}
]
}

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."
}
}
}

Kroger isn’t set up, or the household has no store.

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.