# Product REST API

Provides Product related information and operations.

Version: 1.0.0

## Security

### jwt-authorizer

Type: oauth2

## Download OpenAPI description

[Product REST API](https://test.docs.reece.tech/_bundle/apis/product/openapi/@current/openapi.yaml)

## Products

Per-product lookups — detail, attributes, families, status, digital assets.

### Products batch retrieval (initial load / reconciliation)

 - [GET /v1/{countryCode}/products](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductsbatch.md): Paginated traversal of the full product catalogue for the given country. Intended for
initial load (bringing a new consumer to steady state) and reconciliation (drift
check or catch-up after missed events). This endpoint is traversal-only — it does not
accept a filter list. For targeted lookup by product number use
POST /v1/{countryCode}/products/query.

### Get multiple products detail by list of product numbers

 - [POST /v1/{countryCode}/products/query](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductsdetail.md): Retrieve one or more products detail for a list of known product numbers — up to 100
per request. The product-number list travels in the request body so it isn't URL-length
limited (which can be an issue on some infrastructure for large id lists).

### Get products attributes for a list of product numbers

 - [POST /v1/{countryCode}/products/attributes/query](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductsattributes.md): Retrieve products attributes for a list of known product numbers — up to 100 per
request. May be an empty result if no attributes found based on product number and/or filtering.

### Get products families for a list of product numbers

 - [POST /v1/{countryCode}/products/families/query](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductsfamilies.md): Retrieve products families for a list of known product numbers — up to 100 per request.
May be an empty result if no families found based on product numbers and/or filtering.

### Get products statuses for a list of product numbers (branch-aware)

 - [POST /v1/{countryCode}/products/statuses/query](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductsstatuses.md): Retrieve products statuses for a list of known product numbers — up to 100 per request.
Each product may carry multiple status entries across different levels (national /
state / business-unit / branch). Pass branchNumber in the body to narrow the result
to the most relevant status for that branch.

### Get Product details

 - [GET /v1/{countryCode}/products/{productNumber}](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductdetail.md): Retrieve Product details for single product number

### Product attributes retrieval

 - [GET /v1/{countryCode}/products/{productNumber}/attributes](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductattributes.md): Retrieve product attributes for the product number provided. May be an empty result if
no attributes found based on product number and/or filtering.

### Product families retrieval

 - [GET /v1/{countryCode}/products/{productNumber}/families](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductfamilies.md): Retrieve product families for the product number provided. May be an empty result if
no families found based on product number and/or filtering.

### Product digital assets retrieval

 - [GET /v1/{countryCode}/products/{productNumber}/digital-assets](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductdigitalassets.md): Retrieve product digital assets for the given country and product number.

### Product status retrieval (branch-aware)

 - [GET /v1/{countryCode}/products/{productNumber}/statuses](https://test.docs.reece.tech/apis/product/openapi/openapi-1/products/getproductstatuses.md): Retrieve the status entries for the product identified by productNumber. Pass
branchNumber to narrow to the most relevant for that branch.

## Master Data

Reference / master lists used to classify products — sections, categories, brands, families, statuses.

### Families retrieval

 - [GET /v1/{countryCode}/families](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getfamilies.md): Retrieve the master list of families (family id + locale description) for the given country.
An optional familyCodes filter can be supplied to return details for a specific subset of families.

### Get multiple families detail by list of family codes

 - [POST /v1/{countryCode}/families/query](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getfamiliesdetail.md): Retrieve one or more families detail for a list of known family codes — up to 100 per request.
The family-code list travels in the request body so it isn't URL-length limited.

### Get a family by code

 - [GET /v1/{countryCode}/families/{familyCode}](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getfamily.md): Retrieve a single family by code.

### Product statuses retrieval

 - [GET /v1/{countryCode}/statuses](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getproductstatusesmaster.md): Retrieve the master list of product statuses available for the given country.

### Get a product status by code

 - [GET /v1/{countryCode}/statuses/{code}](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getproductstatus.md): Retrieve a single product status master entry by code.

### Product sections retrieval

 - [GET /v1/{countryCode}/sections](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getsections.md): Retrieve product sections in pages.

### Get a section by code

 - [GET /v1/{countryCode}/sections/{code}](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getsection.md): Retrieve a single section by code.

### Product categories retrieval

 - [GET /v1/{countryCode}/categories](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getcategories.md): Retrieve product categories in pages.

### Get a category by code

 - [GET /v1/{countryCode}/categories/{code}](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getcategory.md): Retrieve a single category by code.

### Product brands retrieval

 - [GET /v1/{countryCode}/brands](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getbrands.md): Retrieve product brands in pages. Optionally include sub-brands via includeSubBrands=true.

### Get a brand by code

 - [GET /v1/{countryCode}/brands/{code}](https://test.docs.reece.tech/apis/product/openapi/openapi-1/master-data/getbrand.md): Retrieve a single brand by code, including all of its sub-brands.

## Hierarchy

Cross-aggregate relationships (e.g. products belonging to a family).

### Products belonging to a family

 - [GET /v1/{countryCode}/families/{familyCode}/products](https://test.docs.reece.tech/apis/product/openapi/openapi-1/hierarchy/getproductsbyfamily.md): Retrieve the full product detail for all products belonging to the given family for the country.

