Dis-Chem APIdischem.co.za ↗
Access Dis-Chem product data via API: search results, prices, SKUs, barcodes, and catalog images from South Africa's largest pharmacy retailer.
What is the Dis-Chem API?
The Dis-Chem API exposes 5 endpoints for retrieving product data from dischem.co.za, covering search results, product details, catalog images, and barcode extraction. The search_products endpoint returns up to 26 products per query — each with name, price, image URL, and product page URL — while search_products_with_barcodes goes further, visiting individual product pages to surface EAN-13, UPC-A, and other barcode formats alongside structured product metadata.
curl -X GET 'https://api.parse.bot/scraper/305eea20-cd53-4922-95ed-a6cadbfa4645/search_product?query=aspirin' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for a product by query on Dis-Chem and return the first matching product's page URL and all catalog images found on that product page. Useful for discovering product URLs and image assets from a keyword.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Product name or keywords to search for (e.g. 'aspirin', 'paracetamol'). |
{
"type": "object",
"fields": {
"images": "array of image URLs from the product catalog",
"image_count": "number of images found",
"product_url": "URL of the matched product page"
},
"sample": {
"data": {
"images": [
"https://www.dischem.co.za/api/catalog/product/D/i/Dis-Chem-Magento-Website-Placeholder-Image-pharmacist_1_36_32.png"
],
"image_count": 1,
"product_url": "https://www.dischem.co.za/bayer-aspirin-cardio-100mg-30-s-630"
},
"status": "success"
}
}About the Dis-Chem API
Search and Product Discovery
The search_products endpoint accepts a query string (e.g. 'vitamin c', 'sunscreen') and returns a list of matching products from the Dis-Chem search results page. Each product object includes name, price, image_url, product_url, and description (which is null when not shown in search results). Up to ~26 products are returned per call. For a single best-match result with its catalog images, search_product (singular) returns the first matching product's product_url plus an array of all associated image URLs and an image_count.
Product Details and Images
get_product_details accepts either a slug (the trailing path of a Dis-Chem product URL, e.g. 'bayer-aspirin-cardio-100mg-30-s-630') or a query string. It returns title, price (as a decimal string), sku, and the full url. get_product_images works similarly, accepting a slug and returning the full product_url plus an array of all catalog image URLs — useful when you need multiple angles or pack shots for a specific product.
Barcode Extraction with Pagination
search_products_with_barcodes is the most data-intensive endpoint. It searches for a query, processes result pages (10 products per page), and visits each individual product page to extract barcodes from sources such as the product's 'More Information' table. The response includes barcode (a digit string), barcode_format (GTIN-8, UPC-A, EAN-13, or similar), product_name, and product_url for each matched product. Pagination is handled via the page and max_pages parameters, and the next_page field in the response lets you continue scanning where a prior call left off. Fields like total_pages, pages_scanned, products_scanned, barcodes_found, and pagination_incomplete give you precise control over large result sets.
The Dis-Chem API is a managed, monitored endpoint for dischem.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dischem.co.za 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 dischem.co.za 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 price-comparison tool for South African pharmacy products using
priceandtitlefields fromget_product_details - Populate a product catalog with high-resolution images by collecting
imagesarrays viaget_product_images - Match retail barcodes to Dis-Chem listings for inventory reconciliation using
search_products_with_barcodes - Monitor price changes over time for specific products by polling
get_product_detailswith a knownslug - Aggregate search result listings for healthcare or supplement categories using
search_productswith category-level queries - Extract SKUs from Dis-Chem to cross-reference with supplier or ERP systems via the
skufield inget_product_details - Discover product page URLs for downstream scraping or link-building by using
search_productkeyword lookups
| 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 Dis-Chem offer an official public developer API?+
What does `search_products_with_barcodes` return and how does pagination work?+
product_name, product_url, barcode (digit string), and barcode_format. Results are paginated in 10-product pages. Pass the next_page value from one response as the page parameter in the next call to continue scanning. The pagination_incomplete boolean tells you whether unprocessed pages remain.Does the API cover stock availability or whether a product is in-store vs. online-only?+
title, price, sku, url, and images, but does not expose stock levels, store availability, or fulfilment channel. You can fork this API on Parse and revise it to add an endpoint that captures availability data from the product page.Are product reviews or ratings included in any endpoint?+
How many products does `search_products` return per call, and can I page through more results?+
search_products returns up to approximately 26 products from a single search results page; it does not currently support pagination across multiple pages. search_products_with_barcodes does support multi-page scanning via page and max_pages parameters, but only surfaces products where a barcode was found. You can fork this API on Parse and revise search_products to add page-offset support for broader result coverage.