{
  "openapi": "3.0.1",
  "info": {
    "title": "IKEA Scraper [$0.70/1K💰] | Prices | Reviews | 50+ Markets",
    "description": "Extract IKEA product prices, discounts, stock status and customer reviews across 50+ country markets. One API call returns up to 1,000 structured products with no browser and no proxy. Built for price monitoring, catalog builds and market research.",
    "version": "0.2",
    "x-build-id": "SHNaXOQaWghH7N5LG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~ikea-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-ikea-scraper",
        "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/ahmed_jasarevic~ikea-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-ikea-scraper",
        "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/ahmed_jasarevic~ikea-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-ikea-scraper",
        "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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Product keywords to search for, e.g. [\"desk\", \"chair\", \"poaeng\"]. Each query returns up to `resultsPerQuery` products in a single API call. Category keys (e.g. 25219 for Dining chairs) also work as queries.",
            "default": [
              "chair"
            ],
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country market",
            "type": "string",
            "description": "IKEA country market code, e.g. us, gb, de, fr, se, ch, ca, au, nl, pl, es, it, at, no, dk, fi, cz, pt, ie, jp, mx, br, in, zh, sg, my, tr.",
            "default": "us"
          },
          "language": {
            "title": "Language code",
            "type": "string",
            "description": "IKEA language segment for the chosen country, e.g. en, de, fr, sv, nl, es.",
            "default": "en"
          },
          "resultsPerQuery": {
            "title": "Results per query",
            "type": "integer",
            "description": "How many products to pull per query. The API caps this at 1000, so one call can return an entire result set.",
            "default": 200
          },
          "useSeedQueries": {
            "title": "Broad catalog crawl",
            "type": "boolean",
            "description": "When true, the actor also runs a built-in seed query list (a-z letter pairs + common furniture terms) to enumerate a much broader slice of the country catalog. Adds one API call per seed query.",
            "default": false
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "",
              "RELEVANCE",
              "PRICE_LOW_TO_HIGH",
              "PRICE_HIGH_TO_LOW",
              "NEWEST",
              "RATING",
              "NAME_ASCENDING",
              "MOST_POPULAR",
              "WIDTH",
              "HEIGHT",
              "DEPTH",
              "LENGTH"
            ],
            "type": "string",
            "description": "Optional sort order passed to the IKEA search API. Leave empty for the API default (relevance).",
            "default": ""
          },
          "includeVariants": {
            "title": "Include variants",
            "type": "boolean",
            "description": "Include the variant (sibling colour/finish) sub-objects of each product series.",
            "default": true
          },
          "scrapeReviews": {
            "title": "Scrape customer reviews",
            "type": "boolean",
            "description": "When true, also collect customer reviews for every product that was scraped and write them to a second dataset called `reviews`. Requires 1-2 extra API calls per product. Reviews are billed per event; the per-product rating summary is free.",
            "default": true
          },
          "reviewsPerProduct": {
            "title": "Reviews per product",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum reviews to collect per product. The reviews API returns up to 500 per call, so values above 500 use extra page requests. Only used when `scrapeReviews` is true.",
            "default": 50
          },
          "reviewsSortBy": {
            "title": "Review order",
            "enum": [
              "rating-desc",
              "rating-asc",
              "newest",
              "oldest",
              "helpful"
            ],
            "type": "string",
            "description": "Order in which reviews are collected. Useful controls the newest reviews come first, or the most/least helpful.",
            "default": "newest"
          },
          "includeRatingSummary": {
            "title": "Include rating summary",
            "type": "boolean",
            "description": "Also fetch each product's rating aggregate: star distribution, per-topic sub-ratings (quality, ease of assembly, value for money, ...), recommendation counts and first/last review dates. Written to the `reviews` dataset as a `rating-summary` row and never billed. Only used when `scrapeReviews` is true.",
            "default": true
          },
          "maxItems": {
            "title": "Maximum products",
            "type": "integer",
            "description": "Hard cap on the number of products written to the dataset. 0 = no cap beyond the request cap.",
            "default": 0
          },
          "maxRequestsPerCrawl": {
            "title": "Maximum API requests",
            "type": "integer",
            "description": "Hard cap on how many IKEA API calls this run may make in total, across both the product search and the review phase.",
            "default": 1000
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}