# Jbhifi — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse JB Hi-Fi's product catalog across categories and brands, check real-time stock availability at different store locations, and discover new arrivals and clearance items. Get detailed product information including specs and find the nearest store to complete your purchase.

**Category:** E-commerce | **Website:** [jbhifi.com.au/](https://jbhifi.com.au/) | **Docs:** [parse.bot/marketplace/465a832a-4c0d-46c8-b7bb-4f53fed791a4/jbhifi-com-au-api](https://parse.bot/marketplace/465a832a-4c0d-46c8-b7bb-4f53fed791a4/jbhifi-com-au-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_brands

List all available brands with their product counts. Returns a mapping of brand names to the number of products for each brand.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_brands \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_categories

List all product categories with their product counts. Returns a mapping of category names to the number of products in each category.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_category_products

List products filtered by category hierarchy. The category value can be a top-level name (e.g. 'Laptops') or a full hierarchy path (e.g. 'Computers > Laptops > Windows laptops'). Returns paginated results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | string | Yes | Category name or hierarchy path (e.g. 'Laptops', 'Computers > Laptops > Windows laptops'). |
| `hits_per_page` | integer | No | Number of hits per page. |
| `page` | integer | No | Page number (0-indexed). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category":"<string>","hits_per_page":"<integer>","page":"<integer>"}'
```

### get_clearance_products

List products currently tagged as clearance. Returns paginated results sorted by relevance. Clearance items typically have reduced pricing from the original ticket price.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (0-indexed). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_clearance_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_new_products

List products tagged as 'New at JB!' — recently added items. Returns paginated results of newly released products.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number (0-indexed). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_new_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_product_details

Retrieve full details for a single product by slug, SKU, or URL. At least one identifier must be provided. Returns comprehensive product data including pricing, availability, facets (specifications), images, and promotional messages.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sku` | string | No | Product SKU (e.g. '840480'). |
| `slug` | string | No | Product handle/slug from the product URL path. |
| `url` | string | No | Full product URL (e.g. 'https://www.jbhifi.com.au/products/hp-laptop-15-fd1265tu-15-6-full-hd-laptop-intel-core-5256gb'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_product_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sku":"<string>","slug":"<string>","url":"<string>"}'
```

### get_product_specs

Get technical specifications for a product identified by SKU or slug. At least one identifier must be provided. Returns key features, detailed facets (specifications grouped by category), and model number.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sku` | string | No | Product SKU (e.g. '840480'). |
| `slug` | string | No | Product handle/slug. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_product_specs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sku":"<string>","slug":"<string>"}'
```

### get_product_stock_availability

Check in-store click-and-collect and cash-and-carry stock availability for a product at nearby stores based on suburb and postcode. Returns fulfilment options including store locations, stock levels, trading hours, and distance.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `postcode` | string | No | Australian postcode (4 digits, leading zeros preserved). |
| `sku` | string | Yes | Product SKU (e.g. '840480'). |
| `suburb` | string | No | Suburb name for proximity-based store lookup. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_product_stock_availability \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"postcode":"<string>","sku":"<string>","suburb":"<string>"}'
```

### get_store_locations

Search for JB Hi-Fi store locations by suburb/name query or geographic coordinates. Returns store addresses, trading hours, and contact details. If no query or coordinates provided, returns all stores.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `lat` | number | No | Latitude for proximity search. |
| `lng` | number | No | Longitude for proximity search. |
| `query` | string | No | Search query (suburb or store name). |
| `radius` | integer | No | Search radius in meters. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/get_store_locations \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat":"<number>","lng":"<number>","query":"<string>","radius":"<integer>"}'
```

### search_products

Full-text search over JB Hi-Fi's product catalog. Returns paginated results with pricing, availability, facets, and product metadata. Paginates via 0-indexed page number. Each page returns up to hits_per_page items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hits_per_page` | integer | No | Number of hits per page. |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | Yes | Search keyword. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jbhifi-com-au-api-465a832a/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hits_per_page":"<integer>","page":"<integer>","query":"<string>"}'
```
