Dia APIdia.es ↗
Search and browse Día supermarket products, categories, offers, and nutritional data via 7 structured endpoints returning prices, stock, and facets.
What is the Dia API?
The Día supermarket API covers 7 endpoints that expose product listings, search results, category navigation, and live promotions from dia.es. The get_product_detail endpoint returns per-SKU nutritional information, ingredient lists, storage instructions, and multiple images, while search_products supports keyword queries with filter facets and pagination across the full Día catalog.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/a1d71c17-a0c7-43ac-8b5e-ed231981ce90/get_categories' \ -H 'X-API-Key: $PARSE_API_KEY'
Get all top-level product categories from the Dia supermarket navigation menu. Returns approximately 30 categories with their IDs, names, and URL slugs. These category IDs are used as input for get_subcategories and get_products_by_category.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of category objects each containing id, name, slug, and link"
},
"sample": {
"data": {
"categories": [
{
"id": "L128",
"link": "/novedades-y-recomendados/c/L128",
"name": "Novedades y recomendados",
"slug": "novedades-y-recomendados"
},
{
"id": "L105",
"link": "/frutas/c/L105",
"name": "Frutas",
"slug": "frutas"
},
{
"id": "L108",
"link": "/huevos-leche-y-mantequilla/c/L108",
"name": "Huevos, leche y mantequilla",
"slug": "huevos-leche-y-mantequilla"
}
]
},
"status": "success"
}
}About the Dia API
Category and Product Navigation
get_categories returns approximately 30 top-level categories, each with an id, name, slug, and link. Those category IDs feed directly into get_subcategories, which resolves child categories including a Todo entry for the unfiltered parent view. Both top-level and subcategory IDs are accepted by get_products_by_category, which returns paginated 20-item pages with per-product fields including sku_id, display_name, brand, prices, units_in_stock, image, and url.
Search and Bulk Retrieval
search_products accepts a query string (single or multi-word, e.g. aceite oliva) and returns 30-item pages with a facets array for narrowing results, plus total_items and full product objects. For large-scale category exports, get_all_products_by_category walks listing pages internally and returns a deduplicated set of product summaries in a single response. It accepts start_page and max_pages parameters (capped at 40 pages per call), returns a complete boolean, and includes a next_page integer so callers can resume where a previous call stopped.
Product Detail and Offers
get_product_detail takes a product_id (SKU) from any listing endpoint and returns the complete product record: prices with price, price_per_unit, currency, measure_unit, and strikethrough_price; ingredients with HTML text; nutritional_info with nutritional_values and vitamins; instructions covering storage and preparation; and a breadcrumb array for category context. get_offers retrieves currently discounted products grouped by category, including discount percentages and club pricing, using cursor-based pagination where each page surfaces two category groups.
The Dia API is a managed, monitored endpoint for dia.es — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dia.es 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 dia.es 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?+
- Track price changes and strikethrough prices for specific SKUs across the Día catalog.
- Build a grocery comparison tool using
search_productsfacets and per-unit pricing fields. - Extract nutritional data and ingredient lists from
get_product_detailfor diet-tracking applications. - Monitor active promotions with
get_offersto identify discounted club-price items by category. - Populate a category-browsing interface using
get_categoriesandget_subcategoriesIDs. - Bulk-export an entire product category with
get_all_products_by_categoryusingstart_pageandnext_pagefor resumable crawls. - Alert on stock availability changes using
units_in_stockreturned by listing and detail endpoints.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Día have an official developer API?+
What does `get_product_detail` return beyond basic pricing?+
product_id (SKU), including ingredients (with HTML-formatted text), nutritional_info broken into nutritional_values and vitamins, instructions for storage and preparation, multiple images, a breadcrumb array showing category path, and prices with both the shelf price and a strikethrough_price when a discount is active.How does pagination work differently across endpoints?+
get_products_by_category uses integer page numbers with a fixed page size of 20 items, and search_products uses integer page numbers at 30 items per page. get_offers uses cursor-based tokens: the response includes current_page and next_page token values, and each page surfaces two category groups of discounted products.