IKEA Product Search Scraper avatar

IKEA Product Search Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
IKEA Product Search Scraper

IKEA Product Search Scraper

Scrape IKEA's full product catalog by keyword across 30+ markets. Returns name, price, ratings, images, category path, online availability per result; optional per-product detail + per-store stock enrichment via IKEA's public APIs.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

A fast, cheap Apify actor that scrapes IKEA's product catalog by keyword across 30+ markets. Hits IKEA's public search API directly (no headless browser, no Akamai games), returns structured product data with prices, ratings, images, category paths, and online availability per result. Optional enrichment pulls full product details and per-store stock from IKEA's product APIs.

Pay per item. No actor-start fee. $0.0008 per product, which is 20% under the cheapest competitor and 60% under the most-used one.

What it does

For every search query you pass in, the IKEA Product Search Scraper:

  1. Hits IKEA's SIK ("Search In Kontext") search API at sik.search.blue.cdtapps.com/{country}/{lang}/search with the keyword you provide.
  2. Walks the paginated result set up to your per-query cap (or until IKEA runs out of hits).
  3. Optionally enriches each product with the full "communications" record (child SKUs, assembly instructions, care instructions, package dimensions) and a per-store stock summary.
  4. Writes one row per product to the dataset.

No login. No cookies. No proxy required (datacenter IPs work). The actor refreshes IKEA's public client keys from a product page once per run so it stays resilient to silent key rotation.

Inputs

FieldTypeDefaultNotes
queriesarray of stringsrequiredOne or more keyword queries. Each runs independently.
countrystringusTwo-letter IKEA market code: us, gb, de, fr, se, ca, au, it, nl, jp, kr, and so on.
languagestringenTwo-letter language matching the market.
maxItemsPerQueryinteger0 (no cap)Per-query cap. IKEA returns up to ~1000 hits per query depending on category.
maxItemsinteger0 (no cap)Global cap across every query.
includeProductDetailsbooleanfalseAdds the full communications record per product (child items, assembly steps, care, compliance, packaging). Roughly one extra HTTP call per 50 products.
includeAvailabilitybooleanfalseAdds a stock summary per product (cash-and-carry quantity, message type, stores with stock). Roughly one extra HTTP call per 50 products.
proxyConfigurationobjectApify proxy AUTODatacenter IPs are sufficient. Residential is supported but not required for IKEA's data APIs.

Output

Each row is one product. Guaranteed fields are present on every record returned by IKEA's search. Optional fields appear only when the corresponding enrichment flag is set.

Guaranteed

  • id - IKEA item number (sometimes prefixed s for SPR-style products; treat as a string key).
  • itemNoGlobal - Cross-market product identifier.
  • itemType - SPR (sales product) or ART (article / component).
  • name - Product name as shown on IKEA (e.g. MORABO, KALLAX).
  • typeName - Product type label (e.g. Sofa, Bookcase, Table and 4 chairs).
  • url - Direct link to the product page.
  • price - {currency, currentPrice, formattedPrice, previousPrice, formattedPreviousPrice, discount, formattedDiscountAmount, isBreathTaking}.
  • rating - {average, count}.
  • images - {main, contextual, all: [{type, url}]} with IKEA's image role typing (MAIN_PRODUCT_IMAGE, CONTEXT_PRODUCT_IMAGE, QUALITY_PRODUCT_IMAGE, etc.).
  • details - {designText, isOnlineSellable, badge, lastChance, colors, measurementText, gprDescription, quickFacts}.
  • categoryPath - Array of {name, key} from the top-level category to the leaf.
  • businessStructure - IKEA's internal home-furnishing-business / product-area hierarchy.
  • availability - Summary string embedded in the SIK result.
  • query, country, language - Echoed back per row.

Optional (when includeProductDetails: true)

  • productDetails - Full IKEA communications record: child items, assembly time and instruction PDF URLs, care instructions, compliance information, package dimensions, design materials.

Optional (when includeAvailability: true)

  • stock - {availableForCashCarry, availableForClickCollect, homeDeliveryInRange, cashCarryQuantity, cashCarryMessageType, cashCarryUpdateDateTime, storesWithStock}.

Pricing

EventPrice
Product result (one row in the dataset)$0.0008

No actor-start fee. No tier ladder. Flat $0.0008 per product.

Worked examples:

  • 100 products: $0.08
  • 1,000 products: $0.80
  • 10,000 products: $8.00
  • 100,000 products: $80.00

For reference, the cheapest current IKEA scraper on Apify charges $0.001 per result plus a per-run fee, and the most-used one charges $0.002 per result plus a per-run fee. This actor is cheaper than both and skips the per-run charge entirely.

How it works

The actor talks to three IKEA API endpoints, all public:

  1. POST sik.search.blue.cdtapps.com/{country}/{lang}/search - full search-result payload with prices, ratings, images, and filters.
  2. GET api.ingka.ikea.com/salesitem/communications/ru/{country} - per-product detail (used only when includeProductDetails is on).
  3. GET api.salesitem.ingka.com/availabilities/ru/{country} - per-store stock (used only when includeAvailability is on).

The two enrichment endpoints want a public client key in the X-Client-Id / X-Client-ID header. Those keys ship in plain HTML on every IKEA product page. The actor refreshes them at the start of every run from https://www.ikea.com/{country}/{language}/p/..., so silent key rotations do not break it.

Limits

  • IKEA's search caps each result page at about 120 items regardless of what you ask for. The actor pages with offsets and stops automatically at the total hit count.
  • Single-query result counts vary from ~50 to ~1000 depending on the category. There is no public way to push beyond IKEA's own ceiling.
  • The gb/de/fr and other non-US markets work the same way. Make sure the country and language codes match a real IKEA market.

FAQ

Why is this cheaper than the other IKEA scrapers? It hits IKEA's data APIs directly with bare HTTP. No headless Chrome, no residential proxies, no parsing HTML. That makes both the per-result compute cost and the dev-time investment a fraction of a browser-based approach, and the savings are passed through.

Do I need an Apify proxy? No. The IKEA endpoints have no anti-bot on the data plane. Datacenter Apify proxy (the default) is fine. Residential is supported if you want to be cautious.

Will this work for non-US markets? Yes. Pass country and language (e.g. de/de, gb/en, fr/fr, se/sv). The same APIs serve every IKEA market.

Can I just dump every IKEA product? Pass a list of broad queries (furniture, kitchen, lighting, ...) and a large maxItems. For a cleaner enumeration use IKEA's category pages; a future version of the actor may take category keys directly.

Does it return real-time data? Search results and prices are near-real-time. Stock with includeAvailability returns per-store snapshot data with an updateDateTime per store; trust that field over local caching.

Changelog

  • 0.1 - Initial release. SIK search + optional communications + optional availabilities enrichment.