# IKEA Price Monitor & Product Scraper (`exuberant_volley/ikea-product-scraper`) Actor

For price trackers, dropshippers, and interior marketplaces who need fresh IKEA SKUs after a range update or competitor check. Paste any search or category URL → name, price, description, image, URL. Public catalog only. Free to run.

- **URL**: https://apify.com/exuberant\_volley/ikea-product-scraper.md
- **Developed by:** [ScrapeForge](https://apify.com/exuberant_volley) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 3 total users, 1 monthly users, 88.9% 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/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## IKEA Product Scraper — Prices, Ratings & Catalog Data

**Launch pricing: this actor currently adds no fee — run it on your Apify free-plan credits. Try it, bookmark it, wire it into your stack.**

This **IKEA product scraper** lets you **scrape IKEA products** from any search keyword or category URL, on any IKEA country site. It doubles as an **IKEA price scraper** and **IKEA catalog scraper**: clean JSON with names, prices, currencies, ratings, review counts, images and product URLs — built for **IKEA price monitoring**, market research and resale analysis.

> Official IKEA JSON search API + loud failure guarantees: plain-HTTP calls (no browser) return clean product JSON, and a run that would produce zero records fails visibly — you never get a silently empty dataset.

### Who uses this

- **Price analysts & furniture resellers** — track `priceValue` across country stores, spot arbitrage between `us`, `de`, `gb` storefronts.
- **E-commerce & interior-design content teams** — pull names, images and review counts for comparison pages and affiliate content.
- **Market researchers** — `reviewCount` is a free demand signal per product and category.
- **AI agents & pipelines** — clean JSON per product, MCP-friendly.

Monitoring other e-commerce catalogs too? The [Shopify Store Scraper](https://apify.com/exuberant_volley/shopify-store-scraper) pulls full product catalogs from any Shopify store the same way.

### How it works

The actor calls **IKEA's own public JSON search API** — the same endpoint the IKEA website uses to serve its search results — over plain HTTP with `got-scraping`. No browser, no page rendering. Your `search` keyword (or the `q=` term parsed from a search URL) is sent to the API for the country/language store you pick, and the returned products are mapped to clean JSON. A single request returns up to `maxItems` products, and a run that would produce zero records **fails loudly instead of succeeding empty**.

### Output

One record per product:

```json
{
  "name": "LAGKAPTEN / ALEX",
  "description": "Desk, white, 55 1/8x23 5/8 \"",
  "priceValue": 239.99,
  "currency": "$",
  "rating": 4.5,
  "reviewCount": 751,
  "url": "https://www.ikea.com/us/en/p/lagkapten-alex-desk-white-s99431982/",
  "image": "https://www.ikea.com/us/en/images/products/lagkapten-alex-desk-white__1022432_pe832720_s5.jpg",
  "sourceUrl": "https://www.ikea.com/us/en/search/products/?q=desk",
  "scrapedAt": "2026-07-23T08:53:18.363Z"
}
```

- `priceValue` is numeric (ready for spreadsheets/alerts); `currency` is the symbol shown on the storefront (`$`, `£`, …).
- `rating` / `reviewCount` come straight from the API and are `null` only when a product has no reviews yet.
- `sourceUrl` tells you which search/category page each product came from.

### Input

| Field | Default | Description |
|---|---|---|
| `search` | `desk` | Product keyword to search — the primary input |
| `startUrls` | — | IKEA keyword-search URLs (any country site); their `q=` term and country/language are routed through the API. Category pages (no `q=`) are skipped with a warning |
| `country` | `us` | IKEA storefront country code (`us`, `gb`, `de`, `lt`, …) |
| `language` | `en` | Storefront language code |
| `maxItems` | `24` | Stop after this many products (one API request returns up to this many) |

**The default run needs no configuration** — an empty input scrapes `desk` results from the US store.

### Reliability & limits

- **Full result sets in one request**: the search API returns up to `maxItems` products in a single call — no more one-page-only cap. Raise `maxItems` and you get more, up to whatever the query actually contains.
- **Plain HTTP, no browser**: fast, low-compute, and served directly by IKEA's search backend — no bot-challenge page to render. The actor retries transient failures and **throws instead of returning an empty dataset**, so scheduled runs never silently degrade.
- **No proxy needed** by default; enable Apify Proxy (datacenter) in the input only if you ever hit rate limits — residential proxies are not required.

### Paste this output into…

- **Google Sheets** — `=IMPORTDATA("https://api.apify.com/v2/acts/exuberant_volley~ikea-product-scraper/runs/last/dataset/items?format=csv&clean=1&token=YOUR_TOKEN")` gives you a live product sheet after every run.
- **Make / n8n** — schedule the actor daily, then fetch `.../runs/last/dataset/items` with an HTTP node and route records to Slack, Airtable or a webhook.
- **Price-drop alerts (resellers)** — keep yesterday's `priceValue` per `url` in a sheet, diff after each daily run, and alert when today's price is lower — that's an instant margin signal.

### ScrapeForge free data suite

One publisher, fourteen plug-and-play datasets — all currently free to run:

| Actor | What it delivers | |
|---|---|---|
| [Executive Changes Tracker](https://apify.com/exuberant_volley/executive-changes-scraper) | New CEO/CFO/board moves from SEC 8-Ks + official newswires — source-cited B2B trigger leads | [run it next →](https://apify.com/exuberant_volley/executive-changes-scraper) |
| [IKEA Product Scraper](https://apify.com/exuberant_volley/ikea-product-scraper) | Names, prices, ratings and images from any IKEA search or category page | [run it next →](https://apify.com/exuberant_volley/ikea-product-scraper) |
| [Shopify Store Scraper](https://apify.com/exuberant_volley/shopify-store-scraper) | Any Shopify store's full catalog — variants, SKUs, prices — via products.json | [run it next →](https://apify.com/exuberant_volley/shopify-store-scraper) |
| [App Store Apps Scraper](https://apify.com/exuberant_volley/app-store-apps-scraper) | App rankings, ratings, prices and metadata by keyword, any country | [run it next →](https://apify.com/exuberant_volley/app-store-apps-scraper) |
| [Remote Jobs Scraper](https://apify.com/exuberant_volley/remote-jobs-scraper) | Live remote listings from RemoteOK + Remotive, keyword-filtered | [run it next →](https://apify.com/exuberant_volley/remote-jobs-scraper) |
| [CoinGecko Market Scraper](https://apify.com/exuberant_volley/coingecko-market-scraper) | Top-coin prices, market caps and 24h moves — keyless | [run it next →](https://apify.com/exuberant_volley/coingecko-market-scraper) |
| [GitHub Repositories Scraper](https://apify.com/exuberant_volley/github-repos-scraper) | Repo search with stars, forks, topics and licenses | [run it next →](https://apify.com/exuberant_volley/github-repos-scraper) |
| [Hacker News Scraper](https://apify.com/exuberant_volley/hackernews-scraper) | Top/New/Best HN stories with scores and comment counts | [run it next →](https://apify.com/exuberant_volley/hackernews-scraper) |
| [Wikipedia Scraper](https://apify.com/exuberant_volley/wikipedia-scraper) | Article summaries, images and URLs in any language — RAG-ready | [run it next →](https://apify.com/exuberant_volley/wikipedia-scraper) |
| [SEC EDGAR Filings Scraper](https://apify.com/exuberant_volley/sec-edgar-filings-scraper) | Any US public company's filing history by ticker | [run it next →](https://apify.com/exuberant_volley/sec-edgar-filings-scraper) |
| [Open-Meteo Weather Scraper](https://apify.com/exuberant_volley/open-meteo-weather-scraper) | 16-day daily forecast for any coordinates — temps, rain, wind — keyless | [run it next →](https://apify.com/exuberant_volley/open-meteo-weather-scraper) |
| [arXiv Papers Scraper](https://apify.com/exuberant_volley/arxiv-papers-scraper) | Research papers by topic — abstracts, categories, PDF links, newest-first sort | [run it next →](https://apify.com/exuberant_volley/arxiv-papers-scraper) |
| [NVD CVE Scraper](https://apify.com/exuberant_volley/nvd-cve-scraper) | Fresh CVEs with CVSS severity, CWE ids and CISA known-exploited flags | [run it next →](https://apify.com/exuberant_volley/nvd-cve-scraper) |
| [npm Registry Scraper](https://apify.com/exuberant_volley/npm-registry-scraper) | npm package vitals — latest version, license, weekly downloads, dependency count | [run it next →](https://apify.com/exuberant_volley/npm-registry-scraper) |

### Compliance

- **No personal data** — public catalog data only (names, prices, ratings, images), GDPR-safe.
- Works on any IKEA storefront (`us`, `gb`, `de`, `lt`, and every other country/language site).
- Records live only in your run's dataset; the actor keeps nothing beyond it.

# Actor input Schema

## `search` (type: `string`):

A product keyword to search, e.g. "desk". The primary input. Ignored only for startUrls that carry their own ?q= keyword.

## `startUrls` (type: `array`):

IKEA keyword-search URLs (e.g. https://www.ikea.com/us/en/search/products/?q=desk). Their q= term and country/language are routed through the search API. Category pages (no ?q=) are skipped with a warning.

## `country` (type: `string`):

IKEA site country, e.g. us, gb, de, lt.

## `language` (type: `string`):

IKEA site language, e.g. en, de.

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

Stop after this many products. A single API request returns up to this many in one call.

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

Optional. Leave off by default — IKEA's search API serves datacenter requests directly. Enable Apify Proxy (datacenter) only if you hit rate limits. Residential is not required.

## Actor input object example

```json
{
  "search": "desk",
  "country": "us",
  "language": "en",
  "maxItems": 24
}
```

# 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 = {
    "search": "desk",
    "country": "us",
    "language": "en",
    "maxItems": 24
};

// Run the Actor and wait for it to finish
const run = await client.actor("exuberant_volley/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 = {
    "search": "desk",
    "country": "us",
    "language": "en",
    "maxItems": 24,
}

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

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

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

```

## CLI example

```bash
echo '{
  "search": "desk",
  "country": "us",
  "language": "en",
  "maxItems": 24
}' |
apify call exuberant_volley/ikea-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=exuberant_volley/ikea-product-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/bT3qIoDXHNtrlV7dt/builds/nuusI3WFdNvoMhPlh/openapi.json
