{
  "openapi": "3.0.1",
  "info": {
    "title": "IKEA Stock Checker: Store Inventory, Restock Dates & Alerts",
    "description": "Check IKEA stock in every store of a country: exact units, planned restock dates and units, aisle and bin, price. Search by keyword, item number or link. Scheduled runs return back-in-stock alerts. US, UK, Canada, Australia, Germany and 46 more countries.",
    "version": "0.1",
    "x-build-id": "VCstQB5we8lu3wydE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s_actors~ikea-stock-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s_actors-ikea-stock-checker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/s_actors~ikea-stock-checker/runs": {
      "post": {
        "operationId": "runs-sync-s_actors-ikea-stock-checker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/s_actors~ikea-stock-checker/run-sync": {
      "post": {
        "operationId": "run-sync-s_actors-ikea-stock-checker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "📋 What to do",
            "enum": [
              "search",
              "products",
              "stores"
            ],
            "type": "string",
            "description": "Search: keywords as on ikea.com, every product found with its stock in your stores. Check products: exact items by item number or link (best for a back-in-stock watchlist). List stores: IKEA stores of the country with their numbers.",
            "default": "search"
          },
          "country": {
            "title": "🌍 Country",
            "enum": [
              "au",
              "ca",
              "de",
              "gb",
              "us",
              "at",
              "bh",
              "be",
              "cl",
              "cn",
              "co",
              "hr",
              "cz",
              "dk",
              "eg",
              "ee",
              "fi",
              "fr",
              "hu",
              "in",
              "ie",
              "il",
              "it",
              "jp",
              "jo",
              "kw",
              "lv",
              "lt",
              "my",
              "mx",
              "ma",
              "nl",
              "nz",
              "no",
              "om",
              "ph",
              "pl",
              "pt",
              "qa",
              "ro",
              "sa",
              "rs",
              "sg",
              "sk",
              "si",
              "kr",
              "es",
              "se",
              "ch",
              "th",
              "ae"
            ],
            "type": "string",
            "description": "IKEA country site: its stores, prices and currency. 51 countries.",
            "default": "us"
          },
          "keywords": {
            "title": "🔎 Keywords",
            "type": "array",
            "description": "Search mode: what to search on IKEA, one per line (e.g. \"kallax\", \"billy bookcase\", \"malm dresser\"). Use the language of the country site for best results.",
            "items": {
              "type": "string"
            }
          },
          "products": {
            "title": "🏷️ Item numbers or links",
            "type": "array",
            "description": "Check products mode: IKEA item numbers (8 digits, shown on every product page as 206.316.63; dots optional) or ikea.com product links, one per line.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "🏬 Stores",
            "type": "array",
            "description": "Which stores to check: store names, cities, US states (e.g. \"CA\") or store numbers, one per line. Empty = every IKEA store of the country (one row per product and store). A name that matches no store stops the run with the list of stores.",
            "items": {
              "type": "string"
            }
          },
          "maxProductsPerSearch": {
            "title": "🔢 Max products per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Search mode: how many products to take from each keyword, in IKEA's order.",
            "default": 50
          },
          "onePerProduct": {
            "title": "📦 One row per product",
            "type": "boolean",
            "description": "Instead of a row per product and store: one row per product with total units, the number of stores that have it, the stores with their units, and the nearest planned restock.",
            "default": false
          },
          "onlyInStock": {
            "title": "✅ Only in stock",
            "type": "boolean",
            "description": "Return only rows where the store has the product.",
            "default": false
          },
          "minQuantity": {
            "title": "🔢 Minimum units",
            "minimum": 0,
            "type": "integer",
            "description": "Return only rows with at least this many units (e.g. 4 when you need four chairs). With \"One row per product\": units in all chosen stores together."
          },
          "maxPrice": {
            "title": "💲 Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Return only products at or below this price, in the country's currency. Empty = any price."
          },
          "onlyChanges": {
            "title": "🔔 Only report changes",
            "type": "boolean",
            "description": "For scheduled runs. The first run saves stock and prices; later runs return only what changed: back in stock at a store, sold out, low stock, a new restock date, price drops and increases, new products. Each row also carries the restocks this monitor has seen and the usual restock weekday. You pay only for the changes returned.",
            "default": false
          },
          "monitorName": {
            "title": "🏷️ Monitor name",
            "type": "string",
            "description": "Separate monitors keep separate memory. Use a different name for each scheduled task.",
            "default": "default"
          },
          "maxConcurrency": {
            "title": "⚡ Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many requests run at the same time.",
            "default": 4
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}