IKEA Products API

Everything about Products

Operations 3

GET /products/{productIdSuffix}/{productId}.json IKEA Find Product by Id #
GET /product-list-page IKEA Get a Limited Set of Filtered Products #
GET /product-list-page/more-products IKEA Get a Paginated Set of Filtered Products #

Work with this as data

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 Specification

ikea-products-api-openapi.yml Raw ↑
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