# Allegro.pl Product Scraper (`parsebird/allegro-scraper`) Actor

Scrape Allegro.pl products by keyword, category, seller or offer URL: price, delivery, seller, rating, sales count, stock, GTIN and specs, plus optional B2B seller leads with NIP, REGON, KRS, address, phone and email.

- **URL**: https://apify.com/parsebird/allegro-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

Scrape **Allegro.pl products** by keyword, category, seller storefront or offer URL: price, discount, price with delivery, seller, rating, recent buyers, stock, GTIN and specs, plus optional **B2B seller leads** with NIP, REGON, KRS, address, phone and email. Export to JSON, CSV or Excel, or use the API.

<table><tr>
<td style="border-left:4px solid #FF5A00;padding:12px 16px;font-weight:600">
Search Allegro like a shopper — keyword, price range, new or used, sort order — and get up to 6,000 clean product rows per search, with optional offer-page details and verified company contacts for the sellers behind them.
</td>
</tr></table>

<br>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Use the Apify Actor "parsebird/allegro-scraper" to scrape products and seller leads from Allegro.pl, Poland's largest online marketplace. Call it with the ApifyClient: from apify_client import ApifyClient; client = ApifyClient("<APIFY_TOKEN>"); run = client.actor("parsebird/allegro-scraper").call(run_input={"searchQueries": ["laptop gaming", "iphone 15"], "minPrice": 500, "maxPrice": 5000, "condition": "new", "sortBy": "price-asc", "maxItemsPerQuery": 200}); items = client.dataset(run["defaultDatasetId"]).list_items().items. Key inputs: searchQueries (array of strings, Allegro search keywords), startUrls (array of {"url"}: allegro.pl offer /oferta/, search /listing, category /kategoria/ or seller /uzytkownik/ URLs), maxItemsPerQuery (integer, default 100, max products per keyword or URL), minPrice / maxPrice (integer, PLN), condition ("all" | "new" | "used", default "all"), sortBy ("relevance" | "price-asc" | "price-desc" | "newest", default "relevance"), scrapeProductDetails (boolean, default false, opens each offer page, charged as an extra product-details event), includeRawData (boolean, default false), scrapeSellerContact (boolean, default false, company seller legal name, NIP, REGON, KRS, address, phone, email), enrichEmails (boolean, default false, finds the email on the seller's own website verified by NIP, or legal name plus registered address), geoCode (string, default "pl"). Output fields per product: offerId, productId, url, title, brand, price {amount, currency}, originalPrice, priceWithDelivery, condition, delivery {free, freeReturn, lowestCost, label}, seller {id, login, name, company, superSeller, positiveFeedbackPercent, url}, sponsored, promoted, smart, productOffersCount, popularity {label, buyersQuantity}, rating {value, count}, parameters [{name, value}], images, categoryId, searchQuery, sourceUrl, scrapedAt; with details: detail {stock, gtin, rating, offerPopularity, returnPolicy, warranty, shipping, location, breadcrumbs, parameterGroups, description, images}; with seller leads: nip, sellerEmail, sellerPhone, sellerWebsite, sellerCompany {legalName, representative, taxId, regon, krs, address, verified, phones, emails, website, emailSources}. Full API docs: https://apify.com/parsebird/allegro-scraper/api — get a token at https://console.apify.com/settings/integrations
```

### What is Allegro.pl Product Scraper?

[Allegro.pl](https://allegro.pl/) is Poland's biggest online marketplace, with millions of offers from shops, brands and private sellers. **Allegro.pl Product Scraper** turns Allegro search results, categories, seller storefronts and offer pages into structured data: one clean row per product, tagged with the keyword or URL it came from.

The easiest way to try it: keep the example keyword `laptop gaming`, click **Start**, and you get 20 products in about a minute. Allegro has no public product search API for non-sellers, so this Actor works as an **Allegro API alternative** for price monitoring, market research and lead generation.

### What can Allegro.pl Product Scraper do?

- 🔎 **Search by keyword** — each keyword runs its own search, exactly like the Allegro search box, with up to 100 pages (about 6,000 products)
- 🔗 **Scrape any Allegro URL** — search results, categories, seller storefronts (`/uzytkownik/...`) and single offers (`/oferta/...`); filters already in the URL are kept
- 💸 **Filter and sort** — price range in PLN, new or used, and sort by relevance, price or newest
- 📦 **Full product details** — exact stock, GTIN/EAN, rating breakdown, warranty, return policy, breadcrumbs, grouped specs, full description and full-size images from each offer page
- 🏢 **B2B seller leads** — company legal name, NIP, REGON, KRS, registered address, and the phone and email the seller publishes on Allegro, looked up once per seller
- ✉️ **Verified email search** — for companies without an email on Allegro, the Actor finds the seller's own website and keeps an email only when that site shows the same NIP (or the exact legal name together with the registered address)
- ⏱️ **Scheduling, API and integrations** — run on a [schedule](https://docs.apify.com/platform/schedules), call it from the [Apify API](https://docs.apify.com/api/v2), and send data to Google Sheets, Slack, Make or Zapier with [integrations](https://apify.com/integrations)

### What data can you extract from Allegro?

| Field | Description |
|-------|-------------|
| `offerId` | Allegro offer ID; `allegro.pl/oferta/{offerId}` opens the offer |
| `productId` | Allegro catalog product ID, shared by every seller of the same product |
| `title` / `brand` | Offer title and brand |
| `price` / `originalPrice` | Current price and the crossed-out price Allegro shows on discounted offers (PLN) |
| `priceWithDelivery` / `delivery` | Price with the cheapest delivery, free delivery and free return flags, lowest delivery cost |
| `condition` | Nowy (new), Używany (used) and other Allegro conditions |
| `seller` | Seller ID, login, company flag, Super Sprzedawca badge, positive feedback %, storefront URL |
| `sponsored` / `promoted` / `smart` | Ad placement flags and Allegro Smart! delivery |
| `productOffersCount` | How many offers exist for the same catalog product |
| `popularity.buyersQuantity` | People who bought the product recently, as Allegro shows it |
| `rating` | Average product rating and number of ratings |
| `parameters` / `images` | Key specs and product images |
| `detail.stock` | Exact quantity available (with product details) |
| `detail.gtin` | GTIN/EAN barcode, when the seller provided it |
| `detail.rating` | Average, count, verbal grade and score distribution |
| `detail.warranty` / `detail.returnPolicy` | Warranty period and type, withdrawal period and who pays for returns |
| `detail.parameterGroups` / `detail.description` | Full grouped spec table and description text |
| `nip` | Seller's Polish tax ID (10 digits, checksum-validated) |
| `sellerEmail` / `sellerPhone` / `sellerWebsite` | Main seller contact as flat columns |
| `sellerCompany` | Legal name, representative, NIP, REGON, KRS, address, all phones and emails, website and the pages an email was found on |

### How to scrape Allegro.pl

1. Open [Allegro.pl Product Scraper](https://apify.com/parsebird/allegro-scraper) in Apify Console and click **Try for free**.
2. Type one or more keywords into **Search keywords**, or paste Allegro URLs into **Allegro URLs**.
3. Set **Max products per keyword or URL**, and optionally a price range, condition and sort order.
4. Turn on **Scrape full product details** for stock, GTIN, warranty and full specs, or **Collect seller lead data** for company contacts.
5. Click **Start** and wait for the run to finish.
6. Download the results as JSON, CSV, Excel or HTML from the **Output** tab, or read them through the API.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `searchQueries` | array | No\* | `["laptop gaming"]` | Keywords to search; each runs its own paginated search |
| `startUrls` | array | No\* | `[]` | Allegro offer, search, category or seller storefront URLs |
| `maxItemsPerQuery` | integer | No | `100` | Max products per keyword or listing URL (searches and categories stop at Allegro's 100-page limit, about 6,000) |
| `minPrice` / `maxPrice` | integer | No | — | Price range in PLN |
| `condition` | string | No | `all` | `all`, `new` (nowe) or `used` (używane) |
| `sortBy` | string | No | `relevance` | `relevance`, `price-asc`, `price-desc` or `newest` |
| `scrapeProductDetails` | boolean | No | `false` | Open each offer page for the full product details |
| `includeRawData` | boolean | No | `false` | Attach Allegro's original offer object (with product details only) |
| `scrapeSellerContact` | boolean | No | `false` | Add company seller data: legal name, NIP, REGON, KRS, address, phones, emails |
| `enrichEmails` | boolean | No | `false` | Find the email on the seller's own website when Allegro shows none (Polish companies) |
| `geoCode` | string | No | `pl` | Residential proxy country; keep `pl` for Allegro.pl |

\* Provide at least one keyword or URL.

Example input:

```json
{
    "searchQueries": ["laptop gaming", "iphone 15"],
    "minPrice": 500,
    "maxPrice": 5000,
    "condition": "new",
    "sortBy": "price-asc",
    "maxItemsPerQuery": 200,
    "scrapeProductDetails": true
}
```

Seller lead example (B2B):

```json
{
    "searchQueries": ["perfumy damskie"],
    "maxItemsPerQuery": 100,
    "scrapeSellerContact": true,
    "enrichEmails": true
}
```

### Output example

```json
{
    "offerId": "18807684878",
    "productId": "f9f55be0-6b2f-470b-917f-93d2ae2372cc",
    "url": "https://allegro.pl/oferta/18807684878",
    "title": "Szkło hartowane z Aplikatorem Polski Banan do Apple iPhone 15, 2 szt.",
    "brand": "Polski Banan",
    "price": {
        "amount": 62.9,
        "currency": "PLN"
    },
    "originalPrice": null,
    "priceWithDelivery": {
        "amount": 69.6,
        "currency": "PLN"
    },
    "condition": "Nowy",
    "delivery": {
        "free": false,
        "freeReturn": false,
        "lowestCost": {
            "amount": 6.7,
            "currency": "PLN"
        },
        "label": "69,60 zł z dostawą"
    },
    "seller": {
        "id": "40729590",
        "login": "Oficjalny sklep Polski Banan",
        "name": "Oficjalny sklep",
        "company": true,
        "superSeller": true,
        "positiveFeedbackPercent": 99.3,
        "url": "https://allegro.pl/uzytkownik/polski_banan"
    },
    "sponsored": true,
    "promoted": false,
    "smart": true,
    "productOffersCount": 1,
    "popularity": {
        "label": "183 osoby kupiły ostatnio",
        "buyersQuantity": 183
    },
    "rating": {
        "value": 4.95,
        "count": 19
    },
    "parameters": [
        {
            "name": "Typ",
            "value": "2,5D"
        },
        {
            "name": "Grubość szkła",
            "value": "0.3 mm"
        },
        {
            "name": "Przeznaczenie",
            "value": "wyświetlacz telefonu"
        }
    ],
    "images": [
        "https://a.allegroimg.com/original/1136e3/7f0d6c7d44bc914b6baeca6f08a0/Szklo-hartowane-z-aplikatorem-9H-BananFit-do-Apple-iPhone-15"
    ],
    "categoryId": "10532",
    "detail": {
        "stock": {
            "available": 49518,
            "label": "z 49 518 sztuk",
            "unit": "UNIT"
        },
        "gtin": "5906593619078",
        "rating": {
            "value": 4.95,
            "count": 19,
            "title": "Rewelacyjny",
            "reviewsCount": 4,
            "bestOpinion": "Aplikacja szkła jest bardzo dobrze przedstawiona na filmiku do którego kod kresk…",
            "distribution": [
                {
                    "score": 5,
                    "count": 18,
                    "percentage": 94
                },
                {
                    "score": 4,
                    "count": 1,
                    "percentage": 5
                }
            ]
        },
        "offerPopularity": {
            "label": "183 osoby kupiły 187 sztuk",
            "buyersQuantity": 183
        },
        "returnPolicy": {
            "withdrawalPeriod": "90 dni",
            "costLabel": "kupujący lub za darmo dla wybranych metod Smart!"
        },
        "warranty": {
            "period": "6 miesięcy",
            "type": "producenta/dystrybutora",
            "label": "Produkt jest objęty gwarancją producenta/dystrybutora przez 6 miesięcy od zakupu."
        },
        "shipping": {
            "handlingTime": "24 godziny",
            "shipsFrom": "Wrocław, Polska",
            "cheapestDelivery": {
                "amount": 6.7,
                "currency": "PLN"
            }
        },
        "location": {
            "city": "Wrocław",
            "province": "dolnośląskie",
            "countryCode": "PL"
        },
        "breadcrumbs": [
            "Allegro",
            "Elektronika",
            "Telefony i Akcesoria",
            "Akcesoria GSM",
            "Folie i szkła ochronne"
        ],
        "parameterGroups": [
            {
                "group": null,
                "parameters": [
                    {
                        "name": "Stan",
                        "value": "Nowy"
                    },
                    {
                        "name": "Faktura",
                        "value": "Wystawiam fakturę VAT"
                    }
                ]
            }
        ],
        "description": "Dlaczego warto wybrać szkło z aplikatorem?\nSzkło hartowane pomaga zabezpieczyć ekran przed skutkami codziennego użytkowa…",
        "images": [
            "https://a.allegroimg.com/original/1136e3/7f0d6c7d44bc914b6baeca6f08a0/Szklo-hartowane-z-aplikatorem-9H-BananFit-do-Apple-iPhone-15"
        ]
    },
    "searchQuery": "szkło hartowane iphone 15",
    "sourceUrl": "https://allegro.pl/listing?string=szk%C5%82o%20hartowane%20iphone%2015",
    "scrapedAt": "2026-10-14T23:04:33.000Z"
}
```

With **Collect seller lead data** on, each product from a company seller also gets these fields (this seller publishes its phone and email on Allegro):

```json
{
    "nip": "6332061578",
    "sellerEmail": "sklep@madeinlab.pl",
    "sellerPhone": "609426077",
    "sellerWebsite": null,
    "sellerCompany": {
        "legalName": "BŁYSK SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
        "representative": null,
        "taxId": "633-206-15-78",
        "regon": null,
        "krs": "0000032531",
        "address": {
            "street": "ul. Rolnicza 137",
            "zipCode": "44-336",
            "city": "Jastrzębie-Zdrój",
            "country": "Polska",
            "countryCode": "PL"
        },
        "verified": true,
        "phones": [
            "609426077"
        ],
        "emails": [
            "sklep@madeinlab.pl"
        ],
        "website": null,
        "emailSources": []
    }
}
```

Download the dataset as JSON, CSV, Excel or HTML from the **Output** tab.

### Use Allegro.pl Product Scraper through the API

**Python** ([apify-client](https://docs.apify.com/api/client/python/)):

```python
from apify_client import ApifyClient

client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("parsebird/allegro-scraper").call(run_input={
    "searchQueries": ["laptop gaming"],
    "minPrice": 2000,
    "sortBy": "price-asc",
    "maxItemsPerQuery": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["price"]["amount"], item["seller"]["login"])
```

**JavaScript** ([apify-client](https://docs.apify.com/api/client/js/)):

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<APIFY_TOKEN>' });
const run = await client.actor('parsebird/allegro-scraper').call({
    searchQueries: ['perfumy damskie'],
    maxItemsPerQuery: 100,
    scrapeSellerContact: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((p) => console.log(p.title, p.nip, p.sellerEmail, p.sellerPhone));
```

See the [API tab](https://apify.com/parsebird/allegro-scraper/api) for endpoints and more examples.

### Use cases

- **Price monitoring** — track prices, discounts and delivery costs of your products or competitors on a schedule
- **Market research** — measure demand with recent buyer counts, ratings and the number of sellers per product
- **Assortment and catalog analysis** — collect specs, GTINs and categories for a whole niche
- **Seller and competitor intelligence** — see which shops rank, advertise and hold Super Sprzedawca status for your keywords
- **B2B lead generation** — build lists of Polish e-commerce companies with NIP, REGON, KRS, address, phone and email
- **Data for AI and dashboards** — feed clean product data into BI tools, spreadsheets or LLM pipelines

### How it works

1. For each keyword, the Actor opens the Allegro search with your filters and reads the product data Allegro embeds in the page, so every field is structured rather than taken from the visible layout.
2. It walks the result pages (about 60 products each, up to Allegro's 100-page limit) until your per-keyword limit is reached, skipping duplicate offers.
3. With **Scrape full product details**, it opens each offer page and adds the offer's full data.
4. With **Collect seller lead data**, it reads the seller information Allegro shows on an offer page (the trader details required by EU consumer law) once per company seller.
5. With **Find seller emails off-platform**, for sellers with a NIP but no email on Allegro it looks for the company's website (links the seller posted on Allegro, the domain matching its Allegro login, and a Google search for its NIP and legal name), reads the site's home, contact and terms pages, and keeps an email only when the same site shows the seller's NIP, or its exact legal name together with its registered address. Only addresses on the site's own domain (or a free mailbox the site lists) are kept.
6. Requests go through Polish residential proxies. Allegro is protected by DataDome; the Actor handles its checks automatically and retries on a new IP when one is blocked.

### How much does it cost to scrape Allegro?

Allegro.pl Product Scraper uses **pay-per-event** pricing: you pay for each product saved, for each product's details when **Scrape full product details** is on, and in seller lead mode for each seller phone and email found. Compute and residential proxy costs are included in the event prices.

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| Product (per 1,000) | **$2.99** | $2.49 | $2.19 | $1.99 |
| Product details (per 1,000) | **$7.99** | $6.99 | $6.99 | $5.99 |
| Seller phone (per 1,000 sellers) | **$19** | $18 | $17 | $16 |
| Seller email (per 1,000 sellers) | **$39** | $37 | $35 | $33 |

Product details are optional and charged only when the toggle is on and the product's offer page was read. The phone and email events are charged once per unique seller, and only when a phone or email is actually found. For example, 1,000 products cost $2.99 on the Free plan, or $2.99 + $7.99 = $10.98 with full product details. The same 1,000 products (without details) with seller leads, where 200 company sellers have a phone and an email, cost $2.99 + $3.80 + $7.80 = $14.59. You can set a maximum cost per run; the Actor stops when it is reached.

### Is it legal to scrape Allegro?

This Actor only collects data from public Allegro pages that anyone can open without logging in. Scraping publicly available data is generally legal, but some fields can be personal data: sole traders' names and contact details are personal data under the GDPR, so process them lawfully (for example on the basis of legitimate interest, with an opt-out for direct marketing) and review [Allegro's terms](https://allegro.pl/regulaminy) before use. Read more in Apify's guide: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### Other e-commerce scrapers

- [Amazon Search Scraper](https://apify.com/parsebird/amazon-search-scraper) — Amazon search results with prices, ratings and sellers
- [eBay Sold Listings Scraper](https://apify.com/parsebird/ebay-sold-listings-scraper) — sold eBay items with final prices
- [AliExpress Scraper - Products & Sellers](https://apify.com/parsebird/aliexpress-scraper) — AliExpress products and store data
- [Walmart Product Scraper](https://apify.com/parsebird/walmart-product-scraper) — Walmart product details and prices
- [Hepsiburada Scraper](https://apify.com/parsebird/hepsiburada-scraper) — products, reviews and Q\&A from Turkey's Hepsiburada
- [MercadoLibre Scraper](https://apify.com/parsebird/mercadolibre-scraper) — Latin America's largest marketplace
- [Shopify Store Leads Scraper](https://apify.com/parsebird/shopify-store-leads-scraper) — B2B leads from Shopify stores

### FAQ

**Do I need an Allegro account or API key?**
No. The Actor reads public Allegro pages. You only need an Apify account.

**How many products can I get per search?**
Allegro shows at most 100 pages per search or category, about 6,000 products. To get more, split a broad keyword into narrower ones or use price ranges (`minPrice` / `maxPrice`), so each search stays under the limit.

**Why are product details slower than plain search results?**
Search results come about 60 products per page. Product details and seller leads need one Allegro offer page per product (or per seller), and offer pages are behind a stricter DataDome check that the Actor has to pass first. Leave **Scrape full product details** off if you only need prices, sellers and ratings. That extra work is why product details are a separate event.

**Why do some sellers have no NIP or company data?**
Only business sellers have company data on Allegro. Private sellers don't, and sellers registered outside Poland have a foreign tax ID, so `nip` is `null` for them while `sellerCompany.taxId` keeps the original value.

**How reliable are the emails from "Find seller emails off-platform"?**
An email is kept only when the website it comes from shows the seller's NIP, or its exact legal name together with its registered address, and `sellerCompany.emailSources` lists the pages it was found on so you can check it. Many small sellers have no website, or a site that blocks automated visits, so they get no email; you are only charged for emails actually found.

**What is `popularity.buyersQuantity`?**
The number of people Allegro says bought the product recently ("X osób kupiło ostatnio"). With product details, `detail.offerPopularity` holds the same signal for that one offer.

**How much memory does a run use?**
Keyword and category searches run at 512 MB by default. When product details, seller leads or Allegro URLs are on, the default is 4 GB, because offer and storefront pages need a real browser to pass Allegro's DataDome check and it passes faster with more CPU. You don't pay for compute separately; it's included in the event prices.

**Can I scrape a seller's whole storefront?**
Yes. Paste the storefront URL, e.g. `https://allegro.pl/uzytkownik/SELLER_LOGIN`, and set the product limit as high as you need.

**Can I schedule runs and track price changes?**
Yes. Schedule the Actor in Apify Console and compare runs by `offerId`, or connect [integrations](https://apify.com/integrations) like Google Sheets, Slack or Zapier.

**Can I use it with AI agents?**
Yes. Copy the AI assistant block above into ChatGPT, Claude or Cursor, or connect the Actor through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp).

**Something doesn't work as expected?**
Open an issue in the [Issues tab](https://apify.com/parsebird/allegro-scraper/issues) with your input and run link, and we'll look into it.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/allegro-scraper/changelog.md

# Actor input Schema

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

Enter what you would type into the Allegro search box, one keyword per line. Each keyword runs its own search with its own product limit.

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

Paste allegro.pl offer pages (/oferta/...), search results (/listing?string=...), categories (/kategoria/...) or seller storefronts (/uzytkownik/...). Filters already in the URL are kept.

## `maxItemsPerQuery` (type: `integer`):

Stop each keyword or listing URL after this many products. Allegro shows up to 100 pages (about 6,000 products) per search or category.

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

Only products from this price in złoty. Leave empty for no minimum.

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

Only products up to this price in złoty. Leave empty for no maximum.

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

Pick new (nowe) or used (używane) products only.

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

Order of results, same as the Allegro sort menu.

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

Open each offer page and add exact stock, GTIN/EAN, rating breakdown, warranty, return policy, breadcrumbs, grouped specs, full description and full-size images. Charged as an extra 'Product details' event per product, only when the offer page was read. Slower: one extra page per product.

## `includeRawData` (type: `boolean`):

Attach Allegro's full original offer object to each row. Works with 'Scrape full product details'.

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

Add the company seller's legal name, NIP, REGON, KRS, address and the phone and email the seller publishes on Allegro. One lookup per company seller. Private sellers have no company data.

## `enrichEmails` (type: `boolean`):

When a company seller shows no email on Allegro, find its website through its NIP and legal name and take the email from that site. An email is kept only when the site shows the same NIP, or the exact legal name with the registered address. Polish companies only. Turns on 'Collect seller lead data'.

## `geoCode` (type: `string`):

Two-letter country of the residential proxy. Keep pl: Allegro.pl shows Polish prices and blocks most traffic from abroad.

## Actor input object example

```json
{
  "searchQueries": [
    "laptop gaming"
  ],
  "startUrls": [],
  "maxItemsPerQuery": 20,
  "condition": "all",
  "sortBy": "relevance",
  "scrapeProductDetails": false,
  "includeRawData": false,
  "scrapeSellerContact": false,
  "enrichEmails": false,
  "geoCode": "pl"
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchQueries": [
        "laptop gaming"
    ],
    "maxItemsPerQuery": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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 gaming"],
    "maxItemsPerQuery": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/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 gaming"
  ],
  "maxItemsPerQuery": 20
}' |
apify call parsebird/allegro-scraper --silent --output-dataset

```

## MCP server setup

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