Discover/Woolworths API
live

Woolworths APIwoolworths.co.za

Access Woolworths SA food categories, product listings, nutritional data, pricing, and store locations via a structured API. 7 endpoints covering search and store locator.

Endpoint health
verified 3d ago
get_food_categories
get_product_listing
search_products
get_product_details
get_store_locator_suburbs
7/7 passing latest checkself-healing
Endpoints
7
Updated
10d ago

What is the Woolworths API?

This API exposes 7 endpoints covering Woolworths South Africa's food catalogue and store network. You can retrieve top-level food categories via get_food_categories, paginate through product listings with pricing, search by keyword, and pull full product detail records including ingredients, allergens, nutritional information, and images. Three store locator endpoints let you resolve provinces, suburbs, and nearby store addresses.

Try it

No input parameters required.

api.parse.bot/scraper/3c08f360-415f-4984-bcd1-846bc0d7dafc/<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/3c08f360-415f-4984-bcd1-846bc0d7dafc/get_food_categories' \
  -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 woolworths-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: Woolworths South Africa SDK — bounded, re-runnable."""
from parse_apis.Woolworths_South_Africa_API import Woolworths, ParseError

client = Woolworths()

# Browse food categories
for category in client.categories.list(limit=5):
    print(category.name, category.url)

# Search for products by keyword
for product in client.product_summaries.search(query="bread", limit=5):
    print(product.name, product.price, product.on_sale)

# Drill-down: get full details from a search result
item = client.product_summaries.search(query="chicken", limit=1).first()
if item:
    detail = item.details()
    print(detail.name, detail.brand, detail.rating, detail.review_count)
    for nutrient in detail.nutritional_info[:3]:
        print(nutrient.nutrient, nutrient.per_100g_ml, nutrient.unit)

# Browse products in a specific category (constructible by url/group_id)
pantry = client.category(url="ncat0010251")
for product in pantry.products(limit=3):
    print(product.name, product.price, product.price_per_kg)

# Find stores near a suburb
suburb = client.suburbs.list(limit=1).first()
if suburb:
    print(suburb.name, suburb.postal_code)
    for store in suburb.stores.list(distance=25, limit=3):
        print(store.name, store.address, store.phone)

# List provinces with availability flags
for province in client.provinces.list(limit=5):
    print(province.name, province.store_pickup_enabled, province.liquor_delivery_enabled)

# Handle errors gracefully
try:
    bad = client.category(url="invalid_category_xyz")
    list(bad.products(limit=1))
except ParseError as e:
    print(f"Error: {e}")

print("exercised: categories.list / product_summaries.search / details / category.products / suburbs.list / stores.list / provinces.list")
All endpoints · 7 totalmissing one? ·

Retrieves all top-level food categories from Woolworths via Constructor.io browse API. Each category includes a name and group_id suitable for use with get_product_listing. Categories include seasonal collections, product types (Bakery, Frozen Food), and dietary preferences.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "categories": "array of category objects with name and url (group_id)"
  },
  "sample": {
    "data": {
      "categories": [
        {
          "url": "ncat0010251",
          "name": "Pantry"
        },
        {
          "url": "cat606522",
          "name": "Promotions"
        },
        {
          "url": "ncat0010112",
          "name": "Meat, Poultry & Fish"
        },
        {
          "url": "ncat0010084",
          "name": "Bakery"
        }
      ]
    },
    "status": "success"
  }
}

About the Woolworths API

Food Catalogue Endpoints

get_food_categories returns an array of category objects, each with a name and url field. Those URL paths feed directly into get_product_listing as the required category_url parameter. get_product_listing returns a products array plus a total count, paginated in pages of 24 — use the offset integer parameter to walk through results. search_products accepts a query string and the same offset parameter, returning matching products with prices. Note that some search terms may return zero results if they do not match indexed product names on the site.

Product Detail

get_product_details takes a product_url path from any listing or search result and returns a structured object covering id, name, description, brand, images, ingredients, nutritional_info, allergens, dietary_info, and pricing. This is the endpoint to use when you need label-level data — macronutrient breakdowns, allergen flags, and dietary classifications — rather than just the summary price and name available in listing results.

Store Locator

Three endpoints cover physical store discovery. get_store_locator_provinces returns all South African provinces with storePickupEnabled and liquorDeliveryEnabled boolean flags per province. get_store_locator_suburbs returns a flat list of suburbs with name, id, and postalCode fields. Pass a suburb_id from that list into get_stores_by_suburb along with an optional distance radius (in km) to get nearby stores with name, address, and phone fields.

Reliability & maintenanceVerified

The Woolworths API is a managed, monitored endpoint for woolworths.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when woolworths.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 woolworths.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
3d ago
Latest check
7/7 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 South African grocery price tracker using product listings and pricing fields from get_product_listing.
  • Extract allergen and ingredient data from get_product_details to power a dietary restriction filtering tool.
  • Aggregate nutritional_info fields across product categories for meal planning or calorie tracking applications.
  • Map Woolworths store locations by suburb using get_stores_by_suburb with distance radius filtering.
  • Check province-level liquorDeliveryEnabled flags to determine delivery eligibility for alcohol products.
  • Sync Woolworths food catalogue data into a comparison shopping platform using search_products with paginated offsets.
  • Monitor price changes on specific products by polling get_product_details with known product URL paths.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Woolworths South Africa have an official developer API?+
Woolworths SA does not publish a public developer API or API documentation for third-party access to its product catalogue or store data.
What product-level fields does get_product_details return beyond basic pricing?+
get_product_details returns ingredients, nutritional_info, allergens, dietary_info, images, brand, and description in addition to price and product identifiers. This makes it the appropriate endpoint when you need label-quality data rather than just the name and price surfaced in listing results.
Does the API cover non-food departments like clothing or homeware?+
Not currently. The API covers the food department — categories, product listings, search, and product details are all scoped to food. Store locator endpoints cover all Woolworths stores regardless of department. You can fork this API on Parse and revise it to add endpoints targeting other department category paths.
Does get_product_listing support filtering by dietary flag or price range within a category?+
The endpoint accepts only category_url and offset as inputs; there is no server-side filter for dietary flags or price range. Filtering on those fields would need to be done client-side against the returned products array. You can fork this API on Parse and revise it to expose additional filter parameters if the underlying category pages support them.
How does pagination work across listing and search endpoints?+
Both get_product_listing and search_products return pages of 24 products. The response includes a total count so you can calculate how many pages exist. Pass multiples of 24 (0, 24, 48, ...) as the offset integer to retrieve subsequent pages.
Page content last updated . Spec covers 7 endpoints from woolworths.co.za.
Related APIs in Food DiningSee all →
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.
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.
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.
wholefoodsmarket.com API
Search for grocery products, browse weekly sales, and find store locations at Whole Foods Market. Returns pricing, availability, ingredients, and nutritional information.
coles.com.au API
Search and browse Coles supermarket products by category, view detailed product information, and discover current specials all in one place. Find exactly what you're looking for with powerful search functionality and organized category navigation.
sainsburys.co.uk API
Access Sainsbury's grocery catalogue: search products by keyword, browse the full category hierarchy, retrieve detailed product information, and discover trending searches.
marksandspencer.com API
marksandspencer.com API