{
  "openapi": "3.0.1",
  "info": {
    "title": "IKEA Reviews Scraper",
    "description": "Scrape IKEA product reviews: author, rating, date, title, and text. Provide product URLs, a category or listing URL, or a search keyword. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
    "version": "0.0",
    "x-build-id": "SZRQY4L0CrfIqMLr9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/e-commerce~ikea-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-e-commerce-ikea-reviews-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/e-commerce~ikea-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-e-commerce-ikea-reviews-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/e-commerce~ikea-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-e-commerce-ikea-reviews-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": {
          "detailsUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Direct URLs to IKEA product pages whose reviews you want. The IKEA Reviews Scraper fetches every review for each product: author, rating, date, and text. Example: https://www.ikea.com/us/en/p/billy-bookcase-white-00263850/. Accepts IKEA product (/p/) URLs, with or without https://; put category or search URLs in the fields below instead. Use this when you already know exactly which products' reviews you want.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingUrls": {
            "title": "Category / listing URLs",
            "type": "array",
            "description": "URLs to IKEA category or listing pages. The scraper collects the product URLs on each listing (following pagination), then scrapes the reviews of every product found. Example: https://www.ikea.com/us/en/cat/bookcases-10382/. Accepts IKEA category (/cat/) or search-result URLs. Use this to collect reviews across a whole category; pair it with 'Total maximum reviews' to cap the run.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keyword": {
            "title": "Search keyword",
            "type": "string",
            "description": "A search term used to find IKEA products whose reviews will be scraped. The scraper runs the search on the selected IKEA country site, collects the matching product URLs, then scrapes each product's reviews. Example: billy bookcase. Enter a single search phrase, and pair it with the 'IKEA country site' option below."
          },
          "country": {
            "title": "IKEA country site (for keyword search)",
            "enum": [
              "www.ikea.com/us/en",
              "www.ikea.com/gb/en",
              "www.ikea.com/ca/en",
              "www.ikea.com/au/en",
              "www.ikea.com/ie/en",
              "www.ikea.com/de/de",
              "www.ikea.com/fr/fr",
              "www.ikea.com/es/es",
              "www.ikea.com/it/it",
              "www.ikea.com/nl/nl",
              "www.ikea.com/be/en",
              "www.ikea.com/ch/en",
              "www.ikea.com/at/de",
              "www.ikea.com/se/en",
              "www.ikea.com/no/no",
              "www.ikea.com/dk/da",
              "www.ikea.com/fi/en",
              "www.ikea.com/pt/pt",
              "www.ikea.com/pl/pl",
              "www.ikea.com/cz/cs",
              "www.ikea.com/jp/en",
              "www.ikea.com/kr/en",
              "www.ikea.com/in/en",
              "www.ikea.com/mx/es"
            ],
            "type": "string",
            "description": "The IKEA country and language site used for keyword search. The scraper sends your keyword to this IKEA store to find products, then scrapes their reviews. Example: IKEA (United States – English). This only affects keyword search — product and category URLs already contain their own country. Default is the United States (English).",
            "default": "www.ikea.com/us/en"
          },
          "additionalProperties": {
            "title": "Include additional properties",
            "type": "boolean",
            "description": "Whether to include extra, source-specific review attributes in the output. When enabled, the scraper asks IKEA for additional review details and adds them under 'additionalProperties'. Example: enable this to capture verified-purchase flags or secondary ratings when available. This adds more data per review at a small extra time cost. Recommended: on for richer analysis, off for the fastest rating-and-text-only runs.",
            "default": false
          },
          "maxReviewResults": {
            "title": "Total maximum reviews",
            "minimum": 1,
            "type": "integer",
            "description": "The maximum total number of reviews to scrape in one run, across all products. The scraper stops once this many reviews have been saved, so popular products never run away. Example: 200. Accepts any positive whole number. Lower values cost less and finish faster; leave empty to scrape every review found. Recommended: start with 100–200 to preview results before a full run."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}