IKEA · Schema

AvailabilityEnvelope

Availability envelope containing availabilities, sales Sales Locations and errors.

RetailHome FurnishingsConsumer ProductsOpensourceCommunityUnofficial APISmart Home

Properties

Name Type Description
availabilities array List of product availabilities
salesLocations array
errors array List of errors
timestamp string ISO 8601 formatted timestamp with timezone
traceId string Unique trace identifier for debugging and log correlation
View JSON Schema on GitHub

JSON Schema

ikea-sales-item-availability-envelope-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ikea/refs/heads/main/json-schema/ikea-sales-item-availability-envelope-schema.json",
  "title": "AvailabilityEnvelope",
  "description": "Availability envelope containing availabilities, sales Sales Locations and errors.",
  "type": "object",
  "properties": {
    "availabilities": {
      "type": "array",
      "description": "List of product availabilities",
      "items": {
        "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": {
              "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": {
                  "type": "object",
                  "description": "Class Unit Key gives context when invoking the AvailabilityClassifications API.\n",
                  "properties": {
                    "classUnitCode": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 5,
                      "description": "`classUnitCode` is the unique identifier of a Class Unit when\ncombined with a `classUnitType`.\n\nA valid `classUnitCode` always has a pattern like `^([A-Z]|[0-9]){2,5}$`.\n\nThis can either be a:\n\n* **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).\n* **Store ID** - The 3-digit store ID. E.g. `066`.\n",
                      "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"
                    }
                  }
                },
                "itemKey": {
                  "type": "object",
                  "description": "Item key (Product ID and Item type)",
                  "properties": {
                    "itemNo": {
                      "$ref": "#/components/schemas/productId"
                    },
                    "itemType": {
                      "$ref": "#/components/schemas/itemType"
                    }
                  }
                }
              }
            },
            "example": []
          },
          "classUnitKey": {
            "type": "object",
            "description": "Class Unit Key gives context when invoking the AvailabilityClassifications API.\n",
            "properties": {
              "classUnitCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 5,
                "description": "`classUnitCode` is the unique identifier of a Class Unit when\ncombined with a `classUnitType`.\n\nA valid `classUnitCode` always has a pattern like `^([A-Z]|[0-9]){2,5}$`.\n\nThis can either be a:\n\n* **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).\n* **Store ID** - The 3-digit store ID. E.g. `066`.\n",
                "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"
              }
            }
          },
          "itemKey": {
            "type": "object",
            "description": "Item key (Product ID and Item type)",
            "properties": {
              "itemNo": {
                "type": "string",
                "description": "Product identifier",
                "example": "00263850"
              },
              "itemType": {
                "type": "string",
                "description": "Item type code\n",
                "enum": [
                  "ART",
                  "SPR"
                ],
                "example": "SPR"
              }
            }
          }
        }
      }
    },
    "salesLocations": {
      "type": "array",
      "items": {
        "type": "object",
        "description": null,
        "properties": {
          "childItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "itemKey": {
                  "type": "object",
                  "description": "Item key (Product ID and Item type)",
                  "properties": {
                    "itemNo": {
                      "$ref": "#/components/schemas/productId"
                    },
                    "itemType": {
                      "$ref": "#/components/schemas/itemType"
                    }
                  }
                },
                "salesLocations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "example": {
                      "aisleAndBin": {
                        "aisle": "06",
                        "bin": "01"
                      },
                      "division": "SELF_SERVE",
                      "id": "060100",
                      "recommendationRank": 1,
                      "type": "AISLE_AND_BIN"
                    }
                  }
                }
              }
            }
          },
          "classUnitKey": {
            "type": "object",
            "description": "Class Unit Key gives context when invoking the AvailabilityClassifications API.\n",
            "properties": {
              "classUnitCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 5,
                "description": "`classUnitCode` is the unique identifier of a Class Unit when\ncombined with a `classUnitType`.\n\nA valid `classUnitCode` always has a pattern like `^([A-Z]|[0-9]){2,5}$`.\n\nThis can either be a:\n\n* **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).\n* **Store ID** - The 3-digit store ID. E.g. `066`.\n",
                "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"
              }
            }
          },
          "itemKey": {
            "type": "object",
            "description": "Item key (Product ID and Item type)",
            "properties": {
              "itemNo": {
                "type": "string",
                "description": "Product identifier",
                "example": "00263850"
              },
              "itemType": {
                "type": "string",
                "description": "Item type code\n",
                "enum": [
                  "ART",
                  "SPR"
                ],
                "example": "SPR"
              }
            }
          }
        }
      }
    },
    "errors": {
      "type": "array",
      "description": "List of errors",
      "items": {
        "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"
          }
        }
      }
    },
    "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"
    }
  },
  "required": [
    "availabilities",
    "timestamp",
    "traceId"
  ]
}