# Allegro Scraper: Products, Prices & Sellers (PL/CZ/SK/HU) (`dltik/allegro-scraper`) Actor

Scrape Allegro search, category & seller pages: price, delivery, Smart!, seller + feedback %, sales velocity, review rating, multi-seller count, full specs & images. Deep mode adds description, stock & GTIN; seller mode adds NIP/REGON. allegro.pl/cz/sk/hu. No login, no API key.

- **URL**: https://apify.com/dltik/allegro-scraper.md
- **Developed by:** [Walid](https://apify.com/dltik) (community)
- **Categories:** E-commerce, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 offer scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Allegro Scraper: Products, Prices, Sellers & Reviews

> Scrape [Allegro](https://allegro.pl) products by keyword, category, seller or URL across **four marketplaces — allegro.pl, allegro.cz, allegro.sk and allegro.hu**. Get price, delivery and Smart! eligibility, seller with feedback %, sales velocity, review rating, how many sellers carry the product, full specifications and images, as clean JSON or CSV. No login, no API key.

⭐ **Bookmark this actor** to keep it on top of your Apify dashboard.

### What is the Allegro Scraper?

The **Allegro Scraper** extracts product and offer data from Allegro, Central Europe's largest e-commerce marketplace, across its Polish, Czech, Slovak and Hungarian sites. Search by keyword (`laptop`, `iphone 15`, `ekspres do kawy`), narrow by category, price, condition or sort order, follow a single seller's storefront, or paste any Allegro listing URL and scrape it verbatim. Every offer comes back normalized: price and total price with delivery, Smart! eligibility, the seller block (login, display name, positive-feedback %, super-seller and company flags), Allegro's sales-velocity signal ("21 people bought recently"), the review rating and count, how many sellers offer the same product, the full parameter set, and all images.

Allegro is protected by DataDome, an anti-bot that hard-blocks datacenter traffic and header-only scrapers. The **Allegro Scraper** clears it the only reliable way: a genuine stealth browser over a clean residential IP in the marketplace's own country, then reads the server-rendered listing JSON directly so a single page load returns dozens of fully-parsed offers. That keeps the per-offer cost tiny and the data rich. Unlike single-country tools, this **Allegro Scraper** runs the same engine across allegro.pl, allegro.cz, allegro.sk and allegro.hu, matching the proxy country automatically so DataDome always sees a local visitor.

### Allegro scraping use cases

- **Price monitoring and repricing**: Track the price, total price with delivery, and Smart! status of any product across every seller that offers it, on any of the four Allegro marketplaces.
- **Competitor and seller intelligence**: Follow a competitor's storefront, read their feedback %, super-seller status and how many offers they run, and watch new listings appear.
- **Product and catalog research**: Pull the full specification set and images for a category to build or enrich a catalog, with Allegro's sales-velocity signal to spot what is actually selling.
- **Market and demand analysis**: Measure supply, price distribution, Smart! penetration and review ratings in a category, and compare the Polish, Czech, Slovak and Hungarian markets side by side.
- **Lead generation (B2B)**: Opt into seller mode to collect business trader data (legal name, NIP, REGON, KRS, address) for company sellers for outreach or verification.
- **Deal and arbitrage sourcing**: Sort by cheapest total price with delivery and filter by condition to surface underpriced new or used stock.

### Input

Set a `mode`, pick a `domain`, and give it something to search. A minimal keyword search:

```json
{
  "mode": "search",
  "domain": "pl",
  "searchQueries": ["laptop", "iphone 15"],
  "minPrice": 100,
  "maxPrice": 5000,
  "condition": "new",
  "sortBy": "price-asc",
  "maxResults": 500
}
```

- **search**: one or more `searchQueries`, optionally narrowed by `categoryUrl`, `seller`, `minPrice`/`maxPrice`, `condition` (new/used) and `sortBy` (relevance, price, newest, popularity). Set `domain` to `pl`, `cz`, `sk` or `hu`.
- **detail**: pass Allegro offer URLs in `startUrls` with `mode: "detail"` to get the full record (description, complete specs, stock, rating) for each.
- **startUrls**: paste any Allegro `/listing`, category or seller URL you built on the site to scrape it exactly — the most reliable way to target complex filters or exotic categories.
- **scrapeProductDetails**: opt-in deep mode that visits each offer for the full description, complete specification table, exact stock and review rating.
- **scrapeSellerContact**: opt-in seller mode that collects business trader data (NIP/REGON/KRS) for company sellers.

Allegro needs a residential IP in the marketplace country. Leave the proxy unset to use Apify Residential (country matched automatically), or pass your own via `customProxyUrl`.

### Output

One record per offer. A trimmed example from a `laptop` search:

```json
{
  "type": "product",
  "offerId": "18132303424",
  "productId": "bb595071-dd0e-4daa-819a-c92ead9e4157",
  "url": "https://allegro.pl/oferta/18132303424",
  "title": "Laptop Acer Chromebook 314 14\" Intel Celeron N 4 GB / 32 GB",
  "price": {"amount": 399.0, "currency": "PLN"},
  "priceWithDelivery": {"amount": 409.49, "currency": "PLN"},
  "delivery": {"free": false, "freeReturn": false, "label": "409,49 zł z dostawą"},
  "smart": true,
  "condition": "Nowy",
  "seller": {"id": "69710181", "login": "LobiCom", "name": "LobiCom",
             "superSeller": true, "company": true, "positiveFeedbackPercent": 98.6,
             "url": "https://allegro.pl/uzytkownik/LobiCom"},
  "sponsored": false, "promoted": true,
  "productOffersCount": 1,
  "popularity": "68 osób kupiło ostatnio",
  "rating": {"average": 5.0, "count": 11},
  "parameters": [{"name": "Przekątna ekranu", "values": ["14\""]}, {"name": "RAM", "values": ["4 GB"]}],
  "images": ["https://a.allegroimg.com/original/..."],
  "domain": "allegro.pl",
  "searchQuery": "laptop"
}
```

With `scrapeProductDetails` enabled, each record also gets a `detail` object with the full description, the complete parameter table, exact `stock`, and the review rating. With `scrapeSellerContact`, company sellers get a `sellerCompany` object (legal name, NIP, REGON, KRS, address).

### Pricing

This **Allegro Scraper** uses **PAY\_PER\_EVENT** and is priced to beat the market:

- **Offer scraped — $2.00 per 1,000 offers** (the core listing scrape, with every field above).
- **Deep offer details — $6.00 per 1,000** (opt-in: full description, complete specs, exact stock, rating; one extra page per offer).
- **Seller business data — $8.00 per 1,000** (opt-in: NIP/REGON/KRS for company sellers).

Failed runs are not charged, and DataDome-blocked requests are never charged. The base listing rate undercuts comparable single-country Allegro scrapers while covering four marketplaces.

### Automate & schedule

Schedule the **Allegro Scraper** to run hourly or daily on the products, categories or sellers you track, then wire it to Google Sheets, Slack, a database or your repricing tool through Apify integrations and webhooks. Store each run's dataset and diff it to get a standing price-and-stock monitor across allegro.pl, allegro.cz, allegro.sk and allegro.hu, or point it at a competitor's storefront to be alerted the moment they list something new or move a price. Pair it with the Apify API or MCP server to feed live Allegro data straight into your own app or AI agent.

### FAQ: Allegro API, DataDome & marketplaces

**Is there an official Allegro API?** Yes, but it requires an Allegro account, OAuth registration and app review, and it is scoped to your own account. This **Allegro Scraper** reads public listing data for any search, seller or category with no account and no approval.

**How do I scrape Allegro without getting blocked by DataDome?** Use a residential IP in the marketplace's country with a real browser. This actor does exactly that out of the box — a stealth browser over a country-matched residential IP, rotating to a fresh IP on any block, with an optional 2Captcha/CapSolver fallback for the rare slider.

**Which Allegro sites are supported?** allegro.pl (Poland), allegro.cz (Czechia), allegro.sk (Slovakia) and allegro.hu (Hungary). Set `domain` and the proxy country is matched automatically.

**What fields do I get without deep mode?** Price, total price with delivery, Smart! eligibility, condition, seller (login, name, feedback %, super-seller, company), sales velocity, review rating and count, how many sellers offer the product, the parameter set and images — all from the listing, no per-offer request.

**Can I get seller contact details?** Enable `scrapeSellerContact` for company sellers' public business data (legal name, NIP, REGON, KRS, address). Coverage is partial — private individuals and shops without published data return nothing, and no data is ever guessed.

**Does it need an Allegro account or cookies?** No. The **Allegro Scraper** works fully anonymously.

***

⭐ **Found this useful? Bookmark it.** Apify ranks actors by bookmarks, and the more you bookmark, the more you support the dev.

#### Related actors

- [Leboncoin Scraper](https://apify.com/dltik/leboncoin-scraper): France's largest marketplace, all categories, prices and sellers.
- [Indeed Scraper](https://apify.com/dltik/indeed-scraper): jobs with salary ranges, company ratings and review counts.

# Actor input Schema

## `mode` (type: `string`):

'search' = find offers by keyword/category/seller (or from pasted startUrls). 'detail' = fetch full records (description, specs, stock, rating) for specific offer URLs.

## `searchQueries` (type: `array`):

Keywords to search, each run separately, e.g. \["laptop", "iphone 15", "ekspres do kawy"]. Leave empty to browse a category or seller via startUrls. Used in 'search' mode.

## `domain` (type: `string`):

Which Allegro marketplace to scrape. The proxy exit country is matched automatically so DataDome sees a local IP.

## `startUrls` (type: `array`):

Paste Allegro listing, category or seller URLs to scrape verbatim (any filter combination you built on the site), or offer URLs in 'detail' mode. The URL is authoritative and overrides the keyword/category/seller fields. Best way to target exotic categories or complex filters.

## `categoryUrl` (type: `string`):

Narrow a keyword search to one Allegro category by pasting its URL (e.g. https://allegro.pl/kategoria/laptopy-491). Combined with a search query if both are given.

## `seller` (type: `string`):

Restrict to one seller's storefront: a login (e.g. 'Apollo\_HP'), a /uzytkownik/<login> or /sklep/<name> path, or the full storefront URL.

## `minPrice` (type: `integer`):

Only offers priced at or above this (in the marketplace currency: PLN/CZK/EUR/HUF). Used in 'search' mode.

## `maxPrice` (type: `integer`):

Only offers priced at or below this (in the marketplace currency). Used in 'search' mode.

## `condition` (type: `string`):

Filter by item condition: new (nowe) or used (używane). Leave empty for all.

## `sortBy` (type: `string`):

Result ordering. 'relevance' (Allegro default), cheapest/most expensive by total price, or newest.

## `maxResults` (type: `integer`):

Maximum offers to return per query/URL (search mode). Allegro caps a single search at ~6000 offers (100 pages). Detail mode returns one record per URL.

## `scrapeProductDetails` (type: `boolean`):

Visit each offer page for the full description, complete specification table, exact stock quantity and review rating (one extra page per offer — slower, higher cost). Off by default: the listing already returns price, delivery, Smart!, seller, sales velocity, rating, parameters and images.

## `scrapeSellerContact` (type: `boolean`):

Fetch each seller's public business data (legal name, NIP tax ID, REGON, KRS, address) from their 'about seller' page. Company sellers only; coverage is partial. For lead generation and B2B research.

## `proxyMode` (type: `string`):

'auto' (recommended): try Apify Unblocker first (a managed, server-side DataDome bypass — no residential bandwidth, immune to IP reputation), then fall back to a stealth browser over residential. 'unblocker' forces the Unblocker; 'browser' forces the residential browser.

## `customProxyUrl` (type: `string`):

Your own residential proxy URL (http://user:pass@host:port), used as the ONLY proxy. Allegro needs a residential IP in the marketplace country; leave empty to use Apify Residential (country matched automatically).

## `twoCaptchaApiKey` (type: `string`):

Optional DataDome slider fallback. A clean residential IP clears DataDome on its own in almost all runs; supply a 2Captcha (or CapSolver) key only if you see repeated blocks on a noisy pool.

## `proxyConfig` (type: `object`):

Apify proxy configuration. Allegro requires the RESIDENTIAL group; the country is matched to the marketplace automatically if left unset.

## Actor input object example

```json
{
  "mode": "search",
  "searchQueries": [
    "laptop"
  ],
  "domain": "pl",
  "condition": "",
  "sortBy": "relevance",
  "maxResults": 100,
  "scrapeProductDetails": false,
  "scrapeSellerContact": false,
  "proxyMode": "auto",
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped Allegro offers.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "laptop"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("dltik/allegro-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQueries": ["laptop"] }

# Run the Actor and wait for it to finish
run = client.actor("dltik/allegro-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "laptop"
  ]
}' |
apify call dltik/allegro-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dltik/allegro-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/SYYPi0OzCbZPxOAnd/builds/obuAVrKgCinLeAfHK/openapi.json
