{
  "openapi": "3.0.1",
  "info": {
    "title": "Allegro Scraper [$1.4/1K] | Prices & Sellers",
    "description": "Collect Allegro.pl offers by keyword, category, seller or offer URL. Get prices, seller reputation, condition, parameters, images, delivery data, Smart! and sponsored flags, product IDs and optional stock, GTIN, warranty and full descriptions.",
    "version": "1.0",
    "x-build-id": "nAQtOWaPhtJi6341N"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~allegro-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-allegro-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~allegro-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-allegro-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~allegro-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-allegro-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": "Keywords to search on Allegro.pl, for example laptop gaming or iPhone 15.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Offer, search, category or seller storefront URLs.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItemsPerQuery": {
            "title": "Max items per query / URL",
            "minimum": 1,
            "maximum": 6000,
            "type": "integer",
            "description": "Upper bound of products to extract per search query or per listing/category/seller URL. Allegro serves ~60 products per page. Search and category views are capped by Allegro at 100 pages (~6000 products per query); seller storefronts have no such cap and are followed to their real last page.",
            "default": 8
          },
          "maxPagesPerQuery": {
            "title": "Max pages per query / URL",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Optional hard cap on the number of listing pages fetched per query/URL, independent of the item limit. Defaults to the number of pages needed to reach Max items per query (capped at 100 for search/category by Allegro)."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only return offers priced at or above this value in PLN. Maps to Allegro's `price_from` filter (applied to search and category URLs)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only return offers priced at or below this value in PLN. Maps to Allegro's `price_to` filter (applied to search and category URLs)."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "all",
              "new",
              "used"
            ],
            "type": "string",
            "description": "Filter by product condition (Allegro's \"stan\" filter).",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "price-asc",
              "price-desc",
              "newest"
            ],
            "type": "string",
            "description": "Order of the search/category results.",
            "default": "relevance"
          },
          "scrapeProductDetails": {
            "title": "Scrape full product details",
            "type": "boolean",
            "description": "Visit each offer page for the deep dataset: full description, complete parameter table, rating + review count + score distribution, stock quantity, GTIN/EAN, warranty, return policy and full-resolution images. Costs one extra request per product (slower). Leave off for fast, rich listing-level data.",
            "default": false
          },
          "barcodeQuickLookup": {
            "title": "Barcode quick lookup",
            "type": "boolean",
            "description": "When a search query is a pure EAN/GTIN barcode (8–14 digits) and \"Max items per query\" is 1, skip the extra per-offer fetch and echo the searched barcode into the record's `gtin` field. The listing data still gives price, seller, rating, images and parameters — making big barcode runs dramatically faster and cheaper. Turn OFF if you need descriptions, stock, warranty or return policy on barcode lookups. Only affects pure-EAN single-item queries; keyword and multi-item searches always fetch full details when deep mode is on.",
            "default": true
          },
          "geoCode": {
            "title": "Proxy exit country",
            "enum": [
              "pl",
              "de",
              "cz",
              "sk",
              "hu"
            ],
            "type": "string",
            "description": "Country the proxy request exits from (Allegro localises prices and availability by IP). Default \"pl\" (Poland) is correct for allegro.pl.",
            "default": "pl"
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many products or pages are processed in parallel (1-50).",
            "default": 25
          },
          "warmup": {
            "title": "Fast warm-up (recommended)",
            "type": "boolean",
            "description": "Solve Allegro's DataDome challenge once per query in a stealth browser, then reuse the session cookie through curl-impersonate (Chrome TLS fingerprint) for ~1s/page fetches parsed with Cheerio. Needs a sticky proxy such as RESIDENTIAL. Disable only when using UNBLOCKER-only or scrape.do.",
            "default": true
          },
          "warmConcurrency": {
            "title": "Warm-up concurrency",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many stealth-browser DataDome solves may run at once. Higher is faster across many queries but uses more memory (each browser is ~300-500 MB).",
            "default": 3
          },
          "blockBrowserMedia": {
            "title": "Save proxy traffic during warm-up",
            "type": "boolean",
            "description": "Skip images, fonts and video inside the stealth browser used only to solve DataDome. Challenge scripts, styles and XHRs still load, so the solve behaves normally while residential proxy traffic (billed per byte) drops sharply. Turn off only if solves start failing.",
            "default": true
          },
          "sessionKeepaliveSecs": {
            "title": "Session keepalive (seconds)",
            "minimum": 0,
            "maximum": 900,
            "type": "integer",
            "description": "Only touch a warm DataDome session after it has been idle for this many seconds, instead of re-fetching every session every 30s. Cuts residential traffic on long multi-query runs. Set to 0 to disable keepalive entirely; sessions are then re-solved on demand.",
            "default": 120
          },
          "scrapeDoApiKey": {
            "title": "scrape.do API key (optional)",
            "type": "string",
            "description": "Optional scrape.do token. When set, listing and offer pages are fetched through scrape.do's managed DataDome bypass instead of the built-in warm-up path. Takes priority over proxyConfiguration and warmup."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy configuration for the run. The default uses Polish RESIDENTIAL IPs for the fast warm-up path plus UNBLOCKER as an automatic per-page fallback. Polish locations give the most accurate prices.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL",
                "UNBLOCKER"
              ],
              "apifyProxyCountry": "PL"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}