Auchan APIauchan.fr ↗
Access Auchan.fr grocery catalog via API. Search products, browse categories, fetch nutritional details, find stores by postal code, and get autocomplete suggestions.
What is the Auchan API?
The Auchan.fr API covers 6 endpoints that expose the full French grocery catalog, including keyword search, category browsing, per-product nutritional and ingredient data, store locator, and autocomplete suggestions. The get_product_details endpoint returns over a dozen fields per product — ingredients, legal denomination, brand, origin country, and manufacturer contact — making it practical for nutrition tracking, price monitoring, and catalog aggregation.
curl -X GET 'https://api.parse.bot/scraper/86e0680a-9895-4fa6-a201-a7734f094e13/search_products?page=1&query=lait' \ -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 auchan-fr-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: Auchan.fr grocery SDK — search, browse categories, get details, find stores."""
from parse_apis.Auchan_fr_API import Auchan, ProductNotFound
client = Auchan()
# Search for products by keyword; limit= caps total items fetched.
for product in client.product_summaries.search(query="fromage", limit=3):
print(product.name, product.brand, product.rating)
# Drill into one product's full details via .first()
item = client.product_summaries.search(query="lait", limit=1).first()
if item:
detail = item.details()
print(detail.name, detail.brand, detail.description)
# Browse a category by constructing it from its ID
dairy = client.category(id="ca-n01")
for p in dairy.browse(limit=3):
print(p.name, p.availability)
# List all categories
for cat in client.categories.list(limit=5):
print(cat.name, cat.id)
# Find stores near a postal code
for store in client.stores.search(zipcode="59000", limit=3):
print(store.name, store.distance, store.type_name)
# Typed error handling for a missing product
try:
client.products.get(product_id="INVALID999")
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: product_summaries.search / details / category.browse / categories.list / stores.search / products.get")Full-text search over Auchan.fr product catalog. Returns paginated product summaries matching the keyword query. Results include name, brand, rating, and availability. Pagination via page number; total_count reflects the server-side match count.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search keyword (e.g. 'lait', 'fromage', 'beurre') |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search query used",
"products": "array of product summary objects",
"total_count": "integer, total number of products matching the query"
},
"sample": {
"data": {
"page": 1,
"query": "lait",
"products": [
{
"id": "61dece74-181e-4834-a413-f6fbcd725f24",
"url": "https://www.auchan.fr/auchan-lait-demi-ecreme/pr-C1718543",
"name": "AUCHAN Lait demi-écrémé",
"brand": "AUCHAN",
"rating": "4.9",
"image_url": "https://cdn.auchan.fr/media/example/B2CD/",
"productId": "C1718543",
"attributes": "10x1l",
"availability": "out_of_stock",
"review_count": "82"
}
],
"total_count": 30
},
"status": "success"
}
}About the Auchan API
Product Search and Catalog Browsing
The search_products endpoint accepts a query string (e.g. 'lait', 'fromage') and returns paginated product summaries including name, brand, rating, and availability. Pagination is controlled by the page parameter; the total_count field reflects the full server-side match count so you can calculate how many pages exist. The browse_category endpoint works the same way but scopes results to a specific category: pass a category_id from get_categories and the API adds the ca- prefix automatically if omitted.
Product Detail and Nutritional Data
For any product ID returned by search or browse — formatted like C1177828 — get_product_details fetches the complete product record. Response fields include ingredients, legal_name, description, origin (with country of manufacture), contact (manufacturer details), and a features key-value map for additional attributes such as weight, allergens, or certifications. This endpoint is the primary source for nutrition and regulatory data within the catalog.
Category Tree and Store Locator
get_categories returns the full Auchan.fr navigation tree as an array of objects with id, name, and url. These IDs feed directly into browse_category for structured catalog traversal. The get_stores endpoint accepts a French zipcode (2–5 digits) and returns nearby Auchan locations with name, type, address, city, latitude, longitude, and distance. Coverage depends on actual store presence — some postal codes will return an empty list.
Search Suggestions
get_search_suggestions takes a query and returns an array of suggestion objects, each with text, url, and type — either 'keyword' or 'category'. Category suggestions include additional category and par fields for hierarchical context. Suggestions are generated from a server-side pre-cached set, so uncommon or misspelled queries may return an empty list.
The Auchan API is a managed, monitored endpoint for auchan.fr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when auchan.fr 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 auchan.fr 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 French grocery price tracker by polling
search_productswith product keywords across categories. - Aggregate nutritional and ingredient data using
get_product_detailsfor meal planning or diet apps. - Power a store-finder feature by querying
get_storeswith user-supplied French postal codes. - Construct a category-based product browser using
get_categoriesIDs passed intobrowse_category. - Implement autocomplete in a grocery shopping app using
get_search_suggestionsfor live query refinement. - Compile a private product database including legal names and manufacturer contacts from
get_product_details. - Cross-reference origin country data from the
originfield to filter products by country of manufacture.
| 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 Auchan.fr have an official public developer API?+
What does `get_product_details` return beyond basic name and price?+
ingredients, legal_name, description, origin (including country of manufacture), contact (manufacturer details), and a features object containing additional attributes such as allergen declarations or certifications. brand and rating are also included.Are product prices returned by any endpoint?+
How does pagination work across search and category endpoints?+
search_products and browse_category accept an optional page integer. search_products also returns total_count, which lets you compute total pages. browse_category does not currently expose a total count field, so you'll need to iterate until a page returns fewer results than expected.Does the store locator cover all Auchan store formats in France?+
get_stores endpoint returns stores with a type and type_name field, so different formats (hypermarket, supermarket, etc.) are distinguishable in the response. However, coverage is limited to France and depends on actual Auchan store presence — postal codes in areas without Auchan locations return an empty stores array. International Auchan markets are not covered. You can fork this API on Parse and revise it to target a different regional Auchan domain if needed.