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

5.0

(1)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

3

Monthly active users

2 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 paste Allegro listing links, and every matching offer comes back with its price, delivery text, 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 and availability, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Two clear modes. Build searches from your own phrases, or paste Allegro listing/search links (/listing?string=...) and walk them forward from wherever they start.
  • Full offer rows. Title, price, currency, delivery text, offer URL, image, category and the offer's own parameters land in every row.
  • Seller signals included. Seller login, business/private flag, positive-feedback percentage and the Super Seller badge come with every offer, no extra toggle needed.
  • Sponsored 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 and availability, 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"
url"https://allegro.pl/oferta/20000000001"
price1234.56
currency"PLN"
originalPrice1499 (null when the offer shows no discount)
deliveryInfo"darmowa dostawa"
sponsoredfalse
bestPriceGuaranteetrue
sellerName"sample_seller"
sellerBusinesstrue
sellerFeedbackPercent98.5
superSellerfalse
category"320000"
parameters{"Kolor": "czarny", "Wbudowana pamięć": "128 GB"}
image"https://a.allegroimg.com/s180/sample/sample-thumbnail"
sourceUrl"https://allegro.pl/listing?string=smartfon"
sourceLabel"search-1:smartfon"

When Fetch full offer details is on, an enriched offer also carries detailDescription, detailBrand, detailSku, detailCategory, detailPrice, detailPriceCurrency and detailAvailability, parsed from the offer's own page and billed one Detail enrichment event per offer actually enriched. When Incremental mode is on, every returned offer also carries changeType (NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED), changedFields, firstSeenAt and lastSeenAt.

How to Use

  1. Pick a mode: search (build from your own phrases) or url (paste Allegro listing/search links).
  2. Fill in the phrases 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 fields.
  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 several phrases and keep only matching titles:

{
"mode": "search",
"queries": ["iphone", "macbook"],
"keywords": ["pro max", "etui"],
"maxItems": 25
}

Paste Allegro listing 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" }
],
"maxItems": 10
}

Search with full offer details enriched:

{
"mode": "search",
"queries": ["macbook"],
"fetchDetails": true,
"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?...). A single offer link (/oferta/... or /produkt/...) does not carry the search results the actor parses, and the run will fail if it's the only source, so paste a listing or search link instead, or use Search phrases to find the offer.

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. 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, or url for pasted Allegro listing links.
queriesarray["iphone"]Search phrases for search mode. Each phrase is one search walk.
startUrlsarrayno default (prefill: a sample listing URL)Allegro listing/search links (/listing?...) for URL mode. A &p=N in the link is honoured as the first page read. Single offer 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, detail price/currency and availability. Slower, and billed per offer actually enriched.
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.
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",
"url": "https://allegro.pl/oferta/20000000001",
"price": 1234.56,
"currency": "PLN",
"originalPrice": 1499,
"deliveryInfo": "darmowa dostawa",
"sponsored": false,
"bestPriceGuarantee": 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",
"sourceUrl": "https://allegro.pl/listing?string=smartfon",
"sourceLabel": "search-1:smartfon"
}

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. The Pricing tab shows the current rates. Use Max items to cap the cost of any run.

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
Pull property listings from Otodom.pl. Apartments, houses, plots, commercial, garages...
🧩 Walmart Scraper
Scrape Walmart.com by keyword, URL, or item ID. Extract prices, was-prices, sellers...
🧩 Letterboxd Scraper
Scrape Letterboxd films and reviews by search phrase, popular or genre lists, or film...
💼 Wellfound Jobs Scraper
Scrape startup jobs from Wellfound.com by keyword, location, role, or remote status...
🏷️ bol.com Scraper
Scrape bol.com products: title, price, list price and discount, EAN, brand, images...
🧩 eBay Scraper
Scrape eBay by keyword, category, seller or pasted link across 16 country storefronts...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 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 abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.