Allegro Scraper - Offers, Prices, Sellers & Reviews
Pricing
from $1.80 / 1,000 offer records
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
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Allegro Poland Marketplace Scraper
Extract offers from Allegro, Poland's #1 marketplace, into a clean Apify dataset. Search from your own phrases or paste Allegro listing links, then narrow the results by keyword. Every saved row carries the offer, price, delivery and seller fields the listing page exposes.
Why This Scraper?
- Two clear modes: build searches from your own phrases, or paste Allegro listing links (
/listing?string=...) and walk them forward. - Useful offer fields in every row: title, price, currency, delivery text, offer URL, image, category and the offer's own parameters (colour, memory, screen size, ...).
- Seller signals in the same row: seller login, business/private flag, positive-feedback percentage and the Super Seller badge.
- Sponsored and Best-price-guarantee flags are returned as data, so you can keep or drop promoted cards yourself instead of guessing.
- Output limits and the keyword filter apply in both modes, so a pasted-URL run can still be narrowed.
- MCP connector export can send a concise offer summary into Notion, Linear, Airtable, or Apify connectors while the full record stays in the dataset.
- Resume & recurring updates - turn on Incremental mode to get only NEW, UPDATED, and REAPPEARED offers on every scheduled run, or use Resume from a previous run to continue one interrupted crawl. See "Incremental & Dedup Mode" below.
Data You Get
Sample shape: values are illustrative placeholders, not from a live offer.
| Field | Example |
|---|---|
offerId | 10000000001 |
title | Sample Smartphone 8 GB / 128 GB 5G |
url | https://allegro.pl/oferta/10000000001 |
price | 1234.56 |
currency | PLN |
originalPrice | 1499 |
deliveryInfo | darmowa dostawa |
image | https://a.allegroimg.com/s180/sample/sample-thumbnail |
category | 320000 |
parameters | {"Kolor": "czarny", "Wbudowana pamięć": "128 GB"} |
sponsored | false |
bestPriceGuarantee | true |
sellerName | sample_seller |
sellerBusiness | true |
sellerFeedbackPercent | 98.5 |
superSeller | false |
sourceUrl | https://allegro.pl/listing?string=smartfon |
sourceLabel | search-1:smartfon |
How to Use
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}
Send an offer digest into an app connector:
{"mode": "search","queries": ["macbook"],"maxItems": 10,"mcpConnectors": ["YOUR_CONNECTOR_ID"],"notionParentPageUrl": "https://www.notion.so/your-page","maxNotifyListings": 10}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | Choose search to build searches from your phrases, or url for pasted Allegro listing links. |
queries | array | ["iphone"] | Search phrases for search mode. Each phrase is one search walk. |
startUrls | array | sample URL | Allegro listing/search URLs (/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. |
keywords | array | empty | Keeps only offers whose title contains at least one of these terms (case-insensitive). |
maxItems | integer | 20 | Maximum matching offers to save across the whole run. Minimum 1; the cap is always finite. |
maxPages | integer | 0 | Maximum result pages per phrase or pasted URL. 0 walks every result page; maxItems is the primary output cap. |
proxy | object | Apify residential, country PL | Connection settings. Allegro serves pages to Polish/EU visitors, so keep the Residential (Poland) preset. |
mcpConnectors | array | empty | Optional connector ids for sending a concise summary into your apps. |
notionParentPageUrl | string | empty | Required only for Notion page export. |
maxNotifyListings | integer | 50 | Maximum rows sent to each selected connector. Does not affect the dataset. |
resumeFromRunId | string | empty | Optional previous run ID (or dataset ID) from this actor. Offers already collected there (matched by offerId) are skipped, so the run returns only new ones. For recurring daily monitoring of the same search, use incrementalMode instead. |
incrementalMode | boolean | false | Daily/recurring monitoring of the same search. First run returns everything as NEW; later runs return only NEW/UPDATED/REAPPEARED by default. See below. |
stateKey | string | empty | Optional name for a monitoring campaign, so its incremental state stays stable or is deliberately shared. Auto-derived from your mode/phrases/URLs/keywords when left empty. |
emitUnchanged | boolean | false | Incremental mode only. Also return offers unchanged since the last run, marked UNCHANGED. Adds and bills extra rows you already have. |
emitExpired | boolean | false | Incremental mode only. Also return offers from a previous run that are no longer found, marked EXPIRED, once a run has fully scanned the search (not capped, not a resume). Adds and bills extra synthetic rows. |
Incremental & Dedup Mode
Incremental mode (incrementalMode) is for a schedule (for example, daily): the actor remembers the previous run of the same search by itself, so you never paste a run ID. The first run returns everything as NEW. Later runs return only NEW, UPDATED, and REAPPEARED offers by default; unchanged offers are suppressed (and not charged). Turn on emitUnchanged or emitExpired only when you also want those rows returned (and billed for). State is isolated per mode/phrases/URLs/keywords setup automatically; set stateKey to name or deliberately share a monitoring campaign.
This is a different tool from resumeFromRunId, which continues ONE specific interrupted run from a pasted run/dataset ID. Use resumeFromRunId after a run was cut off; use incrementalMode for a schedule that runs the same search again and again.
Every returned record in incremental mode also carries:
| Field | Meaning |
|---|---|
changeType | One of NEW, UPDATED, UNCHANGED, REAPPEARED, EXPIRED. |
changedFields | Names of the fields that changed since the last run (empty for NEW/UNCHANGED/REAPPEARED/EXPIRED). |
firstSeenAt | When this offer was first seen by this monitoring campaign. |
lastSeenAt | When this offer was last seen. |
EXPIRED rows are only produced when a run fully scans the tracked search end to end (no maxItems cap hit, no resumeFromRunId, every source read to its natural end) and emitExpired is on. A capped or resumed run leaves the previous state untouched for those offers rather than guessing they disappeared.
Example: run the same search every day and receive only changes:
{ "mode": "search", "queries": ["iphone"], "incrementalMode": true }
Output Example
Sample shape: values are illustrative placeholders, not from a live offer.
{"offerId": "10000000001","title": "Sample Smartphone 8 GB / 128 GB 5G","url": "https://allegro.pl/oferta/10000000001","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"}
When a search matches nothing, the run saves a single explanatory row instead of an empty dataset:
{"error": true,"code": "ZERO_RESULTS","message": "No matching offers were found. Try a broader phrase or fewer filters."}
Send Results Into Your Apps
The optional MCP connector inputs let you send a condensed, human-readable summary of each selected offer into your connected apps. Authorize a connector under Apify > Settings > API & Integrations, select it in mcpConnectors, and set notionParentPageUrl when using Notion.
The connector export is a side output. It does not change the dataset, and connector write errors do not fail the run. The complete record always remains available in the Apify dataset.
Plan Requirement
For best reliability, keep the default Apify Residential proxy with country Poland. maxItems is a maximum cap, not a guaranteed count; a run can save fewer rows when the phrase, URL and keyword filter match fewer active offers.