IKEA Availability API

Everything about Availability

Operations 1

GET /availabilities/{classUnitType}/{classUnitCode} IKEA Get Product Availability with Child Items #

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-availability-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-availability-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IKEA Sales Item Availability API
  summary: Unofficial API for fetching IKEA product availability information and packaging information
  description: This is an **unofficial** OpenAPI specification for the IKEA Sales Item API.
  version: 0.1.0
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
  contact:
    name: Unofficial IKEA OpenAPI Maintainer
    url: https://github.com/idelsink/ikea-openapi
servers:
- url: https://api.salesitem.ingka.com
  description: IKEA Sales Item Availability API (Production Global)
security: []
tags:
- name: Availability
  description: Everything about Availability
paths:
  /availabilities/{classUnitType}/{classUnitCode}:
    get:
      summary: IKEA Get Product Availability with Child Items
      description: Returns availability information including child items and packages
      operationId: getProductAvailability
      tags:
      - Availability
      security:
      - X-Client-ID: []
      parameters:
      - $ref: '#/components/parameters/classUnitType'
      - $ref: '#/components/parameters/classUnitCode'
      - $ref: '#/components/parameters/itemNos'
      - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: Response with availability and errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailabilityEnvelope'
              examples:
                GetProductAvailability200Example:
                  summary: Default getProductAvailability 200 response
                  value:
                    availabilities:
                    - availableForCashCarry: true
                      availableForClickCollect: false
                      buyingOption:
                        clickCollect:
                          range:
                            inRange: true
                      childAvailabilities: []
                      classUnitKey:
                        classUnitCode: example
                        classUnitType: example
                      itemKey:
                        itemNo: example
                        itemType: example
                    salesLocations:
                    - childItems:
                      - itemKey: example
                        salesLocations: example
                      classUnitKey:
                        classUnitCode: example
                        classUnitType: example
                      itemKey:
                        itemNo: example
                        itemType: example
                    errors:
                    - code: 404
                      details:
                        classUnitCode: DE
                        classUnitType: RU
                        itemNo: s59047406
                      message: Not found
                    timestamp: '2025-09-10T14:23:33.956Z'
                    traceId: '4119683959736817039'
                  x-microcks-default: true
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailabilityError'
              examples:
                GetProductAvailability422Example:
                  summary: Default getProductAvailability 422 response
                  value:
                    code: 404
                    details:
                      classUnitCode: DE
                      classUnitType: RU
                      itemNo: s59047406
                    message: Not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    AvailabilityEnvelope:
      type: object
      description: Availability envelope containing availabilities, sales Sales Locations and errors.
      required:
      - availabilities
      - timestamp
      - traceId
      properties:
        availabilities:
          type: array
          description: List of product availabilities
          items:
            $ref: '#/components/schemas/Availability'
        salesLocations:
          type: array
          items:
            $ref: '#/components/schemas/SalesLocation'
        errors:
          type: array
          description: List of errors
          items:
            $ref: '#/components/schemas/AvailabilityError'
        timestamp:
          type: string
          description: ISO 8601 formatted timestamp with timezone
          format: date-time
          example: '2025-09-10T14:23:33.956Z'
        traceId:
          type: string
          description: Unique trace identifier for debugging and log correlation
          example: '4119683959736817039'
    ClassUnitKey:
      type: object
      description: 'Class Unit Key gives context when invoking the AvailabilityClassifications API.

        '
      properties:
        classUnitCode:
          type: string
          minLength: 2
          maxLength: 5
          description: '`classUnitCode` is the unique identifier of a Class Unit when

            combined with a `classUnitType`.


            A valid `classUnitCode` always has a pattern like `^([A-Z]|[0-9]){2,5}$`.


            This can either be a:


            * **Retail Unit** - Retail Unit must be combined with a valid `classUnitCode`. For example, `SE` for Sweden or `DE` for Germany. A list of valid Class Units can be found [in CBD](https://iwww.cbdview.ikea.com/) (requires VPN or internal network).

            * **Store ID** - The 3-digit store ID. E.g. `066`.

            '
          examples:
          - GB
          - DE
          - '066'
        classUnitType:
          type: string
          description: "Class Unit Type:\n  * `RU` - Retail Unit - Retail Unit must be combined with a valid `classUnitCode`. For example, `SE` for Sweden or `DE` for Germany. A list of valid Retail Units can be found [in CBD](https://iwww.cbdview.ikea.com/) (requires VPN or internal network).\n  * `STO` - Store - The store availability for a given store\n"
          enum:
          - RU
          - STO
          example: RU
    expandOption:
      type: string
      description: "On the returned data, expand:\n  * `ChildItems` - Child items, e.g. multiple packages that are part of the parent package\n  * `Restocks` - Restock items\n  * `StoresList` - List of stores\n  * `SalesLocations` - Sale locations\n  * `DeliveryPrice` - Deliver Price\n  * `CollectPrice` - Collect Price\n  * `DisplayLocations` - Display locations\n  * `DeliveryTime` - Delivery time\n  * `FoodAvailabilities` - Food availability\n"
      enum:
      - ChildItems
      - Restocks
      - StoresList
      - SalesLocations
      - DeliveryPrice
      - CollectPrice
      - DisplayLocations
      - DeliveryTime
      - FoodAvailabilities
      example: ChildItems
    SalesLocation:
      type: object
      description: null
      properties:
        childItems:
          type: array
          items:
            type: object
            properties:
              itemKey:
                $ref: '#/components/schemas/ItemKey'
              salesLocations:
                type: array
                items:
                  type: object
                  example:
                    aisleAndBin:
                      aisle: '06'
                      bin: '01'
                    division: SELF_SERVE
                    id: '060100'
                    recommendationRank: 1
                    type: AISLE_AND_BIN
        classUnitKey:
          $ref: '#/components/schemas/ClassUnitKey'
        itemKey:
          $ref: '#/components/schemas/ItemKey'
    productId:
      type: string
      description: Product identifier
      example: 00263850
    ItemKey:
      type: object
      description: Item key (Product ID and Item type)
      properties:
        itemNo:
          $ref: '#/components/schemas/productId'
        itemType:
          $ref: '#/components/schemas/itemType'
    itemType:
      type: string
      description: 'Item type code

        '
      enum:
      - ART
      - SPR
      example: SPR
    AvailabilityError:
      type: object
      required:
      - code
      - message
      description: Error object describing the reason of failure
      properties:
        code:
          type: integer
          description: "Error Codes:\n  * `404` - Not found\n  * `405` - ClassUnitCode doesn't exist\n  * `602` - itemNos in query is required\n  * `604` - itemNos.`n` in query should be at least 8 chars long. Where `n` is the positional indicator for the parameter.\n  * `606` - expand.`n` in query should be one of [ChildItems Restocks StoresList SalesLocations DeliveryPrice CollectPrice DisplayLocations DeliveryTime FoodAvailabilities]. Where `n` is the positional indicator for the parameter.\n"
          example: 404
        details:
          type: object
          description: Additional error details. These change depending on the context of the query.
          example:
            classUnitCode: DE
            classUnitType: RU
            itemNo: s59047406
        message:
          type: string
          description: Error message indicating the failure
          example: Not found
    Availability:
      type: object
      description: Availability of a Product
      properties:
        availableForCashCarry:
          type: boolean
          example: true
        availableForClickCollect:
          type: boolean
          example: false
        buyingOption:
          type: object
          example:
            clickCollect:
              range:
                inRange: true
        childAvailabilities:
          type: array
          items:
            $ref: '#/components/schemas/Availability'
          example: []
        classUnitKey:
          $ref: '#/components/schemas/ClassUnitKey'
        itemKey:
          $ref: '#/components/schemas/ItemKey'
  parameters:
    classUnitCode:
      name: classUnitCode
      in: path
      required: true
      description: '`classUnitCode` is the unique identifier of a Class Unit when

        combined with a `classUnitType`.


        A valid `classUnitCode` always has a pattern like `^([A-Z]|[0-9]){2,5}$`. Note that the Selling Range APIs are case insensitive when it comes to the `classUnitCode` path parameter and lower case is always internally converted to upper case.


        This can either be a:


        * **Retail Unit** - Retail Unit must be combined with a valid `classUnitCode`. For example, `SE` for Sweden or `DE` for Germany. A list of valid Class Units can be found [in CBD](https://iwww.cbdview.ikea.com/) (requires VPN or internal network).

        * **Store ID** - The 3-digit store ID. E.g. `066`.

        '
      schema:
        type: string
        minLength: 2
        maxLength: 5
      examples:
        lowerCaseGb:
          summary: Lower Case GB
          value: gb
        upperCaseGb:
          summary: Upper Case GB
          value: GB
        lowerCaseDe:
          summary: Lower Case DE
          value: de
        upperCaseDe:
          summary: Upper Case DE
          value: DE
        storeBerlin:
          summary: Store ID for Berlin
          value: '066'
    classUnitType:
      name: classUnitType
      in: path
      required: true
      description: "`classUnitType` must be a Retail Unit (`ru`). Or Store (`sto`). It is used together with\n`classUnitCode` to give context when invoking the AvailabilityClassifications API.\n\nUnit Type:\n  * `ru` - Retail Unit - Retail Unit must be combined with a valid `classUnitCode`. For example, `SE` for Sweden or `DE` for Germany. A list of valid Retail Units can be found [in CBD](https://iwww.cbdview.ikea.com/) (requires VPN or internal network).\n  * `sto` - Store - The store availability for a given store\n"
      schema:
        type: string
        enum:
        - ru
        - sto
        example: ru
      example: ru
    itemNos:
      name: itemNos
      in: query
      required: true
      style: form
      explode: false
      description: Product identifier(s)
      example:
      - 00263850
      schema:
        type: array
        items:
          $ref: '#/components/schemas/productId'
        minItems: 1
    expand:
      name: expand
      in: query
      required: false
      style: form
      explode: false
      description: 'List of expandOption(s), see expandOption for values.

        '
      example:
      - ChildItems
      - SalesLocations
      schema:
        type: array
        items:
          $ref: '#/components/schemas/expandOption'
        minItems: 0
  securitySchemes:
    X-Client-ID:
      type: apiKey
      in: header
      name: X-Client-ID
      description: 'Client specific identifier (Akamai API Gateway) required for API access


        ## Available Client IDs


        The following public client IDs are available:


        - `ef382663-a2a5-40d4-8afe-f0634821c0ed`

        - `b6c117e5-ae61-4ef5-b4cc-e0b1e37f0631`

        - `da465052-7912-43b2-82fa-9dc39cdccef8`



        ## How to Find Client IDs


        Visit any IKEA product page (e.g., [BILLY Bookcase](https://www.ikea.com/gb/en/p/billy-bookcase-white-00263850/))

        and inspect the network requests in browser DevTools. Look for API calls to `api.salesitem.ingka.com`

        and check the `X-Client-ID` header value.


        Alternatively, search for `ciaApiClientKey` in the page''s JavaScript bundles.

        '