ALDI APInew.aldi.us ↗
Search ALDI US grocery products by keyword and ZIP code. Get pricing, sale status, availability, dietary attributes, and product details via 2 structured endpoints.
What is the ALDI API?
The new.aldi.us API provides 2 endpoints for querying ALDI US grocery products by keyword and store location. The search_products endpoint returns up to 60 products per request, each with name, price, size, sale status, availability, image URL, and a direct product link scoped to a store near a given ZIP code. A companion get_product_details endpoint exposes additional fields including brand, dietary attributes, weight estimate, and pricing unit for a specific product ID.
curl -X GET 'https://api.parse.bot/scraper/31f011bb-8718-4424-bcff-0f9f6bb1b28a/search_products?sort=bestMatch&limit=5&query=chicken&zip_code=32824' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace new-aldi-us-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ALDI US Grocery Products API — search, filter, and inspect products."""
from parse_apis.new_aldi_us_api import Aldi, Sort, ProductNotFound
client = Aldi()
# Search for chicken products sorted by price (low to high), capped at 5 items.
for product in client.products.search(query="chicken", sort=Sort.PRICE_ASC, limit=5):
print(product.name, product.price_display, product.size, product.stock_status)
# Drill into the first search hit for full details including weight estimate.
product = client.products.search(query="milk", limit=1).first()
if product:
detail = client.products.get(product_id=product.product_id)
print(detail.name, detail.price_display, detail.weight_estimate, detail.dietary_attributes)
# Typed error: attempt to fetch a product that does not exist.
try:
client.products.get(product_id="0000000")
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: products.search / products.get / Sort enum / ProductNotFound error")
Search ALDI grocery products by keyword, scoped to a store near the given ZIP code. Returns product name, price, size, availability, sale status, image, and direct product link. Results are auto-iterated; pass limit to cap total items returned.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. |
| limit | integer | Maximum number of products to return (max 60). |
| queryrequired | string | Search keyword. |
| zip_code | string | 5-digit US ZIP code for store location context. |
{
"type": "object",
"fields": {
"query": "string",
"products": "array of product objects",
"zip_code": "string",
"total_results": "integer"
},
"sample": {
"data": {
"query": "chicken",
"products": [
{
"name": "Kirkwood Family Pack Chicken Breasts",
"sale": null,
"size": "per lb",
"brand": "kirkwood",
"price": "10.95",
"available": true,
"image_url": "https://d2lnr5mha7bycj.cloudfront.net/product-image/file/large_53ce195e-25c6-4388-a5f5-19f60b060a63.jpg",
"product_id": "19554637",
"product_url": "https://www.aldi.us/store/aldi/product/19554637-fresh-family-pack-chicken-breasts-per-lb",
"pricing_unit": "$2.19 / lb",
"stock_status": "Many in stock",
"price_display": "$10.95"
}
],
"zip_code": "32824",
"total_results": 5
},
"status": "success"
}
}About the ALDI API
Endpoints and Core Data
The search_products endpoint accepts a required query string and an optional 5-digit zip_code to scope results to a nearby ALDI store. It returns a products array alongside total_results and the echoed zip_code. Each product object includes name, price, size, available, a sale object (or null when no promotion is active), image_url, and product_url. An optional limit parameter caps results at a maximum of 60, and a sort parameter controls result ordering.
Product Detail Lookup
Once you have a product_id from search results, pass it to get_product_details to retrieve enriched data for that item. The response adds brand, pricing_unit, dietary attributes, and a weight estimate not returned in bulk search results. The same zip_code parameter applies here, so pricing and availability reflect a specific store location rather than a national default.
Location Scoping and Sale Data
Both endpoints accept zip_code, which matters for ALDI because pricing and in-store availability can vary by location. The sale field in both endpoints is either a structured object describing the promotion or null, making it straightforward to filter for discounted items. The available boolean indicates whether the product is currently in stock at the resolved store.
The ALDI API is a managed, monitored endpoint for new.aldi.us — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when new.aldi.us changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official new.aldi.us API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a grocery price tracker that monitors ALDI product prices and flags when a
saleobject appears on a watched item. - Compare ALDI shelf prices across multiple ZIP codes by calling
search_productswith the samequeryand differentzip_codevalues. - Power an ingredient cost estimator that looks up ALDI prices for recipe components using
search_products. - Filter ALDI search results for dietary-specific products using attributes returned by
get_product_details. - Aggregate ALDI weekly sale items by scanning product results for non-null
saleobjects across common grocery categories. - Build a product availability checker that uses the
availableboolean to alert users when a specific ALDI item is back in stock near their ZIP code. - Enrich a grocery app catalog with ALDI product images and direct links using the
image_urlandproduct_urlfields from search results.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ALDI have an official public developer API?+
What does the `sale` field actually contain, and how is it different from `price`?+
price field is the standard shelf price as a string. The sale field is either null (no current promotion) or a structured object describing the active sale. Checking for a non-null sale is the reliable way to identify discounted products — the price field alone does not distinguish sale pricing from regular pricing.Does the ZIP code affect results, or is it cosmetic?+
search_products and get_product_details use the provided zip_code to resolve a nearby store and return that store's pricing and availability. Omitting zip_code may return a default or national view that doesn't reflect local stock.Does the API return customer reviews or ratings for ALDI products?+
Can I retrieve the full ALDI product catalog or browse by category?+
search_products rather than category browsing or full catalog export. Results are capped at 60 items per call via the limit parameter. You can fork it on Parse and revise it to add a category-browse endpoint covering ALDI's department structure.