Placera Proxy API

Access IKEA product data, 3D models, digital assets, and selling ranges.

🏠 3D Showroom

Interactive 3D IKEA product showroom built with React Three Fiber

📊 Analytics Dashboard

Live usage statistics, traffic sources, and request monitoring

📖 OpenAPI Spec

Machine-readable API specification in OpenAPI/JSON format

#3D Models (Dimma)

GET /get-dimma-by-id
Get the best available 3D model (GLB) for a product ID. Prioritises quality: iqp3 > iqp2 > iqp1 > rqp3 > rqp2 > rqp1 > simple.
Params: id — product ID
GET /get-dimma-list
List all available 3D models with product information.
GET /get-dimma-tags
List all available tags for 3D models.
GET /get-dimma-model
Download a GLB 3D model file from a given URL.
Params: url — full model URL

#Product Information (SIK)

GET /products
Get comprehensive product information from IKEA’s SIK system. Supports keyword search, product ID lookup, category pages, and special price lists.
Params: pageType (search-result-page | visual-search-result-page | product-list-page | product-group-page | special), market, language, products (comma-separated IDs), contentType
GET /selling-range
Get detailed selling range information including media, designers, measurements, and assembly info.
Params: itemNos (comma-separated), ru (retail unit), language

#Digital Assets (DAM)

GET /dam auth required
Search for digital assets (images, videos) in IKEA’s DAM system.
Params: searchTerm, market, limit (default 24), offset, isProduct, isShoppable, field
GET /dam-random-image auth required
Return a random image file from DAM search results. Supports width resizing.
Params: searchTerm, market, isProduct, isShoppable, width (optional, px)

#Categories

GET /categorisation
Get the IKEA category tree for browsing product categories.
Params: ru (retail unit), language, identifier (optional category ID)

#Video

GET /video
Stream video content.

#MCP (Model Context Protocol)

POST /mcp
Model Context Protocol endpoint for AI agent tool access. Exposes 16 tools and 8 guided actions for product search, 3D models, images, and showroom workflows.

MCP Actions

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.

MCP Tools

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.

Example prompts

Try these prompts in your MCP-compatible client:

#Embed the 3D Showroom

Embed an interactive 3D product showroom in any web page using an <iframe>. Control it programmatically with the postMessage API.

Basic Embed

Add a showroom with a single product:

<iframe src="/showroom?product0={"id":"60555153"}" width="100%" height="500" style="border: none; border-radius: 12px;" allow="autoplay" ></iframe>

Transparent Background

Remove the room and background so the product floats over your page:

<iframe src="/showroom?transparentBackground=true&showRoom=false&product0={"id":"60555153"}" style="width:100%; height:500px; border:none; background:transparent;" allowtransparency="true" ></iframe>

Multiple Products

Add multiple products with custom positions and rotations. Each product uses a product{N} parameter (0-indexed) with a JSON value:

// Each product parameter is a JSON object: // { id, name (optional), position: [x,y,z], rotation: [x,y,z] } /showroom?product0={"id":"60555153","position":[0,0,0]} &product1={"id":"70078463","position":[1.5,0,0]}

URL Parameters

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.

postMessage API — Controlling the Showroom

Send commands to the showroom iframe using window.postMessage. Every message has the shape { type, payload }.

const iframe = document.querySelector('iframe'); // Animate the camera to a new position over 2 seconds iframe.contentWindow.postMessage({ type: 'animateCamera', payload: { position: [2, 1.5, 3], target: [0, 0.5, 0], duration: 2 } }, '*');
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: deg
deltaPolar: deg
maxRotateLeft/Right/Up/Down: deg
Rotate camera orbit with optional angle limits
rotateModel modelDeltaY: deg
modelProductIndex: n or
modelProductId: 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: bool
productIndex: n or
productId: 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

Listening for Events from the Showroom

The showroom sends messages back to the parent window that you can listen for:

window.addEventListener('message', (event) => { const { type, data } = event.data; if (type === 'PRODUCT_UPDATE') { // Single product moved/rotated by the user console.log(data); // { id, name, position, rotation, show } } if (type === 'ALL_PRODUCTS_UPDATE') { // Full product list state console.log(data); // [{ id, name, position, rotation, show }, ...] } if (type === 'heartbeat') { // Response to a ping console.log(data); // { status: 'alive', timestamp, performanceTime } } });

Interactive Demo

Try the postMessage API live. Click the buttons to control the embedded showroom.

Camera

Room

Season & Location

Model

Tooltip

Debug

Current embed ↗ Open in Showroom

                
Link copied!