# Watchmaxx — 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.

> Browse luxury watches from WatchMaxx by brand, category, or search terms, and access detailed product information including specifications, pricing, and images. Filter and compare watches across different series to find the perfect timepiece.

**Category:** E-commerce | **Website:** [watchmaxx.com/](https://watchmaxx.com/) | **Docs:** [parse.bot/marketplace/db176bf2-2c89-4563-9472-2f43dbbddedc/watchmaxx-com-api](https://parse.bot/marketplace/db176bf2-2c89-4563-9472-2f43dbbddedc/watchmaxx-com-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-watchmaxx-com-api-db176bf2/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### filter_products

Applies complex filters to product listings. Filters are key-value pairs where keys are facet names (brand, gender, series, dial_color, case_material, movement, etc.) and values are arrays of accepted values. Facet names and values can be discovered from the facets returned by other listing endpoints.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `filters` | object | Yes | Filter object mapping facet names to arrays of values (e.g. {"brand": ["Omega"], "gender": ["Men's"]}). |
| `link` | string | No | Category/page context for filtering (e.g. 'all', 'watches', 'mens', a brand slug). |
| `page` | integer | No | Page number for pagination. |
| `sort` | string | No | Sort order for results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-watchmaxx-com-api-db176bf2/filter_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filters":"<object>","link":"<string>","page":"<integer>","sort":"<string>"}'
```

### get_all_brands

Returns the full list of watch brands available on WatchMaxx. Each brand includes a display name and URL slug suitable for use with get_products_by_brand and get_brand_series.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-watchmaxx-com-api-db176bf2/get_all_brands \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_brand_series

Returns all watch series/collections available within a brand. Series data is extracted from the facets of the brand's product listing.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `brand_slug` | string | Yes | Brand URL slug from get_all_brands (e.g. 'omega', 'tissot', 'seiko'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-watchmaxx-com-api-db176bf2/get_brand_series \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"brand_slug":"<string>"}'
```

### get_product_detail

Returns complete product data for a single item including specifications, pricing, images, and breadcrumb navigation. Provide either slug or sku; if sku is provided without slug, the product is looked up via search. The response wraps item data under item_info, related options under more_choices, and navigation under bread_crumb_data.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sku` | string | No | Product SKU code (e.g. '310.30.40.50.06.001'). Used to look up the product if slug is not provided. |
| `slug` | string | No | Product URL slug (e.g. 'omega-watch-310-30-40-50-06-001'). Takes priority over sku. |

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

### get_product_images

Extracts all high-resolution product image URLs for a given product. Returns the main image followed by any extra images.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Product URL slug (e.g. 'omega-watch-310-30-40-50-06-001'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-watchmaxx-com-api-db176bf2/get_product_images \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_products_by_brand

Returns a paginated list of products for a specific brand. Results include product details, pricing, images, and available facets for further filtering. Each page returns up to 36 items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `brand_slug` | string | Yes | Brand URL slug from get_all_brands (e.g. 'seiko', 'tag-heuer', 'omega'). |
| `page` | integer | No | Page number for pagination. |
| `sort` | string | No | Sort order for results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-watchmaxx-com-api-db176bf2/get_products_by_brand \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"brand_slug":"<string>","page":"<integer>","sort":"<string>"}'
```

### get_products_by_category

Returns a paginated list of products from category pages such as watches, mens, womens, or clearance. Each page returns up to 36 items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_slug` | string | Yes | Category URL slug (e.g. 'watches', 'mens', 'womens', 'clearance'). |
| `page` | integer | No | Page number for pagination. |
| `sort` | string | No | Sort order for results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-watchmaxx-com-api-db176bf2/get_products_by_category \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_slug":"<string>","page":"<integer>","sort":"<string>"}'
```

### search_products

Full-text search across all products using a keyword. Returns matching products with facets for filtering. Each page returns up to 36 items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `query` | string | Yes | Search keyword (e.g. 'omega', 'dive watch', 'chronograph'). |
| `sort` | string | No | Sort order for results. |

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