# 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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/keh-camera/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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/credits/keh-camera/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/keh-camera/suggest \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.