{
  "openapi": "3.0.1",
  "info": {
    "title": "Price scraper - Extract prices, availability from any url/EAN",
    "description": "Cheapest advanced price scraping tool for PDP URLs (works with any site!)/EAN. Extract real-time product prices, even from those that are blocked! Automated web scraper for monitoring webshop prices across multiple URLs. Perfect for price comparison, competitor analysis & dynamic pricing strategies.",
    "version": "0.0",
    "x-build-id": "MaAp3YZvGoaNc9DGj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s-r~price-scraper---extract-prices-availability-from-any-url/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s-r-price-scraper---extract-prices-availability-from-any-url",
        "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-r~price-scraper---extract-prices-availability-from-any-url/runs": {
      "post": {
        "operationId": "runs-sync-s-r-price-scraper---extract-prices-availability-from-any-url",
        "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-r~price-scraper---extract-prices-availability-from-any-url/run-sync": {
      "post": {
        "operationId": "run-sync-s-r-price-scraper---extract-prices-availability-from-any-url",
        "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",
        "required": [
          "urls"
        ],
        "properties": {
          "batches": {
            "title": "Batches (optional: several countries in one run)",
            "type": "array",
            "description": "Only needed when different products need different countries, for example the same EAN priced in NL, DE and FR. Each batch carries its own list and its own country: {\"urls\": [\"8720938897238\"], \"country\": \"de\"}.\n\nAs above, a batch's country applies to its EAN/GTIN codes, not to its URLs. The field above stays required even when you use this one.",
            "items": {
              "type": "object",
              "properties": {
                "urls": {
                  "title": "URLs or EANs",
                  "type": "array",
                  "description": "URLs or EAN codes for this batch",
                  "editor": "stringList",
                  "items": {
                    "type": "string",
                    "minLength": 8
                  }
                },
                "country": {
                  "title": "Country Code",
                  "type": "string",
                  "description": "Country code for EAN lookups in this batch",
                  "editor": "select",
                  "enum": [
                    "nl",
                    "be",
                    "de",
                    "fr",
                    "gb",
                    "us",
                    "es",
                    "it",
                    "pl",
                    "se",
                    "dk",
                    "no",
                    "fi",
                    "at",
                    "ch"
                  ],
                  "enumTitles": [
                    "Netherlands",
                    "Belgium",
                    "Germany",
                    "France",
                    "United Kingdom",
                    "United States",
                    "Spain",
                    "Italy",
                    "Poland",
                    "Sweden",
                    "Denmark",
                    "Norway",
                    "Finland",
                    "Austria",
                    "Switzerland"
                  ],
                  "default": "nl"
                }
              },
              "required": [
                "urls"
              ]
            }
          },
          "urls": {
            "title": "URLs and/or EAN/GTIN codes (required)",
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "description": "One per line. Mix product page URLs and EAN/GTIN codes freely; each line is detected automatically.\n\n• A URL is scraped exactly as given. The link already decides the shop and the country, so the Country setting below does not apply to it.\n• An EAN/GTIN is looked up across merchants in the country you pick below.\n\nThis field is required and must not be empty, even when you also use Batches. Maximum 100 items per run.",
            "items": {
              "type": "string",
              "minLength": 8
            }
          },
          "defaultCountry": {
            "title": "Country (applies to EAN/GTIN codes only)",
            "enum": [
              "nl",
              "be",
              "de",
              "fr",
              "gb",
              "us",
              "es",
              "it",
              "pl",
              "se",
              "dk",
              "no",
              "fi",
              "at",
              "ch"
            ],
            "type": "string",
            "description": "Which country's merchants to search when you supply an EAN/GTIN code.\n\nThis has no effect on URLs: a product URL already points at one shop in one country, so it is always scraped as given. If you only supply URLs, you can ignore this setting.\n\nIgnored entirely in Batches mode, where each batch carries its own country.",
            "default": "nl"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}