# Scuffers — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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.

> Access data from scuffers.com.

**Category:** E-commerce | **Website:** [scuffers.com/](https://scuffers.com/) | **Docs:** [parse.bot/marketplace/8e269c97-9d9f-4725-af74-1b6ad137bd21/scuffers-com-api](https://parse.bot/marketplace/8e269c97-9d9f-4725-af74-1b6ad137bd21/scuffers-com-api)

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

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/parse-scuffers-com-api-8e269c97/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### Get categories

Retrieve the complete list of product collections/categories. Returns all non-geosort collections available on the store. Makes multiple paginated requests to enumerate the full set (typically ~239 collections). Each collection can be used as category_id in get_category_products.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/parse-scuffers-com-api-8e269c97/get_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get category products

Get paginated products from a specific collection/category. Returns up to 30 products per page. Use the collection handle as category_id (available from get_categories results). An unknown handle returns an empty products array (upstream behavior).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Collection handle identifying the category (e.g. 'accessories', 'new', 'all-sales', 'footwear'). Obtained from get_categories endpoint's handle field. |
| `page` | integer | No | Page number for pagination. Each page returns up to 30 products. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/parse-scuffers-com-api-8e269c97/get_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","page":"<integer>"}'
```

### Get new arrivals

Get the latest new arrival products. Returns up to 30 products per page from the store's 'New Arrivals' collection, ordered by recency.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Each page returns up to 30 products. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/parse-scuffers-com-api-8e269c97/get_new_arrivals \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### Get product

Get full product details by handle or URL. Returns complete information including description, all variant sizes/colors/SKUs, pricing, all images, and product options. Accepts either a product handle (e.g. 'japan-shirt') or full product URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | Yes | Product handle (e.g. 'japan-shirt') or full product URL (e.g. 'https://scuffers.com/products/japan-shirt'). Available from search_products, get_category_products, get_new_arrivals, or get_sale_items results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/parse-scuffers-com-api-8e269c97/get_product \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id":"<string>"}'
```

### Get sale items

Get discounted/sale products. Returns up to 30 products per page from the 'All Sales' collection. Each product includes a computed discount_percent showing the percentage off from the original compare_at_price.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Each page returns up to 30 products. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/parse-scuffers-com-api-8e269c97/get_sale_items \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### Search products

Search products by keyword with optional category filter. Returns up to 10 matching products per query. Results come from the site's search suggest engine and are ranked by relevance.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | string | No | Optional product type filter to narrow results (e.g. 'Man Shirt Longsleeved'). Matches the product_type field. |
| `page` | integer | No | Page number for pagination (currently limited to 10 results per query by the upstream search suggest API). |
| `query` | string | Yes | Search query text (e.g. 'shirt', 'hoodie', 'sneakers'). |

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