Access IKEA product data, 3D models, digital assets, and selling ranges.
Interactive 3D IKEA product showroom built with React Three Fiber
Live usage statistics, traffic sources, and request monitoring
Machine-readable API specification in OpenAPI/JSON format
id — product ID
url — full model
URL
pageType (search-result-page |
visual-search-result-page | product-list-page |
product-group-page | special), market,
language,
products (comma-separated IDs),
contentType
itemNos (comma-separated),
ru (retail unit), language
searchTerm,
market, limit (default 24),
offset, isProduct,
isShoppable, field
searchTerm,
market, isProduct,
isShoppable, width (optional, px)
ru (retail unit),
language, identifier (optional
category ID)
Guided MCP prompts that orchestrate multiple tools for common workflows.
| Action | Explanation |
|---|---|
getting_started |
Overview of all available tools with example queries for a selected market. |
design_product_page |
Step-by-step flow for building a product detail page using data, images, and pricing. |
create_product_grid |
Guided workflow for building a category or search product grid. |
find_inspiration_images |
Helps find lifestyle and room scene images for mood boards and hero content. |
explore_3d_models |
Discover and download available IKEA GLB models. |
build_shopping_experience |
Multi-step guide for a complete room shopping experience. |
create_3d_showroom |
Workflow to find products, verify 3D support, and generate a showroom URL. |
control_showroom |
Guide for iframe embedding and runtime showroom control via postMessage. |
Direct tools available on the /mcp endpoint.
| Tool | Explanation |
|---|---|
search_products |
Search IKEA products by keyword, category, or product IDs. |
get_products_by_ids |
Fetch product data for one or more IKEA article numbers. |
get_selling_range |
Get detailed product information including specs and assembly data. |
get_categories |
Return the IKEA category tree for a market and language. |
search_dam_images |
Search DAM for product and lifestyle images. |
get_random_dam_image |
Return a random IKEA image for quick visual inspiration. |
list_dimma_models |
List available IKEA 3D models and formats from Dimma. |
get_dimma_model |
Get a specific IKEA 3D model download URL (GLB). |
get_endpoint |
Return REST endpoint URL and schema details for a given use case. |
get_product_card_data |
Return a flat, UI-ready product card object. |
get_product_images |
Get all available product image URLs and metadata. |
get_room_scene_images |
Get lifestyle room-scene images for banners and inspiration sections. |
get_product_price |
Return current and previous price details, including discount info. |
get_product_list_for_category |
Get a list of UI-ready product cards for a category or query. |
generate_showroom_url |
Generate a configured URL for an interactive Placera 3D showroom. |
get_showroom_controls |
Return the full postMessage API for controlling an embedded showroom. |
Try these prompts in your MCP-compatible client:
postMessage.
Embed an interactive 3D product showroom in any web page using
an
<iframe>. Control it programmatically with
the postMessage API.
Add a showroom with a single product:
Remove the room and background so the product floats over your page:
Add multiple products with custom positions and rotations. Each
product uses a product{N} parameter (0-indexed)
with a JSON value:
| Parameter | Type | Default | Description |
|---|---|---|---|
product{N} |
JSON | — |
Product config:
{id, name, position, rotation}
|
showRoom |
boolean | true |
Show room walls and floor |
style |
string | style1 |
Room style preset (style1,
style2)
|
backgroundColor |
hex | #e8e5dd |
Background color (visible when showRoom=false) |
transparentBackground |
boolean | false |
Transparent canvas for iframe embeds |
lightOn |
boolean | false |
Toggle room light bulb |
bulbTemperature |
number | 5000 |
Light color temperature in Kelvin (2000–8000) |
bulbLumens |
number | 10 |
Light brightness (1–100) |
physics |
boolean | false |
Enable physics simulation |
cameraPosition |
floats | 0,0.75,3.5 |
Camera position x,y,z |
cameraTarget |
floats | 0,0.75,0 |
Camera look-at target x,y,z |
cameraFov |
number | 50 |
Camera field of view in degrees |
timeOfDay |
number | 14 |
Time of day (0–24). Controls sun position, colour temperature, and intensity. 0 = midnight, 12 = solar noon, 14 = afternoon, 18 ≈ sunset. |
latitude |
number | 50 |
Observer latitude in degrees (−90 to 90). Affects sun altitude and day length. Negative = southern hemisphere. |
season |
string | auto |
Solar season for declination: auto (derive from current date), spring, summer, autumn, winter. |
Send commands to the showroom iframe using
window.postMessage. Every message has the shape
{ type, payload }.
| Message Type | Payload | Description |
|---|---|---|
animateCamera |
position: [x,y,z]target: [x,y,z]duration: seconds
|
Smoothly animate camera to a position/target over the given duration |
rotateCamera |
deltaAzimuth: degdeltaPolar: degmaxRotateLeft/Right/Up/Down: deg
|
Rotate camera orbit with optional angle limits |
rotateModel |
modelDeltaY: degmodelProductIndex: n
ormodelProductId: id
|
Rotate a specific product around its Y axis |
toggleRoom |
showRoom: bool |
Show or hide the room environment |
changeStyle |
roomStyle: string |
Switch room style ("style1" or
"style2")
|
switchLight |
lightOn: bool |
Turn the room light on or off |
togglePhysics |
physicsEnabled: bool |
Enable or disable physics simulation |
toggleTransparentBackground |
transparentBackground: bool |
Toggle transparent background |
setBackgroundColor |
backgroundColor: string |
Set the background color |
setTimeOfDay |
timeOfDay: number |
Set time of day (0–24) for sun position, colour, and intensity |
setLatitude |
latitude: number |
Set observer latitude in degrees (−90 to 90). Changes sun altitude and day length. Values out of range are ignored. |
setSeason |
season: string |
Set solar season: "auto" (current date), "spring", "summer", "autumn", "winter". Invalid values are ignored. |
setProductVisibility |
visible: boolproductIndex: n
orproductId: id
|
Show or hide a specific product |
toggleToolTip |
toolTip: { show, x, y, z,title, content,backgroundOpacity,backgroundBlur }
|
Show a 3D-positioned tooltip in the scene |
toggleAlt |
showAlt: bool |
Toggle the alternative main product |
ping |
(none) |
Health check — showroom replies with a
heartbeat message
|
The showroom sends messages back to the parent window that you can listen for:
Try the postMessage API live. Click the buttons to control the embedded showroom.