# IKEA — 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 IKEA's full product catalog to find items by category, compare measurements, read customer reviews, and check real-time store availability and current deals. Discover new arrivals and best-selling products to help you shop smarter and find exactly what you need.

**Category:** E-commerce | **Website:** [ikea.com/](https://ikea.com/) | **Docs:** [parse.bot/marketplace/2a2fbd29-735a-49e7-b45d-5a1cfdf19c90/ikea-com-api](https://parse.bot/marketplace/2a2fbd29-735a-49e7-b45d-5a1cfdf19c90/ikea-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/ikea/`
**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 categories

Retrieve the full IKEA category taxonomy tree. Returns a hierarchical array of categories with subcategories. Used to discover category IDs for get_category_listing.

**Estimated cost:** Metered

_No parameters required._

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

### Get best sellers

Retrieve best-selling products from the IKEA catalog. Returns an array of top-selling product listings.

**Estimated cost:** Metered

_No parameters required._

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

### Get category listing

List products in a given IKEA category by category ID. Returns paginated product listings. Category IDs can be found via get_all_categories (e.g. 'st001' for Storage & organization).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | IKEA category ID (e.g. 'st001' for storage & organization, '10382' for bookshelves, '10451' for dressers). |
| `limit` | integer | No | Max results per page. |
| `offset` | integer | No | Offset for pagination. |

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

### Get deals

Retrieve current deals and discounted products from IKEA. Queries multiple deal sources (new lower prices, IKEA Family prices, last-chance reductions) and returns only items that have an actual price reduction. Every returned item includes both the current discounted price and the previous (original) price. Supports different regional IKEA sites via the country parameter; defaults to US catalog.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | No | Two-letter country code for the regional IKEA site (e.g. 'us', 'pl', 'de', 'gb', 'se'). Determines the catalog region and currency of returned prices. |

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

### Get new products

Retrieve the latest products added to the IKEA catalog. Returns an array of new product listings.

**Estimated cost:** Metered

_No parameters required._

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

### Get product details

Retrieve full details for a specific IKEA product by its product page URL or product ID. Returns name, description, price, currency, images, rating, review count, measurements, materials, care instructions, packaging, and warranty. Requires either product_url or product_id; product_url takes priority.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | No | IKEA product ID (e.g. '40595942'). Used if product_url is not provided. |
| `product_url` | string | No | Full IKEA product page URL (e.g. 'https://www.ikea.com/us/en/p/kallax-shelf-unit-white-20275814/'). Takes priority over product_id. |

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

### Get product measurements

Retrieve measurements/dimensions for a given IKEA product. Returns an array of measurement entries with name, measure value, and type code. Requires either product_url or product_id.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | No | IKEA product ID (e.g. '40595942'). |
| `product_url` | string | No | Full IKEA product page URL. Takes priority over product_id. |

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

### Get product reviews

Retrieve customer reviews and rating distribution for a specific product. Returns reviews with title, text, author, and date. Requires either product_url or product_id.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | No | IKEA product ID (e.g. '40595942'). |
| `product_url` | string | No | Full IKEA product page URL. Takes priority over product_id. |

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

### Get store availability

Check in-store and delivery availability of a product by its ID. Returns availability across IKEA stores with stock quantity, cash-and-carry status, and click-and-collect options. The 's' prefix on product IDs (as returned by search) is automatically stripped.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | Yes | IKEA product ID (e.g. '99431982' or 's99431982'). Leading 's' prefix is automatically stripped. |
| `zip_code` | string | No | ZIP code to filter results by location. |

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

### Search products

Full-text search over IKEA's US product catalog. Returns paginated product listings matching the query keyword. Each result includes name, type, price, currency, rating, review count, image URL, and product page URL. Pagination via offset; total may report 0 when server omits the count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Max results per page. |
| `offset` | integer | No | Offset for pagination. |
| `query` | string | Yes | Search keyword (e.g. 'sofa', 'KALLAX', 'desk'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ikea/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>","query":"<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.