logo

Browse the Repco Catalogue

GuideUpdated 2026-07-10

The Repco catalogue endpoints let you browse a stored catalogue of ~137,000 products — filtering by category, brand, price, and freight flags — without consuming any scrape credits. Unlike the Officeworks catalogue (a live proxy), the Repco catalogue is materialised server-side and refreshed periodically, so browsing is fast and cheap. Prices and freight in the catalogue are a national reference captured in Brisbane; accurate customer-postcode pricing is captured live when you run a collection.

In the dashboard

  1. Open Suppliers → Repco → Catalog from the sidebar.
  2. The category tree loads on the left. Click any category to filter the results to it and its children.
  3. Use the filter bar to narrow by brand, price range, big & bulky, and in stock.
  4. Review the paginated results — product code, title, brand, retail price, member price, reference freight, and stock.
  5. Click Create collection from filter to scrape the filtered set (see Add Repco Parts for the manual flow).

Via the API

There are two read endpoints (browse the tree, list products) plus a one-call endpoint that turns a filter into a running collection.

Browse the category tree

Browse Category Tree

POST
https://multicartapi.com/api/v1/schedules/repco/categories/
API Key or Session Token

Returns the full Repco category tree with a product count on every node. No parameters are needed.

curl https://multicartapi.com/api/v1/schedules/repco/categories/ \
-X POST \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response
{
"code": 200,
"data": {
  "total": 14,
  "categories": [
    {
      "slug": "oils-fluids",
      "name": "Oils & Fluids",
      "top_category": "Oils & Fluids",
      "product_count": 4210,
      "children": [
        {
          "slug": "oils-fluids/engine-oil",
          "name": "Engine Oil",
          "top_category": "Oils & Fluids",
          "product_count": 980,
          "children": []
        }
      ]
    }
  ]
},
"status": 1
}

Slugs are hierarchical

Each node's slug is a full path, e.g. oils-fluids/engine-oil. Roots and children are ordered by descending product_count. Pass a category_slug to the products endpoint to filter to that node and all of its descendants.

List products in a category

List Products in Category

POST
https://multicartapi.com/api/v1/schedules/repco/categories/products/
API Key or Session Token

Returns paginated products from the stored catalogue, filtered by any combination of category, brand, price, and freight flags.

ParameterTypeRequiredDescription
category_slugstringOptionalCategory slug, e.g. `oils-fluids/engine-oil`. Matches the slug and all descendant slugs. Omit to search all categories.
brandstring or arrayOptionalA single brand or an array of brands, e.g. `["Castrol", "Penrite"]`.
price_min_centsintegerOptionalMinimum price in cents, e.g. `1000` = $10.00.
price_max_centsintegerOptionalMaximum price in cents.
big_and_bulkystringOptional`exclude` to drop bulky items (keeps items with an unknown flag), or `only` to return bulky items only.
in_stockstringOptional`true` to return only in-stock products.
sortstringOptionalSort order. One of: `price_asc`, `price_desc`, `newest`, `name`.
pageintegerOptional1-indexed page number.
page_sizeintegerOptionalProducts per page. Range 1–200.
curl https://multicartapi.com/api/v1/schedules/repco/categories/products/ \
-X POST \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "category_slug": "oils-fluids/engine-oil",
  "brand": ["Castrol", "Penrite"],
  "price_max_cents": 12000,
  "in_stock": "true",
  "sort": "price_asc",
  "page": 1,
  "page_size": 50
}'
Response
{
"code": 200,
"data": {
  "total": 132,
  "page": 1,
  "page_size": 50,
  "total_pages": 3,
  "products": [
    {
      "product_code": "A5685428",
      "title": "Castrol Transmax ATF Dex/Merc Multi-Vehicle 20L",
      "brand": "Castrol",
      "gtin13": "9310084033544",
      "top_category": "Oils & Fluids",
      "category_path": "Oils & Fluids > Automatic Transmission Fluid",
      "category_slug": "oils-fluids/automatic-transmission-fluid",
      "price_value": 207.0,
      "auto_club_price_value": 165.6,
      "freight_value": 0.0,
      "freight_ref_postcode": "4500",
      "big_and_bulky": true,
      "dangerous_goods": false,
      "in_store_only": true,
      "in_stock": true,
      "delivery_eligible": false,
      "pickup_eligible": true,
      "image": "https://www.repco.com.au/...jpg",
      "url": "https://www.repco.com.au/en/p/...A5685428"
    }
  ]
},
"status": 1
}

Product fields reference

FieldTypeDescription
product_codestringRepco product code — use this when adding parts to a collection.
titlestringProduct display name.
brandstringManufacturer or brand name.
gtin13stringGlobal Trade Item Number (barcode).
top_categorystringRoot category name.
category_pathstringHuman-readable category breadcrumb.
category_slugstringHierarchical slug for the product's category.
price_valuenumberRetail price, in dollars.
auto_club_price_valuenumberMember (RACQ / Auto Club) price, in dollars. May be null.
freight_valuenumberReference freight in dollars, captured in Brisbane.
freight_ref_postcodestringThe reference postcode the catalogue freight was captured at (a Brisbane location).
big_and_bulkybooleanWhether the item ships as bulky freight. May be null when unknown.
dangerous_goodsbooleanHazardous/restricted freight flag.
in_store_onlybooleanWhether the item is pickup-only (not delivery eligible).
in_stockbooleanNational stock availability at capture time.
delivery_eligiblebooleanWhether home delivery is available.
pickup_eligiblebooleanWhether click & collect is available.
imagestringAbsolute URL to the product image.
urlstringCanonical product page URL on Repco.

Reference vs live pricing

Catalogue prices and freight are captured once against a Brisbane reference location. When you scrape a collection, MCA re-captures the price, freight, and availability live at your chosen customer postcode — so a Repco collection's results reflect that shopper's real delivery cost, not the reference figure.

Create a collection from a filter

Turn the filter you just built into a running collection in a single call — MCA resolves the matching product codes, creates a Repco collection at your postcode, and enqueues it.

Create Collection from Filter

POST
https://multicartapi.com/api/v1/schedules/repco/categories/create_collection/
API Key or Session Token
ParameterTypeRequiredDescription
namestringRequiredCollection name.
customer_postcodestringRequiredPostcode value or Zipcode row ID. Freight and price are captured live here when the collection runs.
limitintegerOptionalHard cap on the number of products (maximum 5000).
selected_codesarrayOptionalExplicit product codes. When present, overrides the filter and uses exactly these codes (truncated to `limit`).
category_slugstringOptionalSame filter params as List Products — category, brand, price, big_and_bulky, in_stock. Ignored if `selected_codes` is supplied.
curl https://multicartapi.com/api/v1/schedules/repco/categories/create_collection/ \
-X POST \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "Castrol engine oil",
  "customer_postcode": "4500",
  "category_slug": "oils-fluids/engine-oil",
  "brand": "Castrol",
  "limit": 500
}'
Response
{
"code": 200,
"data": {
  "collection_id": 42110,
  "name": "Castrol engine oil",
  "product_count": 42,
  "applied_cap": false
},
"status": 1
}

This spends credits

Creating a collection from a filter charges 1 credit per matched product and starts scraping immediately. applied_cap: true means the match set was larger than limit and was truncated — no products are silently dropped. If your balance is too low the call returns code 402 and no collection is created.