Files
house-design/RESEARCH-ikea-data.md

14 KiB
Raw Permalink Blame History

IKEA Furniture Data Import — Research Report

Task: t-05dd7 Date: 2026-02-07 Researcher: researcher role

Executive Summary

There is no official public IKEA API for furniture data. However, there are multiple viable paths to get IKEA product dimensions and 3D models into our room planner. The recommended approach is a tiered strategy: start with a curated hand-built catalog of common IKEA items using known dimensions, with optional GLB model loading for enhanced visuals later.


1. IKEA APIs (Official)

IKEA Has No Public Developer API

IKEA does not offer a public REST/GraphQL API for developers. There is no developer portal, no API keys, no official documentation.

Undocumented Internal Endpoints

IKEA's website uses internal APIs that have been partially reverse-engineered:

Endpoint Purpose Format
sik.search.blue.cdtapps.com/{country}/{lang}/search-result-page?q={query}&size=24&types=PRODUCT Product search JSON
www.ikea.com/{country}/{lang}/products/{itemNo[5:]}/{itemNo}.json Product detail (PIP) JSON
api.ingka.ikea.com/cia/availabilities/{country}/{lang}?itemNos={itemNo} Stock/availability JSON
www.ikea.com/{region}/{country}/iows/catalog/availability/{itemNo} Legacy availability (deprecated Dec 2021) XML
web-api.ikea.com/{country}/{lang}/rotera/data/exists/{itemNo}/ 3D model existence check JSON
web-api.ikea.com/{country}/{lang}/rotera/data/model/{itemNo}/ 3D model metadata + CDN URL JSON

The Rotera API is most relevant for us — it returns a modelUrl field pointing to the actual GLB file on IKEA's CDN. This is what the Blender IKEA Browser add-on uses internally.

IKEA Kreativ: Their AI-powered room planner at ikea.com/us/en/home-design/ uses AWS infrastructure (API Gateway at ddh79d7xh5.execute-api.us-east-1.amazonaws.com). No public API.

Status: All endpoints are undocumented, unsupported, and may break at any time. Rate limiting and anti-bot measures exist. The IOWS endpoints are deprecated.

Sources: https://sbmueller.github.io/posts/ikea/ | Postman workspace: https://www.postman.com/galactic-shuttle-566922/ikea/overview

Archived Python Client

vrslev/ikea-api-client (GitHub, 1k+ stars) — Python client for IKEA internal APIs supporting cart, search, stock, item info, and 3D models. Archived October 2024 — no longer maintained. MIT license.

  • Supported: stock lookup, product search, item specs, 3D model retrieval (RoteraItem endpoint)
  • Install: pip install ikea-api[httpx]
  • Not recommended for new projects since archived

Source: https://github.com/vrslev/ikea-api-client

npm: ikea-availability-checker (Active)

Ephigenia/ikea-availability-checker — Node.js package for checking IKEA stock across 40+ countries and 400+ stores. Actively maintained.

npm install ikea-availability-checker
# CLI: ikea-availability-checker stock --country us 30457903

Not directly useful for dimensions/models but proves Node.js access to IKEA endpoints is feasible.

Source: https://github.com/Ephigenia/ikea-availability-checker


2. Open Datasets with Dimensions

Best: Hugging Face — IKEA US CommerceTXT (30,511 products)

  • Records: 30,511 products across 632 categories
  • Fields: Name, SKU, Price, Dimensions (Width/Height/Depth), Materials, Category, Images, URLs
  • Format: CommerceTXT v1.0.1 (text-based, parseable) + Parquet (56.5 MB)
  • License: CC0 1.0 (Public Domain) — fully usable
  • Date: July 15, 2025
  • Dimensions: Yes, in the @SPECS section (e.g., Width: 12", Height: 16")
from datasets import load_dataset
dataset = load_dataset("tsazan/ikea-us-commercetxt")

Source: https://huggingface.co/datasets/tsazan/ikea-us-commercetxt

Good: Kaggle — IKEA SA Furniture (2,962 items)

  • Records: 2,962 items
  • Fields: name, category, price, width (cm), height (cm), depth (cm), designer, description
  • Format: CSV
  • License: Kaggle dataset terms
  • Date: April 2020 (somewhat dated)
  • Dimensions: Yes — width, height, depth in centimeters

Source: https://www.kaggle.com/datasets/ahmedkallam/ikea-sa-furniture-web-scraping

Good: GitHub — IKEA Dataset (12,600+ items)

  • Records: 12,600+ images with furniture dimensions
  • Fields: Name, dimensions (width/length/height cm), material
  • Format: ZIP archives + Python scraping script
  • Organization: By room (bedroom, bathroom, kitchen, living room, etc.)
  • Date: January 2020

Source: https://github.com/valexande/IKEA-Dataset

Reference: Dimensions.com — IKEA Collection

  • Content: Dozens of IKEA products with precise dimensions + technical drawings
  • Formats: DWG, SVG, JPG (2D) + 3DM, OBJ, SKP (3D models)
  • Coverage: KALLAX, HEMNES, BESTÅ, BEKANT, and many more series
  • Dual units: Both inches and centimeters
  • Includes: Weight capacities
  • Note: Good for manual reference but not easily machine-parseable without scraping

Source: https://www.dimensions.com/collection/ikea-furniture


3. IKEA 3D Models

Web-Sourced GLB Models (Best Path for Three.js)

IKEA product pages with a "View in 3D" button serve simplified, Draco-compressed GLB (binary glTF) files. These are:

  • Format: GLB (binary glTF 2.0) — native Three.js format
  • Quality: "Lowest quality versions" — simplified from manufacturing models for web delivery
  • Properties: Scaled in metric, basic materials applied, KHR_Texture_Transform extension
  • Compatibility: Direct import into Three.js via GLTFLoader + DRACOLoader

Tools to Download IKEA GLB Models

Tool Type Stars Status License
IKEA 3D Model Download Button Tampermonkey userscript 941 Active (Jan 2026)
IKEA 3D Model Batch Downloader Python (Selenium+BS4) Active GPL-3.0
IKEA Browser for Blender Blender addon 95k downloads Active (v0.4.0, Oct 2025) GPL-3.0
Chrome Extension Chrome extension Active

The batch downloader workflow:

  1. Give it an IKEA category URL (e.g., https://www.ikea.com/fi/fi/cat/chairs-fu002/)
  2. Scrapes product links → extracts 3D model URLs → downloads GLB files
  3. Stores metadata in SQLite database
  4. Deduplication built-in

Note: Not all IKEA products have 3D models. Only items with the "View in 3D" button are available.

Official IKEA 3D Assembly Dataset (GitHub)

  • Source: https://github.com/IKEA/IKEA3DAssemblyDataset
  • Items: Only 5 products (LACK, EKET, BEKVÄM, DALFRED)
  • Formats: GLB/glTF + OBJ + PDF assembly instructions
  • License: CC BY-NC-SA 4.0 — non-commercial only, research purposes
  • Verdict: Too few items and restrictive license. Not suitable for our use.

Sweet Home 3D IKEA Libraries

Third-Party Model Sources

  • Sketchfab: Search "IKEA" — many free community models, various licenses
  • TurboSquid: Free IKEA models available
  • Clara.io: Some IKEA models
  • Trimble 3D Warehouse: IKEA models available (SketchUp format)

4. Web Scraping Feasibility

Existing Scrapers

Project Stack Notes
IKEA Scraper Python Full scraper for ikea.com
ikea-webscraper Selenium Product info extraction
IKEA-project Selenium Product scraping
ikea-scraper IKEA data extraction

Technical Challenges

  • IKEA uses heavy client-side rendering (React/Next.js) requiring browser automation (Selenium)
  • Anti-bot protections: CAPTCHAs, rate limiting, IP blocking
  • Dimension data is embedded in product pages in varying formats
  • Product IDs are 8-digit numbers but URL structure varies by locale
  • IKEA's Terms of Service prohibit automated scraping
  • IKEA actively protects trademarks and trade dress under US Trademark Act
  • For personal/non-commercial home planning use, tools like the Blender extension operate in a gray area
  • The HuggingFace CommerceTXT dataset (CC0) is the safest legal path for product data

5. Standard IKEA Dimensions Reference

Manually verified dimensions for the most common IKEA product lines:

Storage

Product Width (cm) Depth (cm) Height (cm)
KALLAX 1×4 42 39 147
KALLAX 2×2 77 39 77
KALLAX 2×4 77 39 147
KALLAX 4×4 147 39 147
BILLY bookcase (standard) 80 28 202
BILLY bookcase (narrow) 40 28 202
BILLY bookcase (short) 80 28 106
HEMNES 6-drawer dresser 108 50 131
HEMNES 3-drawer dresser 108 50 96
HEMNES bookcase 90 37 197
BESTÅ TV bench 120/180 42 38
MALM 6-drawer dresser 80 48 123
MALM 4-drawer dresser 80 48 100
PAX wardrobe (standard) 100/150/200 58 201/236

Tables

Product Width (cm) Depth (cm) Height (cm)
LACK side table 55 55 45
LACK coffee table 90 55 45
LACK TV bench 90 26 45
LISABO desk 118 45 74
BEKANT desk (rect) 120/140/160 80 65-85
LINNMON/ALEX desk 150 75 73
MELLTORP dining table 125 75 74
EKEDALEN ext. table 120-180 80 75

Seating

Product Width (cm) Depth (cm) Height (cm)
POÄNG armchair 68 82 100
STRANDMON wing chair 82 96 101
KLIPPAN 2-seat sofa 180 88 66
EKTORP 3-seat sofa 218 88 88
KIVIK 3-seat sofa 228 95 83
MARKUS office chair 62 60 129-140

Beds

Product Width (cm) Depth (cm) Height (cm)
MALM bed (queen, 160) 160 209 92 (headboard)
MALM bed (king, 180) 180 209 92 (headboard)
MALM bed (single, 90) 90 209 92 (headboard)
HEMNES bed (queen) 163 211 66 (headboard 112)
KURA reversible bed 99 209 116
SUNDVIK child bed 80 167 83

Kitchen

Product Standard Width (cm) Depth (cm) Height (cm)
METOD base cabinet 60/80 60 80
METOD wall cabinet 60/80 37 60/80/100
METOD tall cabinet 60 60 200/220
KNOXHULT base cabinet 120/180 61 85
VADHOLMA kitchen island 126 79 90

6. Recommendations for Our Project

Tier 1: Curated IKEA Catalog (Immediate)

Extend data/furniture-catalog.json with IKEA-specific items:

  • Add 30-50 most popular IKEA products with verified dimensions
  • Use our existing procedural mesh format (box geometry parts)
  • Add ikeaId field (8-digit product number) for future linking
  • Add ikeaSeries field (KALLAX, BILLY, MALM, etc.)
  • Add ikeaUrl field for reference

Schema extension:

{
  "id": "ikea-kallax-2x4",
  "name": "KALLAX Regal 2×4",
  "ikeaId": "80275887",
  "ikeaSeries": "KALLAX",
  "ikeaUrl": "https://www.ikea.com/de/de/p/kallax-regal-weiss-80275887/",
  "category": "storage",
  "rooms": ["wohnzimmer", "arbeitszimmer", "kinderzimmer"],
  "dimensions": { "width": 0.77, "depth": 0.39, "height": 1.47 },
  "variants": [
    { "color": "white", "hex": "#ffffff" },
    { "color": "black-brown", "hex": "#3c3028" },
    { "color": "white-stained-oak", "hex": "#d4c4a8" }
  ],
  "mesh": { ... }
}

Effort: ~2-3 hours to add 30 items manually from IKEA website Risk: None — uses verified public dimensions

Tier 2: GLB Model Import (Enhancement)

Add optional GLB model loading to the renderer:

  • Use Three.js GLTFLoader + DRACOLoader to load IKEA GLB files
  • Users download GLB files themselves (personal use) via browser extension
  • Store in local models/ directory
  • Fall back to procedural mesh if GLB not available
// In catalog entry:
{
  "id": "ikea-kallax-2x4",
  "model3d": "models/ikea/kallax-2x4.glb",  // optional
  "mesh": { ... }  // fallback procedural geometry
}

Effort: ~4-6 hours for GLTFLoader integration Risk: Low — GLB loading is standard Three.js functionality

Tier 3: Dataset Import Tool (Future)

Build a converter that parses the HuggingFace CommerceTXT dataset:

  • Extract product dimensions from @SPECS section
  • Map categories to our catalog format
  • Auto-generate procedural meshes from dimensions
  • Run offline as a data pipeline

Effort: ~1-2 days Risk: Medium — dimension parsing from free-text specs varies in reliability

What NOT to Do

  1. Don't scrape IKEA live — Legal risk, fragile, unnecessary when datasets exist
  2. Don't depend on undocumented APIs — They change without notice
  3. Don't bundle IKEA 3D models — Trademark/IP issues. Let users provide their own
  4. Don't use the IKEA 3D Assembly Dataset for the app — License is NC-SA research only

7. Key Sources

Resource URL Best For
HuggingFace IKEA US https://huggingface.co/datasets/tsazan/ikea-us-commercetxt Dimension data (CC0)
Kaggle IKEA SA https://www.kaggle.com/datasets/ahmedkallam/ikea-sa-furniture-web-scraping Structured CSV with dims
Dimensions.com IKEA https://www.dimensions.com/collection/ikea-furniture Reference dimensions + drawings
3D Batch Downloader https://github.com/apinanaivot/IKEA-3d-model-batch-downloader Downloading GLB models
Blender IKEA Browser https://extensions.blender.org/add-ons/ikea-browser/ Model inspection/conversion
IKEA API Blog https://sbmueller.github.io/posts/ikea/ Understanding IKEA endpoints
Sweet Home 3D IKEA https://3deshop.blogscopia.com/ikea-bundle-342-models/ Pre-made 3D models (needs conversion)