Discover/Clicks API
live

Clicks APIclicks.co.za

Access Clicks South Africa product listings, pricing, promotions, and category hierarchy via a structured API. Search by keyword or browse by category.

This API takes change requests — .
Endpoint health
verified 15h ago
search_products
get_product_details
get_categories
get_category_products
4/4 passing latest checkself-healing
Endpoints
4
Updated
16h ago

What is the Clicks API?

The Clicks.co.za API provides 4 endpoints for querying products, prices, promotions, and category structure from South Africa's largest pharmacy and health-beauty retailer. Use search_products to run keyword searches across the full catalogue, get_product_details to retrieve SKU-level data including brand, rating, stock status, and colour, or get_category_products and get_categories to navigate the full category hierarchy.

This call costs1 credit / call— charged only on success
Try it
Zero-based page number for pagination.
Search keyword or phrase (e.g. 'sunscreen', 'shampoo', 'vitamin c').
Number of products per page (1-100).
api.parse.bot/scraper/38a6e625-926b-40aa-a017-3bb436ae30d4/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/38a6e625-926b-40aa-a017-3bb436ae30d4/search_products?page=0&query=sunscreen&hits_per_page=20' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 clicks-co-za-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: Clicks.co.za SDK — browse categories, search, and drill into product details."""
from parse_apis.clicks_co_za_api import Clicks, Sort, ProductNotFound

client = Clicks()

# Browse top-level categories to discover what's available.
for cat in client.categories.list(limit=5):
    print(cat.name, f"({cat.product_count} products)")

# Pick a category and browse its products sorted by price ascending.
skincare = client.category(full_path="Beauty > Skincare")
for item in skincare.products.list(sort=Sort.PRICE_ASC, hits_per_page=5, limit=5):
    print(item.product_name, item.price, item.brand)

# Search for a product by keyword, then drill into the first hit's full details.
hit = client.product_summaries.search(query="sunscreen", limit=1).first()
if hit is not None:
    try:
        detail = hit.details()
        print(detail.product_name, detail.price, detail.stock_status)
        print("online_only:", detail.online_only, "rating:", detail.rating)
    except ProductNotFound:
        print("Product no longer available")

# Direct point-lookup using an id discovered from a previous search result.
if hit is not None:
    product = client.products.get(product_id=hit.product_id)
    print(product.product_name, product.category)

print("exercised: categories.list / category.products.list / product_summaries.search / details / products.get")
All endpoints · 4 totalmissing one? ·

Search products by keyword. Returns paginated results with product details including price, availability, promotions, and category. One API call per page; use the page parameter to paginate through results.

Input
ParamTypeDescription
pageintegerZero-based page number for pagination.
queryrequiredstringSearch keyword or phrase (e.g. 'sunscreen', 'shampoo', 'vitamin c').
hits_per_pageintegerNumber of products per page (1-100).
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "products": "array of product objects with product_id, sku, product_name, brand, price, original_price, promotional_price, promotion, product_url, image_url, in_stock, stock_status, category, description, rating",
    "total_hits": "integer total number of matching products",
    "total_pages": "integer total number of pages available",
    "hits_per_page": "integer number of products per page"
  },
  "sample": {
    "data": {
      "page": 0,
      "products": [
        {
          "sku": "00005B3R",
          "brand": "SUNprotect",
          "price": 129,
          "rating": 4.53,
          "category": "Beauty > Skincare > Sun Care > Face Sunscreen",
          "in_stock": true,
          "image_url": "https://www.clicks.co.za/medias/?context=bWFzdGVyfHByb2R1Y3QtaW1hZ2Vz...",
          "promotion": null,
          "product_id": "290870",
          "description": "<p> Clicks Sun Protect SPF 50 Face Cream 50 ml is water resistant...</p>",
          "product_url": "https://www.clicks.co.za/sunprotect_spf50-face-cream-50ml/p/290870",
          "product_name": "SUNprotect SPF50 Face Cream 50ml",
          "stock_status": "lowStock",
          "original_price": 129,
          "promotional_price": null
        }
      ],
      "total_hits": 279,
      "total_pages": 93,
      "hits_per_page": 3
    },
    "status": "success"
  }
}

About the Clicks API

What the API Covers

The Clicks.co.za API exposes product and category data from Clicks, a South African retailer covering pharmacy, health, home, and beauty. Four endpoints cover the main access patterns: keyword search, product detail lookup, category browsing, and category hierarchy discovery. All prices are returned in ZAR.

Search and Browse Endpoints

search_products accepts a required query string and optional page (zero-based) and hits_per_page (1–100) parameters. Each result object in the products array includes product_id, sku, product_name, brand, price, original_price, promotional_price, and promotion, giving you both the current selling price and any active discount details alongside the total hit count across total_hits and total_pages.

get_category_products takes a category path using > as the level separator (e.g. 'Beauty > Skincare > Sun Care'), plus optional page, hits_per_page, and sort parameters. It returns the same product array shape as search results alongside total_hits and total_pages for that category slice.

Product Details and Category Hierarchy

get_product_details accepts a numeric product_id (as returned by the listing endpoints) and returns extended fields not available in list views: rating, in_stock, colour, format, image_url (300×300), new flag, and category path. get_categories can be called without arguments to retrieve top-level categories, or with a parent path to list direct children. Each category object includes name, full_path, product_count, and level, making it straightforward to build or traverse the full tree programmatically.

Reliability & maintenanceVerified

The Clicks API is a managed, monitored endpoint for clicks.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when clicks.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 clicks.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.

Last verified
15h ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track price changes and promotional pricing on Clicks health and beauty products over time using price, original_price, and promotional_price fields.
  • Build a South African pharmacy product catalogue app by combining get_categories traversal with get_category_products pagination.
  • Monitor stock availability for specific SKUs using the in_stock boolean returned by get_product_details.
  • Aggregate brand-level product counts across categories using brand from search results and product_count from category nodes.
  • Power a health and beauty price comparison tool by searching competitor keywords and comparing price and promotional_price fields.
  • Enrich an internal product database with rating, colour, format, and image_url by batch-calling get_product_details with known product IDs.
  • Discover category structure depth and product distribution for retail analytics using get_categories with successive parent paths.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Clicks have an official developer API?+
Clicks does not publish a public developer API. There is no documented API portal or API key program available at clicks.co.za for third-party developers.
What does `get_product_details` return that the listing endpoints don't?+
get_product_details returns fields specific to a single product that are absent from list views: rating (0–5 average), in_stock (boolean), colour, format (e.g. balm, spray), image_url, and a new flag. The listing endpoints return pricing and promotional fields but not these detail-level attributes.
How does pagination work across the search and category endpoints?+
Both search_products and get_category_products use zero-based page numbering via the page parameter. The response includes total_hits and total_pages so you can determine how many calls are needed to retrieve the full result set. Each call covers one page; there is no cursor or offset mechanism.
Does the API return customer reviews or review text?+
No review text or individual review records are currently returned. get_product_details exposes an aggregate rating score (0–5), but individual review content is not covered. You can fork this API on Parse and revise it to add a reviews endpoint if that data is needed.
Is store-level stock or click-and-collect availability exposed?+
Not currently. The API returns a single in_stock boolean from get_product_details reflecting general availability, but per-store or click-and-collect inventory is not covered. You can fork this API on Parse and revise it to add a store-level availability endpoint.
Page content last updated . Spec covers 4 endpoints from clicks.co.za.
Related APIs in EcommerceSee all →
products.checkers.co.za API
Search and browse products from Checkers South Africa's online store, compare prices, and discover current specials and deals. Explore the complete product catalog by category to find items and get detailed product information all in one place.
checkers.co.za API
Search for groceries, browse product categories, and find Checkers store locations across South Africa all in one place. Get detailed product information, discover popular items, and locate the nearest store to shop conveniently.
dischem.co.za API
Search for pharmacy products and retrieve detailed information including prices, descriptions, and images directly from Dis-Chem's catalog. Browse product listings and access complete product details all in one place.
pnp.co.za API
Search for groceries, browse products by category, and discover current specials at Pick n Pay stores, while accessing detailed product information, store locations, and fresh produce availability all in one place.
shoprite.co.za API
Access product listings, specials, categories, and store information from Shoprite.co.za. Search products, browse departments, retrieve pricing and availability by store location, and compare prices across retailers.
spar.co.za API
Search the SPAR South Africa grocery catalog by product name to find items with their descriptions, sizes, and images. Note that prices aren't available since they vary by store location.
bidorbuy.co.za API
Search and browse products on Bob Shop, view detailed product information, seller profiles and ratings, explore category listings, and discover current promotions. Get search suggestions and navigate the complete product catalog to find exactly what you're looking for.
woolworths.co.za API
Browse Woolworths South Africa's food categories and search for specific products while accessing detailed nutritional information and weight-based pricing. Find store locations across the country by province and suburb to check availability and plan your shopping trips.