# Allegro.pl E-Commerce Scraper - Poland Product Prices & Sellers (`madeingermany/allegro-scraper`) Actor

Scrape Allegro.pl products by keyword, category, seller or offer URL — pure HTTP fast-path with got-scraping and Crawlee. Extract prices, sellers, NIPs, stock, and parameters.

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

## Pricing

from $3.00 / 1,000 product 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.pl Product Scraper — Poland E-Commerce, Prices & NIPs

[![Apify](https://img.shields.io/badge/Apify-Actor-blue.svg)](https://apify.com)
[![TypeScript](https://img.shields.io/badge/Language-TypeScript-blue.svg)](https://www.typescriptlang.org/)
[![Crawlee](https://img.shields.io/badge/Engine-Crawlee%20Cheerio-orange.svg)](https://crawlee.dev/)
[![Made in Germany](https://img.shields.io/badge/Quality-Made%20in%20Germany-red.svg)](https://apify.com)

A high-performance, production-grade scraper for **Allegro.pl** — Poland and Central Europe's #1 e-commerce marketplace. Extract structured product listings, real-time prices, historical discounts, seller reputation, Polish company identifiers (NIP/REGON/KRS), item specifications, and high-resolution images in seconds.

Built with a **pure HTTP fast-path architecture** powered by **Crawlee** and **`got-scraping`**, mirroring Chrome 130+ TLS fingerprints and HTTP/2 framing. Completely bypasses heavyweight browser overhead while clearing edge anti-bot challenges.

***

### ⚡ Why This Scraper Beats Alternatives

| Feature | Standard Browser Scrapers | Other HTTP Scrapers | **Allegro.pl Product Scraper** |
|---|---|---|---|
| **Speed** | 🐌 5–15 sec / page | ⚠️ Often blocked (403) | ⚡ **< 500 ms / page** |
| **Memory Usage** | ❌ 1024 MB – 2048 MB+ | ⚠️ 512 MB | ✅ **Minimal (128 MB – 256 MB)** |
| **DataDome Bypass** | ⚠️ Unreliable | ❌ 403 Forbidden | ✅ **Chrome 130+ TLS & Resilient Fallback** |
| **Data Completeness** | ⚠️ DOM only | ⚠️ Incomplete | ✅ **Full `__listing_StoreState` JSON blob** |
| **B2B Seller Lead Data** | ❌ None | ❌ None | ✅ **Seller Name, Company Flag & NIP** |
| **Pricing Model** | ❌ Expensive per-minute compute | ❌ Flat monthly | 💰 **Transparent Pay-Per-Event (PPE)** |

***

### 💰 Pricing (Pay-Per-Event)

This actor operates on a pay-as-you-go **Pay-Per-Event (PPE)** pricing model. You only pay for what you extract:

| Event Name | Purpose | Price (USD) | Description |
|---|---|---|---|
| **`apify-default-dataset-item`** | Product scraped | `$0.003` | One Allegro product row — offer id, title, brand, price (current + original), delivery, condition, seller reputation, parameters, images, Smart!/sponsored flags, productOffersCount and sales-velocity popularity. |
| **`seller-phone`** | Published phone | `$0.03` | Charged once per unique seller when a real business phone number is collected from the seller's Allegro trader info / storefront. |
| **`seller-email`** | Published email | `$0.05` | Charged once per unique seller when a real business email is collected from the seller's Allegro trader info / storefront. |
| **`apify-actor-start`** | Actor Start | `$0.005` | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |

***

### 📥 Input Configuration

Configure the scraper via the Apify Console or API using these parameters:

| Field | Type | Default | Description |
|---|---|---|---|
| `startUrls` | Array | `["https://allegro.pl/kategoria/laptopy-491"]` | Direct Allegro category, search, or offer URLs to crawl. |
| `searchQuery` | String | `"Laptopy"` | Keyword search query (e.g. `"laptop gaming"`, `"iphone 15"`, `"lego"`). |
| `maxItems` | Integer | `50` | Maximum number of products to scrape (range: 1 to 50,000). |
| `proxy` | Object | `{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }` | Apify Proxy settings. Polish residential IPs (`countryCode: "PL"`) recommended. |

#### Sample JSON Input

```json
{
  "startUrls": [
    { "url": "https://allegro.pl/kategoria/laptopy-491" }
  ],
  "searchQuery": "Laptopy",
  "maxItems": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### 📤 Output Data Format

Each extracted record contains detailed product, pricing, and seller information:

| Field | Type | Description |
|---|---|---|
| `id` | String | Unique Allegro offer / product ID |
| `title` | String | Full canonical product title |
| `price` | Number | Numeric current offer price |
| `currency` | String | Currency code (`PLN`) |
| `sellerName` | String | Seller username or brand store name |
| `sellerCompany` | Boolean | Whether the seller is a registered commercial business (`true`/`false`) |
| `sellerNip` | String | Polish Tax Identification Number (NIP) when available |
| `rating` | String | Seller positive feedback percentage score (e.g. `"99.2%"`) |
| `productUrl` | String | Direct canonical URL to the Allegro product offer |
| `imageUrl` | String | High-resolution thumbnail image URL |
| `isPromoted` | Boolean | Whether the item is a sponsored/promoted placement |
| `condition` | String | Item condition (`new` / `used`) |
| `scrapedAt` | String | ISO 8601 timestamp of extraction |

#### Sample Output Record

```json
{
  "id": "17988786584",
  "title": "Surface Laptop 4 Dotykowy – Microsoft Alcantara",
  "price": 2299.00,
  "currency": "PLN",
  "sellerName": "Yupilo_pl",
  "sellerCompany": true,
  "sellerNip": "PL102033445",
  "rating": "100%",
  "productUrl": "https://allegro.pl/oferta/premium-surface-laptop-alcantara-r5-6c-12t-4-0ghz-256-gb-2k-windows-11-17988786584",
  "imageUrl": "https://a.allegroimg.com/s180/1159ba/b6ee6f294653a8af35817a74d6a1/Premium-Surface-Laptop-Alcantara-R5-6C-12T-4-0GHz-256-GB-2K-Windows-11",
  "isPromoted": true,
  "condition": "new",
  "scrapedAt": "2026-09-28T01:30:57.123Z"
}
```

***

### 🎯 Use Cases

- **Competitor Price Monitoring**: Track real-time price drops, promotions, and seller pricing strategies on Allegro.
- **B2B Lead Generation**: Discover registered Polish e-commerce businesses and collect verified seller company NIPs.
- **Market & Assortment Research**: Analyze product catalog depth, category trends, and popular brands across Poland.
- **MAP Compliance**: Ensure authorized dealers adhere to minimum advertised pricing guidelines.
- **Catalog Building & Repricing**: Power your e-commerce platform with automated product feeds.

***

### 🏷️ SEO & Store Tags

`allegro`, `allegro-scraper`, `poland-ecommerce`, `ecommerce-scraper`, `price-tracker`, `allegro-pl`, `product-scraper`, `b2b-leads`, `polish-market`, `crawlee`, `got-scraping`

# Actor input Schema

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

Allegro.pl category, search, or offer URLs to scrape.

## `searchQuery` (type: `string`):

Keyword to search on Allegro.pl (e.g. 'Laptopy', 'iPhone 15').

## `maxItems` (type: `integer`):

Maximum number of product items to extract.

## `proxy` (type: `object`):

Apify Proxy configuration. Residential proxies in Poland (PL) are recommended for live Allegro crawling.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://allegro.pl/kategoria/laptopy-491"
    }
  ],
  "searchQuery": "Laptopy",
  "maxItems": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://allegro.pl/kategoria/laptopy-491"
        }
    ],
    "searchQuery": "Laptopy"
};

// Run the Actor and wait for it to finish
const run = await client.actor("madeingermany/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 = {
    "startUrls": [{ "url": "https://allegro.pl/kategoria/laptopy-491" }],
    "searchQuery": "Laptopy",
}

# Run the Actor and wait for it to finish
run = client.actor("madeingermany/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 '{
  "startUrls": [
    {
      "url": "https://allegro.pl/kategoria/laptopy-491"
    }
  ],
  "searchQuery": "Laptopy"
}' |
apify call madeingermany/allegro-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,madeingermany/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/8mgUJpAL0yKooLJYA/builds/VFSVJhQVNe0lWGFf8/openapi.json
