Discover/PriceCheck API
live

PriceCheck APIpricecheck.co.za

Search PriceCheck.co.za products and compare store offers across South African retailers. Get prices in ZAR, store names, addresses, and product details.

Endpoint health
verified 6h ago
search_products
get_product_offers
2/2 passing latest checkself-healing
Endpoints
2
Updated
6h ago

What is the PriceCheck API?

The PriceCheck.co.za API gives developers access to South African retail pricing data through 2 endpoints. Use search_products to query the full PriceCheck catalogue and retrieve product names, best prices in ZAR, and retailer names, then pass the returned product_id to get_product_offers to fetch every store's individual listing price, the store's registered address, and the full price range across all offers.

This call costs2 credits / call— charged only on success
Try it
Result page number, 1-based, at most 500. Use total_pages / has_more from the response to continue.
Free-text product search term, e.g. a product name or model.
api.parse.bot/scraper/6de3452a-00ab-44bc-b023-4f6c36b1e64e/<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/6de3452a-00ab-44bc-b023-4f6c36b1e64e/search_products?query=samsung+galaxy+s24' \
  -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 pricecheck-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: PriceCheck South Africa — search products, compare store offers."""
from parse_apis.pricecheck_co_za_api import PriceCheck, ProductNotFound

client = PriceCheck()

# Search for products and browse the first few results.
for summary in client.product_summaries.search(query="samsung galaxy s24", limit=5):
    print(summary.name, summary.price, summary.currency, "-", summary.store)

# Drill into the first hit to see every store offer.
hit = client.product_summaries.search(query="samsung galaxy s24", limit=1).first()
if hit is not None:
    product = hit.details()
    print(product.name, product.brand, product.category)
    print(f"Price range: {product.low_price} – {product.high_price} {product.currency}")

    if product.offers:
        for offer in product.offers:
            label = "SPECIAL" if offer.on_special else "regular"
            print(f"  {offer.store}: {offer.price} ({label}, in stock: {offer.in_stock})")

# Point lookup by a known product_id with error handling.
try:
    detail = client.products.get(product_id="242275225")
    print(detail.name, detail.offer_count, "offers")
except ProductNotFound:
    print("Product not found")

print("exercised: product_summaries.search / details / products.get")
All endpoints · 2 totalmissing one? ·

Searches PriceCheck for products matching a free-text query and returns one page of product listings. Each result is one product with its name, the current best price in ZAR, and the store (retailer) offering that price, plus the product_id needed by get_product_offers. One page holds up to about 18 products; the page input selects the page (omitted = page 1) and total_pages/has_more come from the site's own pagination, so callers step through pages until has_more is false. A query with no matches returns an empty results array.

Input
ParamTypeDescription
pageintegerResult page number, 1-based, at most 500. Use total_pages / has_more from the response to continue.
queryrequiredstringFree-text product search term, e.g. a product name or model.
Response
{
  "type": "object",
  "fields": {
    "page": "page number returned",
    "query": "the search term as applied",
    "results": "array of products; each has product_id (string, use with get_product_offers), name, description, price (number, best price), currency (ZAR), store (retailer name offering the best price), in_stock (boolean), image URL and PriceCheck product url",
    "has_more": "true when a later page exists",
    "total_pages": "total number of result pages the site reports for this query"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "samsung galaxy s24",
      "results": [
        {
          "url": "https://www.pricecheck.co.za/offers/242275225/Samsung+Galaxy+S24+Ultra",
          "name": "Samsung Galaxy S24 Ultra",
          "image": "https://images.pricecheck.co.za/images/objects/hash/product/d75/3f5/22a/image_medium_242275225.jpg?1710293440",
          "price": 17999,
          "store": "cashconverters",
          "currency": "ZAR",
          "in_stock": true,
          "product_id": "242275225",
          "description": "Galaxy S24 Ultra"
        }
      ],
      "has_more": true,
      "total_pages": 86
    },
    "status": "success"
  }
}

About the PriceCheck API

Search and Discovery

The search_products endpoint accepts a free-text query string and returns a paginated list of matching products. Each result includes a product_id (used downstream), name, description, price (the current best price in ZAR), and the store name offering that price. Pagination is 1-based via the page parameter, capped at page 500; the response includes total_pages and a has_more boolean so you can walk through deep result sets programmatically.

Per-Product Offer Details

Passing a product_id to get_product_offers returns the full offer picture for that product. The response includes name, brand, category, images (array of image URLs), currency (always ZAR), low_price, high_price, and an offers array. Each entry in offers carries the retailer name (store), a store_id, offer_id, the store's physical or registered address (when available), and that store's individual listing price. This makes it straightforward to build price-comparison views or store-locator features against live South African retail data.

Coverage and Scope

All prices are denominated in ZAR and reflect listings on PriceCheck.co.za, which aggregates South African online and brick-and-mortar retailers. Product data is organised by PriceCheck's own category taxonomy, returned as the category field in get_product_offers. The brand field is returned where PriceCheck associates one with the product, and may be null for unbranded or generic items.

Reliability & maintenanceVerified

The PriceCheck API is a managed, monitored endpoint for pricecheck.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pricecheck.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 pricecheck.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
6h ago
Latest check
2/2 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
  • Build a price-comparison tool showing the cheapest South African retailer for any product query
  • Track ZAR price changes across multiple stores for a given product_id over time
  • Enrich a product catalogue with brand, category, and image data from PriceCheck listings
  • Display a store locator using the physical address field returned in each offer
  • Identify the spread between low_price and high_price to flag price anomalies or deals
  • Power a shopping assistant that maps a free-text product query to a ranked offer list
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 PriceCheck.co.za have an official developer API?+
PriceCheck does not publish a public developer API or documented REST endpoint for third-party use. This Parse API is the available programmatic option for accessing their product and pricing data.
What does get_product_offers return beyond just the price?+
It returns the product's name, brand (or null), category label, an array of image URLs, and the full offers array. Each offer includes the store name, store_id, offer_id, that store's individual ZAR listing price, and the store's registered or physical address where PriceCheck lists one. The response also surfaces low_price and high_price across all offers so you can see the full price range in one call.
How does pagination work in search_products?+
The page parameter is 1-based and accepts values up to 500. The response includes total_pages (the number of pages PriceCheck reports for that query) and a has_more boolean. Iterate by incrementing page until has_more is false or you reach total_pages.
Are product reviews or ratings included in the API responses?+
Not currently. The API covers product listings, pricing, store offers, and store addresses via search_products and get_product_offers. Review scores and user-generated ratings are not part of the current response schema. You can fork this API on Parse and revise it to add a reviews endpoint if that data is available on the product page.
Is the store address always populated in offer results?+
The address field is returned where PriceCheck associates a physical or registered address with the retailer. For some stores it may be null, particularly for online-only retailers that PriceCheck does not link to a street address. The field is present in every offer object regardless, so null-checking is straightforward.
Page content last updated . Spec covers 2 endpoints from pricecheck.co.za.
Related APIs in EcommerceSee all →
pricechecker.com API
Search and compare products listed on PriceCheck, including internet plans, data contracts, and electronics. Retrieve detailed pricing, specifications, and contract terms, and compare multiple listings side-by-side across providers.
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.
clicks.co.za API
Search for and browse thousands of products from Clicks, South Africa's leading pharmacy, health, home and beauty retailer, with access to detailed product information, pricing, and the complete category structure. Discover items by keyword search or explore products organized by category to find exactly what you need.
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.
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.
spycart.me API
Access data from Spycart.me.
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.
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.