# Theshadestore — 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 The Shade Store's complete catalog of window treatments by exploring categories and subcategories, view detailed product information including materials and collections, and find nearby showrooms. Search for specific products and discover current promotions all in one place.

**Category:** E-commerce | **Website:** [theshadestore.com/](https://theshadestore.com/) | **Docs:** [parse.bot/marketplace/e9239966-23b5-4610-8935-4be0833ef9df/theshadestore-com-api](https://parse.bot/marketplace/e9239966-23b5-4610-8935-4be0833ef9df/theshadestore-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/theshadestore/`
**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 all showrooms

Get a list of all showroom locations across the US. Returns showroom names, URL paths, state, and city. Each showroom URL can be passed to get_showroom_detail for full info.

**Estimated cost:** Metered

_No parameters required._

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

### Get main categories

Get main window treatment categories (Shades, Blinds, Drapery). Returns a static list of top-level product categories with their URL paths. No input required.

**Estimated cost:** Metered

_No parameters required._

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

### Get product details

Get detailed product information including available materials and collections from a product customization page. Materials include name, price group, collections membership, and code.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `customization_url` | string | Yes | Product customization URL path (e.g. /shades/roller-shades/custom-roller-shades). Obtain from get_subcategory_products results link field. |

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

### Get promotions

Get current sitewide promotions and sales from the homepage banner. Returns promotional text currently displayed. Results vary over time as promotions change.

**Estimated cost:** Metered

_No parameters required._

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

### Get showroom detail

Get full details for a single showroom including name, address, phone number, and store hours.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `showroom_url` | string | Yes | Showroom URL path (e.g. /showrooms/arizona/chandler). Obtain from get_all_showrooms results. |

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

### Get subcategories

Get subcategories for a specific main category. Parses the category page to find subcategory links; falls back to known defaults if parsing finds none. Returns subcategory names and URL paths.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_slug` | string | Yes | Category slug: shades, blinds, or drapery. |

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

### Get subcategory products

Get product variants listed on a subcategory page. Returns product names, customization links, and price information. Each product links to a customization page usable with get_product_details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `subcategory_url` | string | Yes | Subcategory URL path (e.g. /shades/roller-shades). Obtain from get_subcategories results. |

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

### Search products

Search for products, collections, and pages by keyword. Returns matching product/category links found on the search results page. Results include name and URL path.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search query string (e.g. blackout, roller, drapery). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/theshadestore/search-products \
  -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.