Allegro Scraper - Offers, Prices, Sellers & Reviews avatar

Allegro Scraper - Offers, Prices, Sellers & Reviews

Pricing

from $1.80 / 1,000 offer records

Go to Apify Store
Allegro Scraper - Offers, Prices, Sellers & Reviews

Allegro Scraper - Offers, Prices, Sellers & Reviews

Scrape Allegro by keyword or URL. Extract offers, prices, delivery, seller details, and product reviews. Includes incremental change monitoring, resume support, and MCP connectors for automated workflows.

Pricing

from $1.80 / 1,000 offer records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

2

Bookmarked

8

Total users

2

Monthly active users

6 days ago

Last modified

Categories

Share

Allegro Poland Scraper: Offers, Prices & Seller Data

Allegro Poland Scraper turns Allegro, Poland's largest online marketplace, into a clean Apify dataset. Search by your own phrases or barcodes, or paste Allegro listing, category or seller links, and every matching offer comes back with its price, delivery text, gallery, rating, category, seller signals and the offer's own parameters (colour, memory, size, and so on). Switch on full detail enrichment to add each offer's own description, brand, SKU, GTIN/barcode, return policy, availability and reviews, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Three ways in. Build searches from your own phrases, search by product barcode (EAN/GTIN/UPC), or paste Allegro listing, category (/kategoria/...) or seller (/uzytkownik/...) links and walk them forward from wherever they start.
  • Full offer rows. Title, brand, price, currency, delivery terms, offer URL, a full image gallery, rating, category and the offer's own parameters land in every row, no extra toggle needed.
  • Seller signals included. Seller login, business/private flag, positive-feedback percentage and the Super Seller badge come with every offer.
  • Sponsored, Smart! and price-guarantee flags returned as data. Keep or drop promoted cards yourself instead of guessing which ones were paid placements.
  • Optional detail enrichment. Turn on Fetch full offer details to add each offer's own description, brand, SKU, category, availability, GTIN/barcode, return policy and up to Max reviews individual reviews, billed only for the offers actually enriched.
  • Built for schedules. Incremental mode returns only new and changed offers on recurring runs, and a refused run fails loudly instead of returning an empty dataset.
  • MCP connector export. Send a concise offer digest into Notion, Linear, Airtable or Apify connectors while the full record stays in the dataset.

Use Cases

  • Price monitoring and repricing: track your own or a competitor's listings across scheduled runs and catch price and delivery changes as changedFields.
  • Market and category research: pull hundreds of matching offers for a phrase to compare pricing spread, sellers and parameter mixes in one dataset.
  • Deal and drop alerts: watch a search with Incremental mode on and feed newly appeared offers into your own alerting tool or spreadsheet.
  • Seller and listing audits: check seller feedback percentage, business status and Super Seller badges across a category before sourcing decisions.
  • Catalog enrichment: turn on full offer details to add descriptions, brands and SKUs for offers you already found by search or link.

Data You Get

Sample shape: values are illustrative placeholders, not from a live offer.

FieldExample
offerId"20000000001"
title"Sample Smartphone 8 GB / 128 GB 5G"
brand"Apple" (null when the listing card doesn't show one)
url"https://allegro.pl/oferta/20000000001"
price / currency1234.56 / "PLN"
originalPrice1499 (null when the offer shows no discount)
deliveryInfo"darmowa dostawa"
freeDelivery / freeReturnfalse / true
lowestDeliveryPrice9.99
sponsored / bestPriceGuarantee / smartfalse / true / true (Smart! is Allegro's free-shipping program)
sellerName / sellerBusiness / sellerFeedbackPercent / superSeller"sample_seller" / true / 98.5 / false
category"320000"
parameters{"Kolor": "czarny", "Wbudowana pamięć": "128 GB"}
image / images / thumbnail"https://a.allegroimg.com/s180/sample/sample-thumbnail" / the full gallery as a list of URLs / listing thumbnail URL
ratingValue / ratingCount4.9 / 228
offerCount / hasVariants75 (other sellers offering this same product) / true
recentBuyersLabel / purchasesCount"381 osób kupiło ostatnio" / 381 (number parsed from the label)
sellerInfo{"login": "mbrands_pl", "url": "https://allegro.pl/uzytkownik/mbrands_pl", "feedbackPercent": 99.5, "superSeller": true, "business": true}
deliveryCost / shippingInfo7.99 / "56,99 zł z dostawą" (lowest delivery price and the delivery text)
isDiscount / isInStocktrue when the old price is above the price / true when the offer can be added to the cart
breadcrumbsList[{"name": "Elektronika", "url": "https://allegro.pl/dzial/elektronika"}] (with fetchDetails)
sourceUrl / sourceLabel"https://allegro.pl/listing?string=smartfon" / "search-1:smartfon" (or "barcode-1:<code>" for a barcode search)

When Fetch full offer details is on, an enriched offer also carries detailDescription, detailBrand, detailSku, detailCategory, detailPrice, detailPriceCurrency, detailAvailability, detailCondition, gtin, detailRatingValue, detailRatingCount, returnPolicyDays, returnPolicyUrl, reviews (up to Max reviews per offer, each with rating, date, author, text, pros, cons) and reviewsCollected, parsed from the offer's own page. This is billed one Detail enrichment event per offer actually enriched; the reviews are included in it and carry no separate charge. When Incremental mode is on, every returned offer also carries changeType (NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED), changedFields, firstSeenAt and lastSeenAt, rating value/count, the recent-buyers label and count (purchasesCount) and review text never trigger UPDATED on their own, since that reflects other shoppers buying or rating the product, not a change to the offer itself. Stock status (isInStock), discount flag, delivery cost, shipping text, seller details and thumbnail do trigger UPDATED.

How to Use

  1. Pick a mode: search (build from your own phrases and/or barcodes) or url (paste Allegro listing, category or seller links).
  2. Fill in the phrases, barcodes or links for that mode, and add a keyword filter if you only want titles containing certain terms.
  3. Set Max items to control run size and cost, and turn on Fetch full offer details only if you need description/brand/SKU/GTIN/review fields (set Max reviews per offer alongside it).
  4. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.

Search one phrase:

{
"mode": "search",
"queries": ["iphone"],
"maxItems": 20
}

Search by barcode (EAN/GTIN/UPC):

{
"mode": "search",
"barcodes": ["0195950627114"],
"maxItems": 5
}

Paste Allegro listing, category or seller links (a &p=N page number in the link is used as the starting page):

{
"mode": "url",
"startUrls": [
{ "url": "https://allegro.pl/listing?string=laptop" },
{ "url": "https://allegro.pl/listing?string=laptop&p=2" },
{ "url": "https://allegro.pl/kategoria/smartfony-i-telefony-komorkowe-165" },
{ "url": "https://allegro.pl/uzytkownik/smartSPOT" }
],
"maxItems": 10
}

Search with full offer details and reviews enriched:

{
"mode": "search",
"queries": ["macbook"],
"fetchDetails": true,
"maxReviews": 20,
"maxItems": 10
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/allegro-pl-scraper").call(run_input={"mode": "search", "queries": ["iphone"]})
for offer in client.dataset(run["defaultDatasetId"]).iterate_items():
print(offer["title"], offer["price"], offer["currency"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/allegro-pl-scraper').call({ mode: 'search', queries: ['iphone'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

URL mode reads Allegro listing/search pages (/listing?...), category pages (/kategoria/...) and seller/store pages (/uzytkownik/...), all three carry the same forward-paginated results grid the actor parses. A single offer or product link (/oferta/... or /produkt/...) does not, and the run will fail if it's the only source, so paste one of the three link types instead, or use Search phrases/Barcodes to find the offer.

If you select URL mode and leave Start URLs untouched (or omit the field in an API call), the run now scrapes one example of each link type: a search listing (/listing?string=iphone), a category page (/kategoria/smartfony-i-telefony-komorkowe-165) and a seller page (/uzytkownik/smartSPOT). Replace the list to scrape your own links.

Dataset views

The Output tab offers four views: an overview table of the core offer fields, a detail view for enriched offers (description, GTIN, return policy, detail rating), a reviews view with one row per review, and a changes view for Incremental mode (changeType, changedFields, firstSeenAt, lastSeenAt).

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset ID and the actor skips every offer already collected there (matched by offerId), so you don't pay twice.
  • Incremental mode (incrementalMode) is for scheduled runs over the same search. Each offer classifies as NEW (first time seen), UPDATED (with changedFields naming what changed) or UNCHANGED (suppressed and not billed unless emitUnchanged is on). EXPIRED and REAPPEARED are both narrower: EXPIRED rows are only produced when a run reads every source to its natural end (no maxItems cap hit, no resumeFromRunId) and emitExpired is on, and that same run is what marks the missing offer as no longer present. REAPPEARED can then only be classified on a later run, for that specific offer, once it has been marked that way and is scraped again; with emitExpired left off, no offer is ever marked absent, so REAPPEARED cannot occur. stateKey names or shares the stored state; leave it empty and the actor derives one from your mode, phrases, links and keywords. Rating value/count, the recent-buyers label and its numeric count (purchasesCount), and review fields never trigger UPDATED on their own by default; every other field does, including isInStock, so an in-stock to out-of-stock flip is reported. Offers saved by an older version of this actor are not flagged UPDATED just because the newer fields (isInStock, isDiscount, sellerInfo, deliveryCost, shippingInfo, thumbnail, purchasesCount) appeared; those fields are tracked from the following run. add further field names to ignoreFieldsForChanges if another field in your setup turns out to be noisy. With Incremental mode off, output is exactly as before.

Send results into your apps (MCP connectors)

Optionally pipe the scraped offers into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each offer, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where offers should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Connector write errors never fail the run. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch to build searches from your phrases/barcodes, or url for pasted Allegro listing/category/seller links.
queriesarray["iphone"]Search phrases for search mode. Each phrase is one search walk.
barcodesarray[]Product barcodes (EAN/GTIN/UPC) for search mode. Allegro's own search resolves a barcode exactly like a phrase; each code is one search walk. May be combined with queries.
startUrlsarrayone listing, one category and one seller sample URLAllegro listing (/listing?...), category (/kategoria/...) or seller (/uzytkownik/...) links for URL mode. A &p=N in the link is honoured as the first page read. Single offer/product links (/oferta/..., /produkt/...) are not a start source.
keywordsarray[]Keeps only offers whose title contains at least one of these terms (case-insensitive).
fetchDetailsbooleanfalseOpen each offer's own page to add description, brand, SKU, category, GTIN/barcode, return policy, detail price/currency, availability and reviews (see maxReviews). Slower, and billed per offer actually enriched.
maxReviewsinteger20Only applies with fetchDetails on. Cap on individual reviews captured per offer (0 disables review text; the aggregate rating/count are still attached). Reviews are included in Detail enrichment (no separate charge); the value is capped at 1000.
maxItemsinteger20Maximum offers to return across the whole run. Minimum 1; the cap is always finite.
maxPagesinteger0Maximum Allegro result pages to read per search phrase or pasted link. 0 walks every result page; maxItems is the primary output cap.
resumeFromRunIdstringno default (empty)A previous run ID (or dataset ID) from this actor. Offers already collected there are skipped, so the run returns only new ones.
incrementalModebooleanfalseTurn on for scheduled runs over the same search: return only new and changed offers.
stateKeystringno default (empty)Name or share a monitoring campaign's stored state. Left empty, a key is derived automatically from mode, phrases, links and keywords.
emitUnchangedbooleanfalseIncremental mode only. Also return (and bill) offers unchanged since the last run.
emitExpiredbooleanfalseIncremental mode only. Also return (and bill) offers no longer found, once a run has fully scanned the search.
ignoreFieldsForChangesarray[]Incremental mode only. Extra field names to exclude from UPDATED detection, on top of the built-in handling (rating value/count, recent-buyers label and count, review fields). Use it for another field in your setup that turns out to be noisy.
proxyobjectApify Residential, country PLConnection settings. Allegro serves pages only to a Polish consumer-class connection, so keep the Residential (Poland) preset.
mcpConnectorsarrayno default (empty)Optional: send a summary of each offer to apps you authorized under Integrations.
notionParentPageUrlstringno default (empty)Notion connector only: page under which offer pages are created.
maxNotifyListingsinteger50Cap on how many offers are written to each selected connector per run. Does not affect the dataset.

Output Example

Sample shape: values are illustrative placeholders, not from a live offer.

{
"offerId": "20000000001",
"title": "Sample Smartphone 8 GB / 128 GB 5G",
"brand": "Apple",
"url": "https://allegro.pl/oferta/20000000001",
"price": 1234.56,
"currency": "PLN",
"originalPrice": 1499,
"deliveryInfo": "darmowa dostawa",
"freeDelivery": false,
"freeReturn": true,
"lowestDeliveryPrice": 9.99,
"sponsored": false,
"bestPriceGuarantee": true,
"smart": true,
"sellerName": "sample_seller",
"sellerBusiness": true,
"sellerFeedbackPercent": 98.5,
"superSeller": false,
"category": "320000",
"parameters": {
"Kolor": "czarny",
"Pamięć RAM": "8 GB",
"Wbudowana pamięć": "128 GB"
},
"image": "https://a.allegroimg.com/s180/sample/sample-thumbnail",
"images": [
"https://a.allegroimg.com/s360/sample/sample-1",
"https://a.allegroimg.com/s360/sample/sample-2"
],
"ratingValue": 4.9,
"ratingCount": 228,
"offerCount": 75,
"hasVariants": true,
"recentBuyersLabel": "381 osób kupiło ostatnio",
"sourceUrl": "https://allegro.pl/listing?string=smartfon",
"sourceLabel": "search-1:smartfon"
}

With fetchDetails on, an enriched row also carries:

{
"gtin": "0195950627114",
"detailRatingValue": 4.9,
"detailRatingCount": 228,
"returnPolicyDays": 30,
"returnPolicyUrl": "https://allegro.pl/regulaminy/polityka-reklamacji-i-zwrotow-na-allegro-sample",
"reviews": [
{
"rating": 5,
"date": "2026-07-26T14:26:15.391Z",
"author": "S...1",
"text": "Sample review text.",
"pros": ["Fast delivery"],
"cons": ["None"]
}
],
"reviewsCollected": 1
}

Plan Requirement

Keep the default Apify Residential proxy with country Poland; Allegro serves pages only to a Polish consumer-class connection, and the actor rotates connections automatically when one is refused. maxItems is a maximum cap, not a guaranteed count: a run can save fewer offers when the phrase, link or keyword filter matches fewer active offers.

FAQ

How much does it cost?

You pay per offer returned, plus an optional charge per offer actually enriched when Fetch full offer details is on. Reviews are included in the enrichment charge. The Pricing tab shows the current rates. Use Max items to cap the cost of any run.

Can I search by barcode?

Yes. Put an EAN/GTIN/UPC barcode in the Barcodes field (search mode), Allegro's own search resolves it straight to the matching product, the same way a text phrase does.

This actor collects only publicly available marketplace data. You are responsible for how you use it: follow Allegro's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Prices and offer facts are generally not protected, but seller content, photos and brand names may be subject to third-party rights.

Can I get only new or changed offers on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated offers, and unchanged ones are not billed unless you turn on Emit unchanged.

URL mode only reads Allegro listing and search pages. An offer page is treated as unreadable, so a run whose only source is an offer link fails with a connection message even though your connection is fine. Paste a /listing?... link, or use Search phrases to find the offer by name.

Why did my run fail instead of returning an empty dataset?

If the connection cannot reach readable pages, or your account lacks access to the selected proxy group, the run stops with a clear message so "no matching offers" is never confused with "nothing could be read". A genuinely empty search (every page read fine, nothing matched) succeeds quietly and simply saves no rows.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push offers into Notion, Linear or Airtable.

🔗 More scrapers you might like

Pair this actor with these related scrapers from the same team:

🏠 Otodom.pl Scraper
Scrape Otodom.pl properties for sale and rent, including apartments, houses, plots...
🛒 MediaMarkt.es Scraper
Scrape MediaMarkt Spain (mediamarkt.es) products: current price, strike-through original...
🛒 BIG W Marketplace Scraper
Scrape BIG W Marketplace seller listings from bigw.com.au: name, brand, price, was-price...
🧩 Walmart Scraper
Scrape Walmart.com by keyword, URL, or item ID. Extract prices, was-prices, sellers...
🏷️ bol.com Scraper
Scrape bol.com products: title, price, list price and discount, EAN, brand, images...
🧩 eMAG Scraper
Scrape eMAG products across Romania, Hungary, Bulgaria and Poland by keyword or URL...

👉 Browse all abotapi scrapers

💬 Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.