{
  "openapi": "3.0.1",
  "info": {
    "title": "IKEA Product Scraper",
    "description": "Scrape IKEA product data: name, price, currency, brand, image, and description. 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": "PkkjRtiYKwlXSiWEv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/e-commerce~ikea-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-e-commerce-ikea-product-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-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-e-commerce-ikea-product-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-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-e-commerce-ikea-product-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 detail URLs",
            "type": "array",
            "description": "Direct URLs to individual IKEA product pages. The IKEA Product Scraper fetches each URL and returns that product's full data — name, price, brand, images, and description. 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 you want — it is the fastest and most reliable input.",
            "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 that contain many products. The scraper opens each listing, collects the product URLs it finds (following pagination), then scrapes each product's details. Example: https://www.ikea.com/us/en/cat/bookcases-10382/. Accepts IKEA category (/cat/) or search-result URLs. Use this to scrape a whole category without listing every product URL yourself; pair it with 'Total maximum products' 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. The scraper runs the search on the IKEA site for the selected country, collects the matching product URLs, then scrapes each product's details. Example: billy bookcase. Enter a single search phrase. Pair it with the 'IKEA country site' option below so the search runs on the right store, and use 'Total maximum products' to limit how many results are scraped."
          },
          "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 and localizes currency, pricing, and availability accordingly. 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); pick the market that matches your keyword and target audience.",
            "default": "www.ikea.com/us/en"
          },
          "additionalProperties": {
            "title": "Include additional properties",
            "type": "boolean",
            "description": "Whether to include extra, source-specific product attributes in the output. When enabled, the scraper asks IKEA for additional details (such as dimensions, materials, and packaging) and adds them under 'additionalProperties'. Example: enable this to capture material and care information for furniture. This adds more data per product at a small extra time cost. Recommended: on for catalog enrichment, off for the fastest price-and-name-only runs.",
            "default": false
          },
          "maxProductResults": {
            "title": "Total maximum products",
            "minimum": 1,
            "type": "integer",
            "description": "The maximum total number of products to scrape in one run, across all URLs and keywords combined. The scraper stops once this many products have been saved, so category and keyword inputs never run away. Example: 100. Accepts any positive whole number. Lower values cost less and finish faster; leave empty to scrape everything found. Recommended: start with 50–100 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}