Browse the Repco Catalogue
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
- Open Suppliers → Repco → Catalog from the sidebar.
- The category tree loads on the left. Click any category to filter the results to it and its children.
- Use the filter bar to narrow by brand, price range, big & bulky, and in stock.
- Review the paginated results — product code, title, brand, retail price, member price, reference freight, and stock.
- 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
https://multicartapi.com/api/v1/schedules/repco/categories/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 '{}'{
"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
https://multicartapi.com/api/v1/schedules/repco/categories/products/Returns paginated products from the stored catalogue, filtered by any combination of category, brand, price, and freight flags.
| Parameter | Type | Required | Description |
|---|---|---|---|
category_slug | string | Optional | Category slug, e.g. `oils-fluids/engine-oil`. Matches the slug and all descendant slugs. Omit to search all categories. |
brand | string or array | Optional | A single brand or an array of brands, e.g. `["Castrol", "Penrite"]`. |
price_min_cents | integer | Optional | Minimum price in cents, e.g. `1000` = $10.00. |
price_max_cents | integer | Optional | Maximum price in cents. |
big_and_bulky | string | Optional | `exclude` to drop bulky items (keeps items with an unknown flag), or `only` to return bulky items only. |
in_stock | string | Optional | `true` to return only in-stock products. |
sort | string | Optional | Sort order. One of: `price_asc`, `price_desc`, `newest`, `name`. |
page | integer | Optional | 1-indexed page number. |
page_size | integer | Optional | Products 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
}'{
"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
| Field | Type | Description |
|---|---|---|
product_code | string | Repco product code — use this when adding parts to a collection. |
title | string | Product display name. |
brand | string | Manufacturer or brand name. |
gtin13 | string | Global Trade Item Number (barcode). |
top_category | string | Root category name. |
category_path | string | Human-readable category breadcrumb. |
category_slug | string | Hierarchical slug for the product's category. |
price_value | number | Retail price, in dollars. |
auto_club_price_value | number | Member (RACQ / Auto Club) price, in dollars. May be null. |
freight_value | number | Reference freight in dollars, captured in Brisbane. |
freight_ref_postcode | string | The reference postcode the catalogue freight was captured at (a Brisbane location). |
big_and_bulky | boolean | Whether the item ships as bulky freight. May be null when unknown. |
dangerous_goods | boolean | Hazardous/restricted freight flag. |
in_store_only | boolean | Whether the item is pickup-only (not delivery eligible). |
in_stock | boolean | National stock availability at capture time. |
delivery_eligible | boolean | Whether home delivery is available. |
pickup_eligible | boolean | Whether click & collect is available. |
image | string | Absolute URL to the product image. |
url | string | Canonical 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
https://multicartapi.com/api/v1/schedules/repco/categories/create_collection/| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Required | Collection name. |
customer_postcode | string | Required | Postcode value or Zipcode row ID. Freight and price are captured live here when the collection runs. |
limit | integer | Optional | Hard cap on the number of products (maximum 5000). |
selected_codes | array | Optional | Explicit product codes. When present, overrides the filter and uses exactly these codes (truncated to `limit`). |
category_slug | string | Optional | Same 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
}'{
"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.
