# KEH Camera — 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 used cameras, lenses, and photography equipment from KEH Camera's inventory with filters for brand, price range, product grade, and type. Get autocomplete suggestions to refine your search and find the perfect gear at the right price.

**Category:** E-commerce | **Website:** [www.keh.com/](https://www.keh.com/) | **Docs:** [parse.bot/marketplace/e7efb3be-9e1f-453c-82cf-117f8399a42d/keh-com-api](https://parse.bot/marketplace/e7efb3be-9e1f-453c-82cf-117f8399a42d/keh-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-keh-com-api-e7efb3be/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### search_products

Search for used cameras, lenses, and photography equipment. Supports filtering by brand, grade, product type, price range, and sorting options. Returns paginated results with product details including pricing, condition grades, and availability. When category is provided, performs a category browse instead of keyword search. Paginates via page number; each product exposes grades as an array of available condition levels.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `brand` | string | No | Filter by brand name (e.g., 'Canon', 'Nikon', 'Sony', 'Leica', 'Fuji') |
| `category` | string | No | Category ID to browse (e.g., '8258' for Used Cameras, '8226' for Used Camera Lenses). When provided, overrides keyword search. |
| `grade` | string | No | Filter by condition grade (e.g., 'Like New', 'Like New Minus', 'Excellent Plus', 'Excellent', 'Bargain', 'Ugly') |
| `in_stock_only` | string | No | Filter to in-stock items only. Accepted values: 'true', 'false'. |
| `max_price` | string | No | Maximum price filter in USD |
| `min_price` | string | No | Minimum price filter in USD |
| `page` | integer | No | Page number (1-based) |
| `page_size` | integer | No | Number of results per page (1-100) |
| `product_type` | string | No | Filter by product type (e.g., 'Bodies', 'Fixed-Lens Cameras', 'Point & Shoots', 'Fixed Focal Length Lenses, Mfg') |
| `query` | string | No | Search keyword (e.g., 'camera', 'mirrorless camera', 'canon lens', 'nikon') |
| `sort` | string | No | Sort order. Accepted values: 'min_price asc' (Price Low-High), 'min_price desc' (Price High-Low), 'title asc' (Name A-Z), 'title desc' (Name Z-A), 'pid desc' (Newest). Omit for relevance sorting. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-keh-com-api-e7efb3be/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"brand":"<string>","category":"<string>","grade":"<string>","in_stock_only":"<string>","max_price":"<string>","min_price":"<string>","page":"<integer>","page_size":"<integer>","product_type":"<string>","query":"<string>","sort":"<string>"}'
```

### suggest

Get search autocomplete suggestions including query suggestions, product suggestions, and category suggestions for a given search term. Returns up to 20 query suggestions, 8 product suggestions with pricing and stock status, and relevant category suggestions. Useful for building type-ahead search interfaces.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | No | Partial search query to get suggestions for (e.g., 'leica', 'sony', 'canon') |

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