# Jomashop — 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 and search a watch store catalog to discover products by category, brand, or sale status, view detailed product information and customer reviews, and explore new arrivals and navigation options. Find the perfect timepiece with access to watch brands, pricing details, and curated collections.

**Category:** E-commerce | **Website:** [jomashop.com/](https://jomashop.com/) | **Docs:** [parse.bot/marketplace/9ed2577a-9fdc-4d8f-b50b-90a4630fc6c2/jomashop-com-api](https://parse.bot/marketplace/9ed2577a-9fdc-4d8f-b50b-90a4630fc6c2/jomashop-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-jomashop-com-api-9ed2577a/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_brand_products

Fetch products for a specific brand in a category. Uses the same underlying category query with a brand filter applied. Returns category data with flat items array.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `brand_name` | string | Yes | Brand name exactly as listed (e.g. 'Rolex', 'Omega', 'Tag Heuer'). Use get_watch_brands to discover valid brand names. |
| `category_id` | integer | No | Category ID to filter within. |
| `page` | integer | No | Page number. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jomashop-com-api-9ed2577a/get_brand_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"brand_name":"<string>","category_id":"<integer>","page":"<integer>"}'
```

### get_category_products

Browse products by category with pagination, sorting, and filtering. Returns category metadata with a flat items array of product listings, total_count, current_page, and total_pages.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | integer | No | Category ID (e.g. 871 for Watches, 10709 for Sale). |
| `min_rating` | number | No | Minimum customer rating filter (e.g. 4.0). |
| `page` | integer | No | Current page number. |
| `page_size` | integer | No | Number of products per page. |
| `sort_by` | string | No | Sort criteria. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jomashop-com-api-9ed2577a/get_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<integer>","min_rating":"<number>","page":"<integer>","page_size":"<integer>","sort_by":"<string>"}'
```

### get_navigation_menu

Retrieve the full category navigation menu tree. Returns an object with items array of top-level categories with their metadata and HTML menu content.

**Estimated cost:** Metered

_No parameters required._

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

### get_new_arrivals

Fetch recently added products by sorting the category by news_from_date. Returns category data with flat items array sorted by newest first.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | integer | No | Category ID to browse new arrivals within. |
| `page` | integer | No | Page number. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jomashop-com-api-9ed2577a/get_new_arrivals \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<integer>","page":"<integer>"}'
```

### get_product_details

Fetch detailed product information using the product URL key (slug). Returns stale_input with kind input_not_found if the url_key does not match any product.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url_key` | string | Yes | Product URL key (slug) from the product page URL, e.g. 'rolex-submariner-automatic-chronometer-black-dial-mens-watch-126610lnbkso' or 'omega-watch-om32630405001002'. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jomashop-com-api-9ed2577a/get_product_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url_key":"<string>"}'
```

### get_product_reviews

Fetch customer reviews for a specific product via Yotpo. Returns reviews array, bottomline statistics, and pagination info.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for reviews. |
| `per_page` | integer | No | Number of reviews per page (server may override this value). |
| `product_id` | string | Yes | Product ID (domain_key from Yotpo, e.g. '561875'). Can be found in search_products results under payload.metadata.product_id or from get_product_details id field. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jomashop-com-api-9ed2577a/get_product_reviews \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","per_page":"<integer>","product_id":"<string>"}'
```

### get_sale_products

Fetch products from the Sale category (ID 10709). Returns category data with flat items array of sale items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jomashop-com-api-9ed2577a/get_sale_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_watch_brands

Retrieve a list of featured watch brands available on the site.

**Estimated cost:** Metered

_No parameters required._

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

### search_products

Search for products using keywords. Returns paginated results with product details including price, brand, and image.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Max number of results to return. |
| `query` | string | Yes | Search keyword (e.g. 'Rolex', 'luxury automatic watch'). |
| `skip` | integer | No | Offset for results (pagination). |

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