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

> Search and browse B&H Photo's massive inventory of cameras, electronics, and photography gear with instant access to pricing, specifications, images, and customer reviews. Filter products by category, compare detailed specs, and discover used items all in one integrated platform.

**Category:** E-commerce | **Website:** [bhphotovideo.com/](https://bhphotovideo.com/) | **Docs:** [parse.bot/marketplace/12134da7-f5f2-4a75-9a07-596347abb769/bhphotovideo-com-api](https://parse.bot/marketplace/12134da7-f5f2-4a75-9a07-596347abb769/bhphotovideo-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/`
**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

### Get category products

Browse products within a specific category ID. Returns paginated product listings with filters, similar to search results but scoped to a category.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | B&H category ID (e.g. '9811' for Digital Cameras, '16158' for Mirrorless Cameras) |
| `page` | integer | No | Page number for pagination |
| `sort` | string | No | Sort order: BS (Best Sellers), RE (Relevance), PLH (Price Low to High), PHL (Price High to Low), CR (Customer Rating) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/get-category-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","page":"<integer>","sort":"<string>"}'
```

### Get category tree

Retrieve the full navigational category hierarchy (mega menu). Returns top-level departments with their subcategories, images, and URLs.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/get-category-tree \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get product detail

Get comprehensive details for a single product by SKU. Includes pricing, inventory, specifications, images, reviews stats, warranty info, and more.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sku` | string | Yes | Product SKU (e.g. '1935439-REG' or '1935439'). If no suffix is provided, defaults to REG. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/get-product-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"sku":"<string>"}'
```

### Get product reviews summary

Get customer review summary statistics for a product, including rating histogram, average rating, and total review count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sku` | string | Yes | Product SKU (e.g. '1935439-REG' or '1935439'). If no suffix is provided, defaults to REG. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/get-product-reviews-summary \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"sku":"<string>"}'
```

### Get used products

Browse used and refurbished equipment. Returns paginated listings of used products with condition info, pricing compared to new, and available filters.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination |
| `sort` | string | No | Sort order: BS (Best Sellers), RE (Relevance), PLH (Price Low to High), PHL (Price High to Low), CR (Customer Rating) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/get-used-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","sort":"<string>"}'
```

### Search products

Search for products by keyword. Returns a paginated list of products with basic details including pricing, stock status, images, and available filters for refining results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination |
| `query` | string | Yes | Search keyword |
| `sort` | string | No | Sort order: BS (Best Sellers), RE (Relevance), PLH (Price Low to High), PHL (Price High to Low), CR (Customer Rating) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/bhphotovideo/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","query":"<string>","sort":"<string>"}'
```

## Next steps

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