# IKEA Product Scraper (`mrdoe/ikea-product-scraper`) Actor

Extracts IKEA products by search term or exact product URL - name, price, dimensions, materials, availability, rating and images. No login, no key.

- **URL**: https://apify.com/mrdoe/ikea-product-scraper.md
- **Developed by:** [MrDoe](https://apify.com/mrdoe) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![IKEA Product Scraper — get price, dimensions, materials and availability for any IKEA product](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/ikea-product-scraper--hero.png)

### What does IKEA Product Scraper do?

IKEA Product Scraper returns IKEA products as clean structured data. For each product you
get the name, price, dimensions, materials, color, availability, star rating and full image
set. Search any keyword to pull a batch of matching products, or give it exact product URLs
to get full detail (description, materials, dimensions) for specific items. No login, no
IKEA account needed.

### Why use IKEA Product Scraper?

- **No account needed** - works fully logged out, every run.
- **Full detail, not a summary** - exact price, dimensions, materials and real customer
  rating, not just a product name and image.
- **Search or exact URL** - find products by keyword across IKEA's whole catalogue, or go
  straight to specific products you already know.
- **Any IKEA storefront** - works across IKEA's country/language sites (US, UK, Sweden, and
  more), not just one market.
- **Real availability** - know whether a product is actually in stock before you plan around it.

### What makes this different

Most product lookups only show you what IKEA's own site displays on screen. This Actor
returns every field - including exact dimensions and material composition - as structured
data you can filter, sort and analyze, instead of reading one product page at a time.

### Who uses IKEA Product Scraper?

- **Interior designers and furniture buyers** - compare dimensions, materials and prices
  across many products at once before making a purchase decision.
- **Dropshippers and resellers** - pull IKEA's own catalogue data to build listings or
  compare against your own pricing.
- **Price trackers and comparison sites** - monitor price and availability changes for
  specific products over time.
- **Market researchers** - analyze IKEA's product range, pricing and customer ratings across
  categories.

### How it works

![How IKEA Product Scraper turns a search term into product data](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/ikea-product-scraper--how-it-works.png)

1. **Your input** - a search term, or one or more exact IKEA product URLs.
2. **The Actor collects it** - it reads IKEA's own product catalogue data, works fully
   logged out, and pages through automatically up to your limit.
3. **Your output** - one structured record per product, ready for a spreadsheet, dashboard
   or report.

### What data can you extract?

| Field | Description |
|---|---|
| `name` | The product's full name |
| `price` / `currency` | The product's price and currency |
| `width` / `height` / `depth` | Exact dimensions, as IKEA states them |
| `material` / `color` | Materials used and available color |
| `availability` | Whether the product is currently in stock |
| `rating` / `reviewCount` | Average customer rating and number of reviews |
| `description` | The full product description (exact-URL lookups only) |
| `image` / `images` | The main image and full image set |
| `category` | The product's category path |
| `url` | The product's IKEA page URL |

### How to use IKEA Product Scraper

1. Open the Actor and go to the **Input** tab.
2. Enter a **Search term** (e.g. "chair"), or paste one or more **exact product URLs** under
   "Exact product URLs" to look up specific items.
3. Optionally set the **Country/language** storefront and **Max results**.
4. Click **Start**.
5. Open the **Dataset** tab, or pull results via the API, once the run finishes.

![IKEA Product Scraper input form with search term and product URLs](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/ikea-product-scraper--input.png)

### Input Parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `query` | String | No | `"chair"` | A keyword to search for |
| `productUrls` | Array | No | None | Exact IKEA product URLs to scrape full detail for |
| `locale` | String | No | `"us/en"` | The IKEA storefront to read from, e.g. `"gb/en"`, `"se/sv"` |
| `maxItems` | Integer | No | `20` | Maximum number of products to return |
| `proxyConfiguration` | Object | No | No proxy | Advanced - this works without a proxy for moderate volumes |

### Output Data

Each product produces one dataset record. Example:

```json
{
    "sku": "294.203.93",
    "name": "SANDSBERG Table - black 43 1/4x26 3/8 \"",
    "description": "A slim design that blends in without taking up too much visual space in the room, yet sturdy enough to hold up to everyday activities.",
    "price": 69.99,
    "currency": "USD",
    "availability": "InStock",
    "material": "Wood (including board), Metal",
    "color": "brown, black",
    "width": "26 3/8 \"",
    "height": "29 1/2 \"",
    "depth": "43 1/4 \"",
    "rating": 4.7,
    "reviewCount": 1194,
    "image": "https://www.ikea.com/us/en/images/products/sandsberg-table-black__1074348_pe856162_s5.jpg",
    "url": "https://www.ikea.com/us/en/p/sandsberg-table-black-s29420393/"
}
```

![Sample dataset table from IKEA Product Scraper](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/ikea-product-scraper--output.png)
![Every output field labelled on one example record](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/ikea-product-scraper--fields.png)

### Usage Examples

- **Catalogue research** - search a category keyword (e.g. "bookcase") to pull every
  matching product's price, dimensions and rating in one run.
- **Price monitoring** - run the same exact product URLs on a schedule to track price and
  availability changes over time.
- **Multi-market comparison** - run the same search with different `locale` values to
  compare pricing across countries.
- **Spec sheets** - pull exact dimensions and materials for a shortlist of products before
  committing to a purchase or design.

### Tips for Best Results

- Use the exact product URL from IKEA's own site for full detail (description, dimensions,
  materials) - search results give a lighter summary.
- The `locale` parameter follows IKEA's own URL pattern (country/language), e.g. `"us/en"`,
  `"gb/en"`, `"de/de"`, `"se/sv"`.
- Narrow a broad search term with a brand or product name (e.g. "sandsberg table") to cut
  straight to a specific product line.

### Known Limitations

- Search results return a summary record; for the full description and exact material list,
  provide the product's exact URL instead.
- Reflects a snapshot at the time of the run; IKEA's own prices and stock levels change
  continuously.

### Integrations

Connect IKEA Product Scraper to the rest of your stack via the [Apify API](https://docs.apify.com/api/v2),
[webhooks](https://docs.apify.com/platform/integrations/webhooks), scheduled runs, or directly
to Google Sheets, Make, and Zapier through Apify's built-in integrations.

### Export Formats

Download results as **JSON, CSV, Excel, or XML** from the Dataset tab, or fetch them
programmatically via the Apify API.

### Frequently Asked Questions

#### Do I need an IKEA account or to log in?

No. Every run works fully logged out.

#### Can I get products from a country other than the US?

Yes - set `locale` to match IKEA's own URL pattern for that country, e.g. `"gb/en"` for the
UK or `"se/sv"` for Sweden.

#### Why does a search result have fewer fields than an exact-URL lookup?

Search results are IKEA's own lightweight summary cards. For the full description and
material breakdown, pass the product's exact URL in `productUrls`.

#### Can I schedule this to run automatically?

Yes, use Apify's built-in [Scheduler](https://docs.apify.com/platform/schedules) to re-check
prices or availability on any interval you choose.

### Support

Found an issue or have a request? Open it on the Actor's **Issues** tab in the Apify Console.

### Legal / Responsible Use

You're responsible for using this Actor in compliance with applicable laws and the target
platform's terms of service. This Actor retrieves publicly viewable product information only.

# Actor input Schema

## `query` (type: `string`):

A keyword to search IKEA for, e.g. "chair" or "sandsberg table". Used when no exact product URLs are given.

## `productUrls` (type: `array`):

One or more exact IKEA product page URLs, e.g. https://www.ikea.com/us/en/p/sandsberg-table-black-s29420393/. When given, these are scraped for full detail and the search term above is ignored.

## `locale` (type: `string`):

The IKEA storefront to read from, as it appears in the site's own URLs, e.g. "us/en", "gb/en", "se/sv". Defaults to the US store.

## `maxItems` (type: `integer`):

Maximum number of products to return. Exact product URLs always return one row each.

## `proxyConfiguration` (type: `object`):

Proxy used for outgoing requests. Advanced - this works without a proxy for moderate volumes.

## Actor input object example

```json
{
  "query": "chair",
  "locale": "us/en",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "chair",
    "locale": "us/en",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/ikea-product-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "chair",
    "locale": "us/en",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/ikea-product-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "chair",
  "locale": "us/en",
  "maxItems": 20
}' |
apify call mrdoe/ikea-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrdoe/ikea-product-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NZrynAhqZ3DFYfLdH/builds/yev8c3BLINIA2tmC6/openapi.json
