To get ALDI prices for a specific store, use Scavio's ALDI API. POST /api/v1/aldi/stores turns a ZIP code into nearby store ids, and POST /api/v1/aldi/search with a store_id returns that store's shelf price, sale price, unit price, stock level and aisle section for every matching product. /product adds ingredients and allergens, and service_type: "pickup" or "delivery" switches to the online price. Every call costs 1 credit, about $0.002 on the Growth plan billed yearly.
ALDI US has no public API, and aldi.us shows prices for one store and one shopping mode at a time, so every request below names its store. The responses are trimmed captures from November 2, 2026.
Step 1: Find the store
curl -s https://api.scavio.dev/api/v1/aldi/stores \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"zip": "60601", "limit": 3}'The nearest store, as captured:
{
"store_id": "12265",
"name": "ALDI - BAT 64 - Chicago",
"address": "1753 N Milwaukee Ave",
"city": "Chicago",
"state": "IL",
"zip": "60647",
"address_line_2": "Chicago, IL 60647",
"latitude": 41.9133413,
"longitude": -87.6817575,
"distance_miles": 3.6
}limit goes up to 50, nearest first. The stores call returns no opening hours or phone numbers.
Step 2: Search at that store
curl -s https://api.scavio.dev/api/v1/aldi/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "milk", "store_id": "12265"}'This returned 16 products in 3.0 s. The top of the response confirms what was priced, then one row:
{
"query": "milk",
"store": { "store_id": "12265", "service_type": "instore", "zip": null },
"total_results": 16,
"count": 16,
"products": [
{
"position": 1,
"product_id": "16902710",
"name": "Friendly Farms Whole Milk",
"brand": "Friendly Farms",
"size": "1 gal",
"price": 2.53,
"was_price": null,
"on_sale": false,
"discount_label": null,
"unit_price": "$0.02/fl oz",
"in_stock": true,
"stock_level": "highly_in_stock",
"category": "Plain Milk",
"in_store_location": "Cooler Doors",
"store_brand": true,
"dietary": ["Whole"],
"url": "https://www.aldi.us/store/aldi/products/16902710-friendly-farms-vitamin-d-milk-1-gal"
}
]
}Prices are dollars as numbers; unit_price is ALDI's own label, a string. A sale item carries was_price and discount_label: Simply Nature Organic Whole Omega-3 Milk was $4.29, was $4.39, labelled "2% off". stock_level is a level (highly_in_stock, in_stock, low_stock or out_of_stock), not a unit count. Add sort (price_low or price_high), limit (up to 60) and page to go further, or pass zip instead of store_id to use the nearest store.
Step 3: Read one product in full
curl -s https://api.scavio.dev/api/v1/aldi/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "16902710", "store_id": "495701"}'The same gallon at ALDI's New Dorp Lane store in Staten Island, NY, trimmed to the fields search does not return:
{
"product_id": "16902710",
"name": "Friendly Farms Whole Milk",
"size": "1 gal",
"price": 4.1,
"unit_price": "$0.03/fl oz",
"stock_level": "highly_in_stock",
"in_store_location": "Cooler Doors",
"store": { "store_id": "495701", "service_type": "instore", "zip": null },
"description": "Friendly Farms Whole Milk is packed with essential nutrients, including Vitamin D, to support your daily health. ...",
"ingredients": "Milk, Vitamin D3 Added.",
"warnings": "Contains: milk.",
"additional_info": []
}Same product id, $2.53 in Chicago and $4.10 in Staten Island. product_id also accepts an aldi.us product URL.
Step 4: Get the pickup or delivery price
curl -s https://api.scavio.dev/api/v1/aldi/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "milk", "store_id": "12265", "service_type": "pickup"}'The response's store.service_type reads pickup. One row, as captured:
{
"position": 8,
"product_id": "19546425",
"name": "Simply Nature Organic 2% Reduced Fat Milk",
"size": "64 fl oz",
"price": 4.15,
"unit_price": "$0.06/fl oz",
"stock_level": "highly_in_stock",
"in_store_location": null
}On the shelf at the same store it was $3.75, so the online price is 10.7% higher. Across the 16 milk products, 11 cost 10% to 13% more online and 5, including the gallon of whole milk, were unchanged. delivery returned the same prices as pickup, and in_store_location is null in both online modes.
Step 5: Compare stores
Loop Step 2 over the store ids you care about. We ran "milk" at six stores in six states:
| Store | Friendly Farms Whole Milk, 1 gal | Whole milk, half gallon |
|---|---|---|
| Chicago, IL (12265) | $2.53 | $1.46 |
| Dallas, TX (14655) | $2.59 | $1.54 |
| Atlanta, GA (14349) | $2.83 | $1.68 |
| Miami, FL (151248) | $3.07 | $1.83 |
| Alhambra, CA (17471) | $3.58 | $2.34 |
| Staten Island, NY (495701) | $4.10 | $2.56 |
Organic and lactose-free milk cost the same at all six. The full chart is in the best ALDI grocery price APIs.
All three endpoints
| Endpoint | What it returns | Credits |
|---|---|---|
/api/v1/aldi/stores | Up to 50 stores near a ZIP with store_id, address, coordinates and distance | 1 |
/api/v1/aldi/search | Up to 60 products a page at one store: price, sale price, unit price, stock level, aisle section, dietary labels | 1 |
/api/v1/aldi/product | One product at one store, plus description, ingredients and allergen warnings | 1 |
Errors are not charged: a missing store returns 400, an unknown product 404, and a temporary ALDI outage 502. Search took 2.1 to 13.3 s across our 28 calls, so set a client timeout of 60 seconds.
Getting started
- Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
- Copy your API key from the dashboard.
- Send a POST to
/api/v1/aldi/storeswith a ZIP, then to/api/v1/aldi/searchwith astore_id.
Try the ALDI API free in the playground first, or call it from Claude and other agents through the MCP server.
Reference: ALDI API overview · search · product · stores · ALDI app prices vs in-store prices
Frequently asked questions
Does ALDI have an API for prices?
ALDI US offers no public developer API for products, prices, stock or stores. Scavio's ALDI API returns that public data as JSON with one API key: a store locator by ZIP, search priced at the store you pick, and product detail with ingredients and allergens.
How do I find an ALDI store id?
POST a ZIP code to /api/v1/aldi/stores. It returns up to 50 stores, nearest first, each with store_id, name, address, coordinates and distance in miles. For ZIP 60601 the nearest was store 12265 at 1753 N Milwaukee Ave, Chicago, 3.6 miles away, on November 2, 2026.
Why does an ALDI search need a store?
Because ALDI prices belong to a store. The same gallon of Friendly Farms whole milk was $2.53 in Chicago and $4.10 in Staten Island on November 2, 2026. A search or product call without store_id or zip returns a 400 error instead of guessing, and it is not charged.
How do I get ALDI pickup or delivery prices?
Repeat the call with service_type set to pickup or delivery. The default, instore, is the shelf price. At the Chicago store we checked, 11 of 16 milk products cost 10% to 13% more online, and pickup and delivery prices were identical.
How much does ALDI data cost with Scavio?
Every ALDI call costs 1 credit: about $0.002 on the Growth plan billed yearly and $0.0043 on the $30 monthly Project plan. Errors such as a 400 or a 404 are not charged, and new accounts get 50 free credits with no card.