Allegro
Allegro Scraper: Prices, Deals, Reviews and Keywords
A four-part Allegro scraper toolkit: offers from searches, categories and stores, deals with 30-day lowest prices, reviews and autocomplete keywords.
Allegro
A four-part Allegro scraper toolkit: offers from searches, categories and stores, deals with 30-day lowest prices, reviews and autocomplete keywords.
Allegro is Poland’s largest marketplace, and for anyone selling there it is also the best source of market data in the country: what sells, at what price, who discounts, and what buyers complain about. The trouble is getting that data out. Allegro’s pages are protected by DataDome, prices come as Polish text like “3 570,00 zł”, and the useful signals (“71 osób kupiło ostatnio”, “cena z 30 dni”) are scattered across cards.
This guide covers four Epic Scrapers actors that each handle one part of the job, with no Allegro account, API key or browser required:
| Actor | What it scrapes | One row is |
|---|---|---|
| Allegro Scraper | Any search, category or seller store | An offer |
| Allegro Deals Scraper | The deals zone (Strefa Okazji) | A discounted offer |
| Allegro Reviews Scraper | Product reviews (opinie) | A review |
| Allegro Keyword Scraper | Search-box autocomplete | A keyword |
The Allegro Scraper is the core tool. It accepts keywords (searchQueries) or any allegro.pl listing URL (startUrls): a search with filters (/listing?string=…), a category (/kategoria/laptopy-491) or a seller’s store (/uzytkownik/LOGIN). It reads the same data the Allegro mobile app uses, so prices come back as numbers and layout changes on the website don’t break it.
maxItems (offers per keyword and per URL). 0 goes as deep as Allegro allows, about 6,000 offers per listing.sort, priceMin / priceMax (PLN), condition (any, new, used) and includeSponsored.Find the best sellers in a category:
{
"startUrls": [{ "url": "https://allegro.pl/kategoria/laptopy-491" }],
"sort": "popularity",
"maxItems": 500
}
Export a competitor’s whole store:
{
"startUrls": [{ "url": "https://allegro.pl/uzytkownik/PlanetaAgd_pl" }],
"maxItems": 0
}
Valid sort values are relevance, price_asc, price_desc, price_with_delivery_asc, price_with_delivery_desc, popularity, newest, ending_soon and rating. Leave Proxy configuration at its default (Polish residential IPs); Allegro blocks datacenter traffic, and the proxy cost is included.
{
"position": 23,
"offerId": "18934981349",
"productId": "51f02308-6025-4897-bd02-cbaf9710b275",
"title": "Lenovo ThinkPad T14s i7 11 GEN 32 GB 14\" IPS Touch",
"url": "https://allegro.pl/oferta/18934981349",
"price": 3570.0,
"currency": "PLN",
"discountPercent": 7,
"lowestPrice30Days": 3875.0,
"isSmart": true,
"isSponsored": false,
"isPromoted": true,
"productRating": 5.0,
"productRatingCount": 3,
"productOffersCount": 2,
"recentBuyersCount": 71,
"recentBuyersText": "71 osób kupiło ostatnio",
"isSuperSeller": true,
"sellerType": "Firma",
"offerType": "buy_now",
"categoryId": "491",
"parameters": { "Seria procesora": "Intel Core i7", "Typ dysku twardego": "SSD" },
"scrapedAt": "2026-10-01T23:12:03.384785Z"
}
The two fields that make this useful for product research are recentBuyersCount (Allegro’s own “X osób kupiło ostatnio” number) and productOffersCount (how many sellers compete on the same catalog product). Many recent buyers plus few competing offers is the pattern you’re looking for. Seller sellerLogin and sellerId are filled when you scrape a store URL, since Allegro doesn’t show them on search cards. The key-value store record SUMMARY adds searchTotalCount per search, which is handy for sizing a market.
For discount tracking, the Allegro Deals Scraper covers Strefa Okazji. You can pick departments (such as elektronika, moda, dom-i-ogrod, supermarket), Allegro’s themed deal lists via tags (such as bestsellers, smart-deals, best-price-guarantee), keywords inside the deals zone, categoryIds, a price range and minDiscountPercent.
Every deal comes with price, originalPrice, discountPercent, savings and lowestPrice30Days, the Omnibus “cena z 30 dni” figure Allegro must show under EU rules. That makes it easy to separate real discounts from inflated reference prices.
The standout feature is built-in change detection. Turn on onlyNewOrChanged with a monitorKey, schedule the actor, and each run saves only offers that are new or changed price since the last run, tagged with changeType (new, price_drop, price_increase), previousPrice and priceChange. Unchanged offers aren’t saved or charged.
{
"departments": ["elektronika", "dom-i-ogrod"],
"tags": ["bestsellers"],
"maxItems": 300,
"minDiscountPercent": 15,
"onlyNewOrChanged": true,
"monitorKey": "bestsellers-daily"
}
Save that as a task, schedule it hourly or daily, and connect Slack, email or Google Sheets in the Integrations tab to get a price-drop feed. The deals scraper also runs on Allegro’s Czech, Slovak and Hungarian sites through marketplace (allegro-cz, allegro-sk, allegro-hu), with currency set to PLN, EUR, CZK or HUF.
For tracking specific products outside the deals zone, schedule the main Allegro Scraper on a narrow search instead (for example "searchQueries": ["iphone 17 256gb"], "sort": "price_asc", "condition": "new") and compare price per offerId between runs.
The Allegro Reviews Scraper exports every review of a product, not just the first page. Give it product URLs (allegro.pl/produkt/...), product UUIDs, or keywords in searchQueries and it finds the products for you. Reviews belong to the catalog product on Allegro, so a product URL returns reviews from all sellers, while an offer URL returns only that one offer’s reviews.
To pull every complaint about a product:
{
"products": ["58477991-7e13-4e80-b021-6e30661d5082"],
"ratings": ["1", "2"],
"maxReviewsPerProduct": 0
}
Each row has rating, text, pros, cons, createdAt, helpfulCount, imageUrls, language and sellerLogin (the seller the buyer bought from). Reviewer names come pre-masked by Allegro (authorName like C...4). A free PRODUCTS record in the key-value store lists the aspects Allegro detects in reviews, such as “Jakość wykonania”, with positive and negative mention counts.
For ongoing monitoring of your own listings, set onlyNewSince to "1 day" and schedule it daily. The run sorts by newest and stops at the first older review.
The Allegro Keyword Scraper collects what Allegro’s search box suggests while a shopper types. It requests Allegro’s maximum of 50 suggestions per query, plus related-search tiles, and can expand each seed with the alphabet (lego a … lego z).
{
"keywords": ["odkurzacz pionowy"],
"expansion": "both",
"onlyContainingSeed": true,
"maxKeywords": 1000
}
expansion accepts none, alphabet, alphabetPrefix or both; depth (1 to 3) re-queries the keywords it found. Each row has keyword, seedKeyword, sourceQuery, position, suggestionType (phrase, navigation, popular, brand, category), wordCount and a ready listingUrl. Every run also saves a plain KEYWORDS.txt. Set includePopular to true to add Allegro’s “Popularne wyszukiwania”. Allegro doesn’t publish search volumes, but position reflects Allegro’s own popularity ranking.
All four actors share the same API pattern. A synchronous cURL call that returns the dataset:
curl -X POST "https://api.apify.com/v2/acts/epicscrapers~allegro-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["ekspres do kawy"], "sort": "popularity", "maxItems": 100}'
A small Python pipeline: find keywords, scrape the top offers, then rank by demand versus competition.
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
kw_run = client.actor("epicscrapers/allegro-keyword-scraper").call(run_input={
"keywords": ["kawa ziarnista"],
"expansion": "alphabet",
"onlyContainingSeed": True,
"maxKeywords": 20,
})
keywords = [k["keyword"] for k in client.dataset(kw_run["defaultDatasetId"]).iterate_items()]
offers_run = client.actor("epicscrapers/allegro-scraper").call(run_input={
"searchQueries": keywords,
"sort": "popularity",
"maxItems": 60,
})
for o in client.dataset(offers_run["defaultDatasetId"]).iterate_items():
buyers = o.get("recentBuyersCount") or 0
rivals = o.get("productOffersCount") or 1
if buyers >= 50 and rivals <= 3:
print(o["searchQuery"], buyers, rivals, o["price"], o["url"])
Sellers entering Allegro. Use the keyword scraper to map a niche, the main scraper to find offers with high recentBuyersCount and low productOffersCount, and the reviews scraper to read what buyers dislike about the leaders.
Pricing and repricing. Schedule category or search scrapes and track price, discountPercent and lowestPrice30Days per offerId. Add price_with_delivery_asc sorting when delivery cost drives the buying decision.
Deal sites and Telegram channels. Feed the deals scraper’s price_drop rows with images and links into your channel every hour.
Brands and agencies. Monitor reviews of your products and your competitors’, and watch who runs sponsored (isSponsored) or promoted (isPromoted) placements on your keywords.
Omnibus compliance checks. Compare price against lowestPrice30Days across a department.
If you sell across several marketplaces, the same workflow works on eBay and Etsy; see our eBay scraper guide and Etsy scraper guide.
Yes. Allegro’s REST API is designed for sellers and integrators managing their own accounts, and it requires app registration and OAuth. These actors need no developer account and return marketplace-wide data as shoppers see it, including sales signals and sponsored flags.
Allegro lets any listing be read about 6,000 offers deep. For bigger categories, split by subcategory or by price range with priceMin and priceMax.
Top-level department pages such as /kategoria/elektronika have no offer list. Use a subcategory like /kategoria/laptopy-491. Product pages (/oferta/…, /produkt/…) belong in the reviews scraper, not the listing scraper.
The actors collect publicly visible offer data, public search suggestions and reviews with names already masked by Allegro. You are responsible for following Allegro’s terms and laws such as GDPR. This isn’t legal advice.
All four actors use pay-per-event pricing with no subscription, charged per offer, review or keyword saved. Check the Pricing tab on each actor page for current rates.
The fastest first step is a category you already know: paste its URL into the Allegro Scraper, sort by popularity, set maxItems to 100 and look at recentBuyersCount. Then add the Deals Scraper, Reviews Scraper or Keyword Scraper as your research needs grow.