Discover/pnp API
live

pnp APIpnp.co.za ↗

Access Pick n Pay grocery products, specials, categories, store locations, and nutritional data via 8 structured API endpoints covering pnp.co.za.

Endpoint health
verified 2d ago
search_products_with_nutrition
get_product_detail
get_all_categories
get_stores
search_store_products
8/8 passing latest checkself-healing
Endpoints
8
Updated
10d ago

What is the pnp API?

The Pick n Pay API exposes 8 endpoints covering grocery product search, category browsing, promotional specials, branch-level pricing, and store locations from pnp.co.za. The search_products endpoint returns paginated product results with pricing, stock status, and facets for filtering by category, certification, or promotion. Product codes from search results chain directly into get_product_detail for full nutritional classifications and variant options.

This call costs1 credit / call— charged only on success
Try it
Page number (0-based)
Sort order
Search keyword (e.g. 'milk', 'bread')
Additional filter string appended to the search query (e.g. ':isOnPromotion:On+Promotion')
Number of results per page
→ api.parse.bot/scraper/b87810bc-903f-41b8-b38d-c5c911cab324/<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/b87810bc-903f-41b8-b38d-c5c911cab324/search_products?page=0&sort=relevance&query=milk&page_size=20' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 8 totalmissing one? ·

Full-text search over Pick n Pay's product catalog. Matches against product names and descriptions. Supports pagination, sorting by relevance or price, and filtering by category, certification, or promotion status. Each product in results carries pricing, stock status, and image URLs. Facets in the response enumerate available refinement dimensions with hit counts.

Input
ParamTypeDescription
pageintegerPage number (0-based)
sortstringSort order
queryrequiredstringSearch keyword (e.g. 'milk', 'bread')
filtersstringAdditional filter string appended to the search query (e.g. ':isOnPromotion:On+Promotion')
page_sizeintegerNumber of results per page
Response
{
  "type": "object",
  "fields": {
    "facets": "array of facet objects for filtering (category, certifications, promotion status)",
    "products": "array of product summary objects with code, name, price, images, stock, and availability",
    "pagination": "object with currentPage, pageSize, sort, totalPages, totalResults",
    "breadcrumbs": "array of breadcrumb objects for navigation context",
    "currentQuery": "object with query value and URL",
    "freeTextSearch": "string echoing the original search term"
  },
  "sample": {
    "data": {
      "facets": [
        {
          "name": "category",
          "values": [
            {
              "name": "Milk, Dairy & Eggs",
              "count": 943
            }
          ],
          "category": true
        }
      ],
      "products": [
        {
          "code": "000000000000349246_EA",
          "name": "PnP UHT Full Cream Milk 1L",
          "price": {
            "value": 17.99,
            "currencyIso": "ZAR",
            "formattedValue": "R17.99"
          },
          "stock": {
            "stockLevelStatus": "inStock"
          },
          "images": [
            {
              "url": "https://cdn-prd-02.pnp.co.za/sys-master/images/h69/h11/10794954915870/silo-product-image-v2-05Apr2022-180138-6001007041052-Straight_on-19006-4446_400Wx400H",
              "format": "product"
            }
          ],
          "available": true,
          "categoryNames": [
            "All Products",
            "Beverages",
            "Long Life Milk"
          ]
        }
      ],
      "pagination": {
        "sort": "relevance",
        "pageSize": 72,
        "totalPages": 18,
        "currentPage": 0,
        "totalResults": 1240
      },
      "breadcrumbs": [],
      "currentQuery": {
        "query": {
          "value": "milk:relevance"
        }
      },
      "freeTextSearch": "milk"
    },
    "status": "success"
  }
}

About the pnp API

Product Search and Catalog

The search_products endpoint accepts a query string and supports pagination via page and page_size, sorting via sort, and filter expressions via the filters parameter (e.g. :isOnPromotion:On+Promotion). Responses include a products array with each item's code, name, price, stock, images, and available flag, plus a facets array listing filterable dimensions such as category, certifications, and promotion status. The pagination object gives totalResults and totalPages for traversal. Category browsing follows the same shape: get_all_categories returns top-level department codes and names, and get_category_products accepts a category_id (e.g. beverages-423144840) to return products scoped to that department with breadcrumb context.

Product Detail and Nutritional Data

get_product_detail takes a product_code from any search or category response and returns images at multiple resolutions, a description string, a classifications array containing nutritional features and endorsements, exact stockLevel quantities, and price with oldPrice and savings fields when a promotion is active. The search_products_with_nutrition endpoint performs a search and enriches each result with that product's classification data in a single call. Its coverage object reports detailFetched and detailFailed counts per page, and page_size is capped at 20 because each result requires an individual detail lookup.

Specials and Branch Pricing

get_specials lists all products currently on promotion with oldPrice, savings, and promotion descriptions, optionally filtered to a specific category_id. For branch-specific prices, search_store_products accepts a store_id (the storeId from get_stores) alongside the query and returns products with price, inStock, and badges (e.g. SAVE, SMART SHOPPER) reflecting that branch's current inventory and promotions.

Store Locations

get_stores accepts an optional query to filter by name, city, suburb, or street, and returns each matching store's storeId, storeName, storeAddress, storeType (SUPER, EXPRESS, CLOTHING, etc.), telephone, email, tradingHours, and geolocation coordinates. Omitting the query returns all branches.

Reliability & maintenanceVerified

The pnp API is a managed, monitored endpoint for pnp.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pnp.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 pnp.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
2d ago
Latest check
8/8 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 savings on promoted products using get_specials with oldPrice and savings fields.
  • Build a grocery price comparison tool using search_store_products scoped to different storeId values.
  • Aggregate nutritional information across a product category using search_products_with_nutrition and its classifications output.
  • Display nearby Pick n Pay branches with trading hours and geolocation using get_stores.
  • Populate a category navigation tree from get_all_categories and resolve products with get_category_products.
  • Monitor stock levels for specific SKUs by polling get_product_detail for the stockLevel and stockLevelStatus fields.
  • Filter in-promotion products by department by combining a category_id with get_specials.
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 Pick n Pay have an official public developer API?+
Pick n Pay does not publish a public developer API or documentation for third-party access to its product catalog or store data. This Parse API provides structured access to that data.
How does `search_store_products` differ from `search_products`?+
search_products returns catalog-level pricing and stock valid across all stores. search_store_products requires a store_id from get_stores and returns prices, promotions, and inStock status specific to that branch, so the same product can show different prices or badge labels depending on the store.
What does the `classifications` field in `get_product_detail` contain?+
It is an array of classification groups, each with a set of named features. These features carry nutritional values (energy, protein, fat, carbohydrates, etc.) and endorsement or certification labels where the product carries them. Not every product has classifications populated.
Does the API cover Pick n Pay online order history or customer account data?+
No. The API covers public-facing product catalog data, specials, store locations, and nutritional information. Account-specific data such as order history, Smart Shopper balances, or saved lists is not exposed. You can fork this API on Parse and revise it to add endpoints targeting any public data the current spec does not include.
Are there any pagination constraints I should know about?+
search_products_with_nutrition caps page_size at 20 because each result on a page triggers an individual detail lookup. All other endpoints use 0-based page numbering via the page parameter, and the pagination object in every response provides totalPages and totalResults to guide traversal.
Page content last updated . Spec covers 8 endpoints from pnp.co.za.
Related APIs in Food DiningSee all →
safeway.com API
Access data from safeway.com.
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.
superc.ca API
Search for products and browse categories at Super C, a Canadian grocery chain, then view detailed product information and find nearby store locations by postal code. Get real-time access to pricing, availability, and inventory across Super C's network.
ocado.com API
Search and browse Ocado UK's grocery catalog, view detailed product information including nutritional data, and discover related items to add to your cart. Get instant search suggestions and manage your shopping cart contents 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.
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.
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.
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.