{
  "openapi": "3.0.1",
  "info": {
    "title": "Prisjakt & PriceSpy Scraper",
    "description": "Scrape Prisjakt, PriceSpy, Prisjagt, Hintaopas and LeDenicheur in 7 countries: lowest price, every store offer with shipping, specs, EAN, rating, price drop, 2 year price history. Search, categories, EAN lookup, 9 filters, price change monitoring.",
    "version": "1.0",
    "x-build-id": "iLhFX8RDnI22sTuRC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~prisjakt-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-prisjakt-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/normdata~prisjakt-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-prisjakt-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/normdata~prisjakt-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-prisjakt-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": {
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many products in total (over every market, search and category). Leave empty for no limit. The Apify Free plan is always capped at 10."
          },
          "markets": {
            "title": "Markets",
            "type": "array",
            "description": "The Prisjakt sites to read. Prices are in each market's own currency. Empty = Sweden.",
            "items": {
              "type": "string",
              "enum": [
                "SE",
                "NO",
                "DK",
                "FI",
                "UK",
                "NZ",
                "FR"
              ],
              "enumTitles": [
                "Sweden: Prisjakt (prisjakt.nu, SEK)",
                "Norway: Prisjakt (prisjakt.no, NOK)",
                "Denmark: Prisjagt (prisjagt.dk, DKK)",
                "Finland: Hintaopas (hintaopas.fi, EUR)",
                "United Kingdom: PriceSpy (pricespy.co.uk, GBP)",
                "New Zealand: PriceSpy (pricespy.co.nz, NZD)",
                "France: LeDenicheur (ledenicheur.fr, EUR)"
              ]
            }
          },
          "searchTerms": {
            "title": "Search",
            "type": "array",
            "description": "Search words, like \"iphone 17\", \"airpods pro\" or \"robot vacuum\". The site finds up to 1,000 products per search (shop offers not matched to a product are left out).",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Category names, like \"Mobile Phones\", \"TVs\", \"Headphones\" or \"Laptops\", in English or in the market's language (\"Mobiltelefoner\"). Up to 10,000 products per category; use the sort and price filters to reach more.",
            "items": {
              "type": "string"
            }
          },
          "eans": {
            "title": "Barcodes (EAN, UPC)",
            "type": "array",
            "description": "Product barcodes (EAN, UPC, GTIN, 8 to 14 digits). Each finds its product in every market picked, for price checks on your own catalogue.",
            "items": {
              "type": "string"
            }
          },
          "includeOffers": {
            "title": "Every store offer",
            "type": "boolean",
            "description": "Add the list of all store offers per product: store, rating, price, price with shipping, shipping cost, member price, stock, condition (new, refurbished, used), delivery days and link. Free."
          },
          "includePriceHistory": {
            "title": "Price history (2 years)",
            "type": "boolean",
            "description": "Add the lowest price of the last 30 days, 90 days, 1 year and 2 years (with store and date), whether today is the lowest price, and every price change of the last 2 years. One extra request per product, charged as an add-on only for rows saved with it."
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only these brands, like \"Apple\", \"Samsung\" or \"Sony\".",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price at least this much (in the market's currency)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price at most this much (in the market's currency)."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only products rated at least this much (1 to 5)."
          },
          "minReviews": {
            "title": "Minimum reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Only products with at least this many reviews."
          },
          "minPriceDrop": {
            "title": "Minimum price drop (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only products whose price dropped at least this much lately (the site's price drop mark)."
          },
          "minStores": {
            "title": "Minimum stores",
            "minimum": 0,
            "type": "integer",
            "description": "Only products sold by at least this many stores."
          },
          "onlyInStock": {
            "title": "Only in stock",
            "type": "boolean",
            "description": "Only products that a store has in stock now."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "default",
              "popularity",
              "price",
              "price_desc",
              "rating",
              "name"
            ],
            "type": "string",
            "description": "Order of the results. A search is sorted over every product it finds; for searches, most popular first is the order the site shows."
          },
          "onlyNew": {
            "title": "Only new products",
            "type": "boolean",
            "description": "Skip products saved by earlier runs with the same monitor name."
          },
          "onlyPriceChanges": {
            "title": "Only price changes",
            "type": "boolean",
            "description": "Save only products whose lowest price changed since the last run with the same monitor name (plus products not seen before), with the previous price and the change. The first run saves everything."
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Runs with the same name share their history. Use a different name for each schedule."
          },
          "startUrls": {
            "title": "Links",
            "type": "array",
            "description": "Category pages (https://pricespy.co.uk/c/mobile-phones, with any filters set on the site), search pages (https://www.prisjakt.nu/search?query=airpods) or product pages (https://pricespy.co.uk/product.php?p=14969878), from any of the 7 sites.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}