Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/ikea-products-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ikea Products API
version: 0.1.0
contact:
name: Unofficial IKEA OpenAPI Maintainer
url: https://github.com/idelsink/ikea-openapi
license:
name: MIT License
url: https://opensource.org/licenses/MIT
description: 'Operations tagged Products across 2 of this provider''s published API definitions: ikea-product-catalog-openapi.yml, ikea-search-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://www.ikea.com/{country}/{language}
description: IKEA main website
variables:
country:
default: gb
description: Country code (e.g., de, gb, fr, us)
language:
default: en
description: Language code (e.g., en, de, fr)
- url: https://sik.search.blue.cdtapps.com/{country}/{language}
description: IKEA Search API
variables:
country:
default: gb
description: Country code (e.g., de, gb, fr, us, no)
language:
default: en
description: Language code (e.g., en, de, fr)
tags:
- name: Products
description: Everything about Products
paths:
/products/{productIdSuffix}/{productId}.json:
get:
summary: IKEA Find Product by Id
description: Returns a single product
operationId: getProductById
tags:
- Products
parameters:
- $ref: '#/components/parameters/productIdSuffix'
- $ref: '#/components/parameters/productId'
responses:
'200':
description: Successful response with product details
content:
application/json:
schema:
$ref: '#/components/schemas/ProductDetails'
examples:
GetProductById200Example:
summary: Default getProductById 200 response
value:
catalogRefs:
products:
elements:
- id: '43632'
name: Fitted wardrobes
url: https://www.ikea.com/de/en/cat/fitted-wardrobes-43632/
id: products
name: Products
url: https://www.ikea.com/de/en/cat/products-products/
currencyCode: EUR
experimental: {}
globalId: 00263850
id: 00263850
mainImage:
alt: A white ikea PAX wardrobe with open doors, revealing shelves and a basket.
id: 1197448_PE903536
imageFileName: 1197448_PE903536_S5.JPG
type: MAIN_PRODUCT_IMAGE
url: https://www.ikea.com/de/en/images/products/pax-forsand-wardrobe-white-white__1197448_pe903536_s5.jpg
name: PAX / FORSAND
pipUrl: https://www.ikea.com/de/en/p/pax-forsand-wardrobe-white-white-s09502728/
x-microcks-default: true
'400':
description: Bad Request
'404':
description: Product could not be found
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: https://www.ikea.com/{country}/{language}
description: IKEA main website
variables:
country:
default: gb
description: Country code (e.g., de, gb, fr, us)
language:
default: en
description: Language code (e.g., en, de, fr)
/product-list-page:
get:
summary: IKEA Get a Limited Set of Filtered Products
description: Returns a window of products that matches the filtered criteria.
operationId: findProducts
tags:
- Products
parameters:
- $ref: '#/components/parameters/category'
- $ref: '#/components/parameters/size'
responses:
'200':
description: Lists a limited set of Products for a given category.
content:
application/json:
schema:
$ref: '#/components/schemas/ProductListPage'
examples:
FindProducts200Example:
summary: Default findProducts 200 response
value:
usergroup: '[]'
testActivationTriggers: {}
productListPage:
category:
name: example
key: example
url: example
imageUrl: example
productWindow:
- example
productCount: 1
plannerWindow:
- {}
plannerCount: 1
filters2:
- {}
dynamicFiltersV1:
- {}
dynamicFilters:
- {}
x-microcks-default: true
'400':
description: Bad Request for Listing of Products
'404':
description: Product List Not Found
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: https://sik.search.blue.cdtapps.com/{country}/{language}
description: IKEA Search API
variables:
country:
default: gb
description: Country code (e.g., de, gb, fr, us, no)
language:
default: en
description: Language code (e.g., en, de, fr)
/product-list-page/more-products:
get:
summary: IKEA Get a Paginated Set of Filtered Products
description: Returns a window of paginated products that matches the filtered criteria.
operationId: findProductsPaginated
tags:
- Products
parameters:
- $ref: '#/components/parameters/category'
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/end'
responses:
'200':
description: Lists a paginated set of Products for a given category.
content:
application/json:
schema:
$ref: '#/components/schemas/MoreProducts'
examples:
FindProductsPaginated200Example:
summary: Default findProductsPaginated 200 response
value:
usergroup: '[]'
testActivationTriggers: {}
moreProducts:
productWindow:
- example
x-microcks-default: true
'400':
description: Bad Request for More Products
'404':
description: More Products Not Found
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: https://sik.search.blue.cdtapps.com/{country}/{language}
description: IKEA Search API
variables:
country:
default: gb
description: Country code (e.g., de, gb, fr, us, no)
language:
default: en
description: Language code (e.g., en, de, fr)
components:
schemas:
ProductDetails:
type: object
description: 'Product details
> Note: This Schema does not describe all of the properties returned or does not have a description for all properties. It only describes a sub-set of them.
'
required:
- catalogRefs
- currencyCode
- experimental
- globalId
- id
- mainImage
- name
- pipUrl
- price
- priceExclTax
- priceExclTaxNumeral
- priceNumeral
- revampPrice
- typeName
- validDesignText
properties:
catalogRefs:
type: object
required:
- products
properties:
products:
type: object
required:
- elements
- id
- name
- url
properties:
elements:
type: array
items:
type: object
required:
- id
- name
- url
properties:
id:
type: string
example: '43632'
name:
type: string
example: Fitted wardrobes
url:
type: string
format: uri
example: https://www.ikea.com/de/en/cat/fitted-wardrobes-43632/
id:
type: string
example: products
name:
type: string
example: Products
url:
type: string
format: uri
example: https://www.ikea.com/de/en/cat/products-products/
currencyCode:
type: string
example: EUR
experimental:
type: object
example: {}
globalId:
$ref: '#/components/schemas/productId'
id:
$ref: '#/components/schemas/productId'
mainImage:
type: object
required:
- alt
- id
- imageFileName
- type
- url
properties:
alt:
type: string
example: A white ikea PAX wardrobe with open doors, revealing shelves and a basket.
id:
type: string
example: 1197448_PE903536
imageFileName:
type: string
example: 1197448_PE903536_S5.JPG
type:
type: string
example: MAIN_PRODUCT_IMAGE
url:
type: string
format: uri
example: https://www.ikea.com/de/en/images/products/pax-forsand-wardrobe-white-white__1197448_pe903536_s5.jpg
name:
type: string
description: Product name
example: PAX / FORSAND
pipUrl:
type: string
format: uri
example: https://www.ikea.com/de/en/p/pax-forsand-wardrobe-white-white-s09502728/
price:
type: string
description: Product price
example: 560.00€
priceExclTax:
type: string
example: 470.58€
priceExclTaxNumeral:
type: number
example: 470.58
priceNumeral:
type: number
example: 560
revampPrice:
type: object
typeName:
type: string
example: wardrobe
validDesignText:
type: string
example: white/white
productId:
type: string
description: Product identifier
example: 00263850
Product:
type: object
description: Project details
required:
- name
- typeName
- itemMeasureReferenceText
- mainImageUrl
- pipUrl
- allProductImage
- id
- itemNoGlobal
- onlineSellable
- lastChance
- gprDescription
- colors
- tag
- quickFacts
- features
- availability
- itemNo
- itemType
- salesPrice
- contextualImageUrl
- contextualImageAlt
- mainImageAlt
- businessStructure
- categoryPath
- heroBackoffData
- optimizelyAttributes
properties:
name:
type: string
description: Product name
example: PLATSA
typeName:
type: string
description: Product type description
example: Wardrobe with 8 doors+3 drawers
itemMeasureReferenceText:
type: string
description: Dimensions of the product in centimeters
example: 240x57x221 cm
mainImageUrl:
type: string
format: uri
description: URL of the main product image
example: https://www.ikea.com/gb/en/images/products/platsa-wardrobe-with-8-doors-3-drawers-white-straumen-mirror-glass-sannidal-white__1017864_pe830974_s5.jpg
pipUrl:
type: string
format: uri
description: Product information page URL
example: https://www.ikea.com/gb/en/p/platsa-wardrobe-with-8-doors-3-drawers-white-straumen-mirror-glass-sannidal-white-s39424871/
filterClass:
type: string
description: Product filter classification
example: wardrobes
allProductImage:
type: array
description: List of product images
items:
type: object
required:
- altText
- type
- url
properties:
altText:
type: string
description: Alt text of the product image
example: White PLATSA storage system with multiple open shelves and a section with hanging rail and baskets.
type:
type: string
description: Type of product image
example: MAIN_PRODUCT_IMAGE
url:
type: string
format: uri
description: URL of the product image
example: https://www.ikea.com/gb/en/images/products/platsa-wardrobe.jpg
id:
$ref: '#/components/schemas/productId'
itemNoGlobal:
$ref: '#/components/schemas/productId'
onlineSellable:
type: boolean
description: Whether the product is available for online purchase
example: true
lastChance:
type: boolean
description: Whether the product is in last chance clearance
example: false
gprDescription:
type: object
description: Product variants information
required:
- numberOfVariants
- variants
properties:
numberOfVariants:
type: integer
example: 0
variants:
type: array
items:
type: object
description: Variants of a product. This will contain a list of Product items.
example: {}
colors:
type: array
description: Available colors
items:
type: object
properties:
name:
type: string
example: white
id:
type: string
example: '10156'
hex:
type: string
example: ffffff
tag:
type: string
description: Promotional tag
example: FAMILY_PRICE
tagText:
type: string
description: Promotional tag text
example: IKEA Family price
quickFacts:
type: array
description: 'Quick facts about the product (Note: Type if items is unknown at the time of writing)'
items:
type: object
example:
type: KEY_BENEFITS
id: '100'
name: Large drawers
typeName: Key benefits
features:
type: array
description: 'Product features (Note: Type if items is unknown at the time of writing)'
items:
type: string
example: 'Note: Type if items is unknown at the time of writing'
availability:
type: array
description: 'Availability information (Note: Type if items is unknown at the time of writing)'
items:
type: string
example: 'Note: Type if items is unknown at the time of writing'
ratingValue:
type: number
format: float
description: Average rating value
example: 2.3
ratingCount:
type: integer
description: Number of ratings
example: 4
itemNo:
$ref: '#/components/schemas/productId'
itemType:
$ref: '#/components/schemas/itemType'
salesPrice:
type: object
description: Pricing information
properties:
currencyCode:
type: string
example: EUR
numeral:
type: number
format: float
example: 836.5
current:
type: object
properties:
prefix:
type: string
example: ''
wholeNumber:
type: string
example: '836'
separator:
type: string
example: .
decimals:
type: string
example: '50'
suffix:
type: string
example: €
isRegularCurrency:
type: boolean
example: true
style:
type: string
example: BASE
previous:
type: object
properties:
prefix:
type: string
example: ''
wholeNumber:
type: string
example: '963'
separator:
type: string
example: .
decimals:
type: string
example: '50'
suffix:
type: string
example: €
isRegularCurrency:
type: boolean
example: true
style:
type: string
example: BASE
lowestPreviousSalesPrice:
type: object
properties:
prefix:
type: string
example: ''
wholeNumber:
type: string
example: '963'
separator:
type: string
example: .
decimals:
type: string
example: '50'
suffix:
type: string
example: €
isRegularCurrency:
type: boolean
example: true
style:
type: string
example: BASE
isBreathTaking:
type: boolean
example: false
discount:
type: string
example: ''
prevPriceLabel:
type: string
example: Normal price
lowestPreviousSalesPriceLabel:
type: string
example: Lowest price in the last 30 days
validFrom:
type: string
format: date
example: '2025-08-29'
validTo:
type: string
format: date
example: '2025-09-30'
experimentalDiscountAmount:
type: number
example: 127
experimentalDiscountPercentage:
type: integer
example: 13
availabilityDisclaimer:
type: string
example: Price valid 29. August 2025 - 30. September 2025 or while supply lasts
tag:
type: string
example: FAMILY_PRICE
tagText:
type: string
example: IKEA Family price
priceText:
type: string
example: Price
tags:
type: array
items:
type: string
example: FAMILY_PRICE
tagWithText:
type: object
properties:
tag:
type: string
example: FAMILY_PRICE
text:
type: string
example: IKEA Family price
contextualImageUrl:
type: string
format: uri
description: Contextual product image URL
example: https://www.ikea.com/gb/en/images/products/platsa-contextual.jpg
contextualImageAlt:
type: string
description: Alt text for contextual image
example: PLATSA wardrobe with mirrors, next to bed, mirror, and basket.
mainImageAlt:
type: string
description: Alt text for main product image
example: White PLATSA storage system with multiple open shelves and a section with hanging rail and baskets.
businessStructure:
type: object
description: Product business categorization
properties:
homeFurnishingBusinessName:
type: string
example: Bedroom furniture
homeFurnishingBusinessNo:
type: string
example: '04'
productAreaName:
type: string
example: System wardrobes
productAreaNo:
type: string
example: '0421'
productRangeAreaName:
type: string
example: Wardrobes
productRangeAreaNo:
type: string
example: '042'
categoryPath:
type: array
description: Category hierarchy
items:
type: object
properties:
name:
type: string
example: Storage furniture
key:
type: string
example: st001
validDesignText:
type: string
description: Product design variant description
example: white STRAUMEN mirror glass/SANNIDAL white
heroBackoffData:
type: object
additionalProperties: true
optimizelyAttributes:
type: object
properties:
PRODUCT_TYPE:
type: string
example: standard
ProductListPage:
description: Page with Product List
allOf:
- $ref: '#/components/schemas/CommonProperties'
- type: object
required:
- productListPage
properties:
productListPage:
$ref: '#/components/schemas/ProductListPageEnvelope'
CommonProperties:
type: object
description: Common properties returned in search responses
required:
- usergroup
- testActivationTriggers
properties:
usergroup:
type: string
example: '[]'
testActivationTriggers:
type: object
example: {}
itemType:
type: string
description: 'Item type code
'
enum:
- ART
- SPR
example: SPR
MoreProductsEnvelope:
type: object
description: More Products Page envelope containing a window of paginated products that matches the filtered criteria.
required:
- productWindow
properties:
productWindow:
description: Window of paginated products
type: array
items:
$ref: '#/components/schemas/Product'
Category:
type: object
description: Product Category
required:
- name
- key
properties:
name:
type: string
description: Category name
example: Sofa
key:
$ref: '#/components/schemas/categoryId'
url:
type: string
description: URL to category
example: https://www.ikea.com/gb/en/cat/sofa-fu003/
imageUrl:
type: string
description: Image for the category
example: https://www.ikea.com/global/assets/range-categorisation/images/sofas-fu003.jpeg
categoryId:
type: string
description: Category identifier (UUID, code like 'st001', or numeric ID)
example: st001
examples:
- st001
- 4a552556-db67-4fab-afb0-11433eda6784
MoreProducts:
description: Page with More Products
allOf:
- $ref: '#/components/schemas/CommonProperties'
- type: object
required:
- moreProducts
properties:
moreProducts:
$ref: '#/components/schemas/MoreProductsEnvelope'
ProductListPageEnvelope:
type: object
description: Product List Page envelope containing a limited set of Products for a given category.
required:
- category
- productWindow
- productCount
- plannerWindow
- plannerCount
- filters2
- dynamicFiltersV1
- dynamicFilters
- sortOrders
properties:
category:
$ref: '#/components/schemas/Category'
productWindow:
description: Window of filtered products
type: array
items:
$ref: '#/components/schemas/Product'
productCount:
description: Amount of products in this category
type: integer
example: 1
plannerWindow:
description: Window of filtered windows
type: array
items:
type: object
plannerCount:
description: Amount of planner entries
type: integer
example: 1
filters2:
type: array
items:
type: object
dynamicFiltersV1:
type: array
items:
type: object
dynamicFilters:
type: array
items:
type: object
sortOrders:
description: What sorting is enabled
type: object
required:
- name
- values
properties:
name:
type: string
example: Sort
values:
type: array
items:
type: object
required:
- id
- name
- eventAction
- selected
properties:
id:
type: string
example: RELEVANCE
description: Filter identifier
name:
type: string
example: Best match
description: Name of the filter
eventAction:
type: string
example: sort_by_relevance
selected:
description: Whether or not this sorting option is selected
type: boolean
example: true
parameters:
productId:
name: productId
in: path
required: true
description: "Product identifier\nValue can be:\n * zero (`0`),\n * product identifier (`00263850`) or\n * product identifier with `s` prefix (`s59047406`)\n"
schema:
type: string
pattern: ^(0|s[0-9]{8}|[0-9]{8})$
maxLength: 9
examples:
empty:
summary: Empty value (0)
value: '0'
billy:
summary: BILLY Bookcase (00263850)
value: 00263850
besta:
summary: BESTÅ Shelf unit with doors (s59047406)
value: s59047406
productIdSuffix:
in: path
name: productIdSuffix
required: true
description: "Product ID Suffix (last 3 digits of Product ID)\nValue can be:\n * zero (`0`) or\n * Product ID Suffix (`406`)\n"
schema:
type: string
pattern: ^(0|[0-9]{3})$
maxLength: 3
examples:
empty:
summary: Empty value (0)
value: '0'
billy:
summary: BILLY Bookcase (00263850)
value: '850'
besta:
summary: BESTÅ Shelf unit with doors (s59047406)
value: '406'
end:
name: end
in: query
required: false
description: 'The zero-based index of the last item to include **exclusive**. For example, `start=0&end=2` returns items at index 0 and 1. (2 items) If `end` is provided but not `end`, then default for `start=24`.
'
schema:
type: integer
minimum: 0
example: 0
category:
name: category
in: query
description: Category to search for
required: true
schema:
$ref: '#/components/schemas/categoryId'
example: st001
start:
name: start
in: query
required: false
description: 'The zero-based index of the first item to include in the response. For example, `start=0` begins from the very first item. If `start` is provided but not `end`, then default for `end=24`.
'
schema:
type: integer
minimum: 0
example: 0
size:
name: size
in: query
required: false
description: Amount of products to return
schema:
type: integer
minimum: 0
maximum: 1000
example: 42
x-refined-from:
- ikea-product-catalog-openapi.yml
- ikea-search-openapi.yml