Officeworks Catalogue
Proxy endpoints that query the live Officeworks public catalogue — categories (cached 24 h server-side) and Algolia product search — without consuming scrape credits.
Browse Category Tree
POSTAPI Key or Session Token
https://multicartapi.com/api/v1/schedules/officeworks/categories/Return the Officeworks category tree, optionally filtered to a subtree by seo_path or flattened to a list.
curl "https://multicartapi.com/api/v1/schedules/officeworks/categories/" \
-X POST \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"flat": false, "seo_path": "technology"}'Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
flat | boolean | Optional | When true, return every category as a flat list instead of a nested tree. |
seo_path | string | Optional | Restrict the response to this category and its descendants, e.g. `technology`. Omit to return the full tree. |
Request body
{"flat": false, "seo_path": "technology"}Response
{
"code": 200,
"data": {
"total": 5,
"categories": [
{
"name": "Technology",
"seoPath": "technology",
"children": [
{ "name": "Computers", "seoPath": "technology/computers", "children": [] }
]
}
]
},
"status": 1
}Notes
Category data is proxied from the Officeworks public API (`/catalogue-app/api/categories`) and cached server-side for 24 hours. Omit both params to retrieve the entire tree. When `seo_path` does not match any category the response returns `total: 0` with an empty `categories` array.
List Products in Category
POSTAPI Key or Session Token
https://multicartapi.com/api/v1/schedules/officeworks/categories/products/Return paginated products for an Officeworks category queried live from the Algolia index (K535CAAWVE), with optional recursive child-category inclusion.
curl "https://multicartapi.com/api/v1/schedules/officeworks/categories/products/" \
-X POST \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"seo_path": "technology/computers/laptops",
"recursive": false,
"page": 0,
"page_size": 100,
"sort": "price_asc"
}'Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
seo_path | string | Required | Category seoPath to query, e.g. `technology/computers/laptops`. |
recursive | boolean | Optional | When true, include products from all descendant categories in addition to the specified category. |
page | integer | Optional | Zero-indexed page number. |
page_size | integer | Optional | Number of products per page. Maximum 1000. |
sort | string | Optional | Sort order. One of: `bestmatch`, `newest`, `name`, `price_asc`, `price_desc`, `rating_asc`, `rating_desc`. |
search | string | Optional | Optional keyword filter applied within the category results. |
Request body
{
"seo_path": "technology/computers/laptops",
"recursive": false,
"page": 0,
"page_size": 100,
"sort": "price_asc"
}Response
{
"code": 200,
"data": {
"seo_path": "technology/computers/laptops",
"recursive": false,
"total": 84,
"page": 0,
"page_size": 100,
"total_pages": 1,
"products": [
{
"sku": "HPLAP001",
"title": "HP 15.6\" Laptop 256GB",
"brand": "HP",
"gtin": "0195908753278",
"price_value": 899.0,
"price_currency": "AUD",
"image": "https://www.officeworks.com.au/...jpg",
"product_url": "https://www.officeworks.com.au/shop/officeworks/p/HPLAP001",
"url_keyword": "hp-15-6-laptop-256gb",
"category": "technology/computers/laptops",
"categories": ["technology", "technology/computers", "technology/computers/laptops"],
"ranged_online": true,
"ranged_retail": true,
"rating": 4.3,
"review_count": 127,
"status": "active",
"published": true
}
]
},
"status": 1
}Notes
Product fields returned: `sku`, `title`, `brand`, `gtin`, `price_value`, `price_currency`, `image`, `product_url`, `url_keyword`, `category`, `categories`, `ranged_online`, `ranged_retail`, `rating`, `review_count`, `status`, `published`. Results are queried live from Algolia on every call — there is no server-side cache for products. Use the `sku` values returned here as input to the Officeworks SKU collection endpoints. Pagination is zero-indexed; check `total_pages` to determine whether additional pages exist.
