Allegro Scraper — Products, Prices & Seller Leads (NIP, Email) avatar

Allegro Scraper — Products, Prices & Seller Leads (NIP, Email)

Pricing

from $3.00 / 1,000 product scrapeds

Go to Apify Store
Allegro Scraper — Products, Prices & Seller Leads (NIP, Email)

Allegro Scraper — Products, Prices & Seller Leads (NIP, Email)

Rising star

Scrape Allegro.pl products by keyword, category, seller or offer URL — pure HTTP, no browser. Each row: price (+ original), seller rating, condition, parameters, images, Smart!/sponsored, offer count & recent-buyer sales-velocity. Deep mode adds rating+reviews, stock, GTIN, warranty. JSON/CSV

Pricing

from $3.00 / 1,000 product scrapeds

Rating

5.0

(3)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

5

Bookmarked

428

Total users

121

Monthly active users

1.4 hours

Issues response

2 hours ago

Last modified

Share

Allegro.pl Scraper — Products, Reviews, Seller Leads & Prices

Scrape Allegro.pl, Poland's #1 online marketplace, and its Czech and Slovak sites allegro.cz and allegro.sk, at scale. Search by keyword, browse any category or seller storefront, or paste product and offer URLs, then choose what you get back:

  • Products: one clean row per offer with price, original price and discount %, delivery cost, condition, star rating and rating count, seller reputation, parameters, images, Smart!/sponsored flags, search position (overall and among organic results), how many sellers carry the product, and a real sales-velocity signal ("how many people bought it recently"). Turn on deep mode to also pull the full description, complete spec table, stock quantity, GTIN/EAN, warranty and return policy from each offer page.
  • Product reviews: one row per buyer opinion, with stars, text, pros and cons, buyer photos, the variant bought, date, helpful votes and Allegro's translation for opinions written in another language, plus a summary of the product's traits from all its reviews. Read from Allegro's public review list.
  • Seller profiles: one row per seller, with company name, NIP (tax id), REGON, KRS, registered address, ratings and opening hours.

Or switch on B2B seller-lead mode to add each business seller's company identity (legal name, NIP, REGON, KRS and registered address) to every product row, together with the email, phone and website they publish. On paid plans, a Polish seller with no email on Allegro can have one looked up on the company's own website.

Pure HTTP, no browser, so it's fast, light and cheap per row.

How the Allegro.pl Scraper works

Why use this Allegro scraper

  • 🟠 Three datasets in one actor. Products, product reviews or seller profiles: pick one with What to collect (dataType).
  • 📈 Signals competitors don't expose. Sales-velocity popularity ("1 378 people bought recently"), productOffersCount (how many sellers list the same product), Smart! eligibility, Allegro's own struck-through price and -N% discount badge, and each offer's place in the results, overall and among organic offers. When Allegro shows an offer twice on a page, once as an ad and once as an organic result, you get one row that says so.
  • ⭐ Fast product reviews. Opinions come from Allegro's public review list, 500 per request, with no anti-bot wall in the way: a product with 1,200 opinions takes three requests. Each row carries the buyer's photos, the variant they bought and Allegro's translation of foreign-language opinions.
  • 🔍 Deep mode when you need it. Optionally enrich each product with full description, the complete parameter table, review count + score distribution, exact stock quantity, GTIN/EAN, warranty and return policy, and full-resolution images. Offer pages read in your runs over the last 7 days are reused, every row says how old its detail is, and you can set a shorter limit.
  • 🌍 allegro.cz and allegro.sk too. Search either site with Site for search queries, or paste its URLs. Rows come in CZK or EUR, with that site's offer and seller links.
  • 🧭 Six ways in. Keyword search, category URL, a seller's whole storefront, a catalog product page, a product's offers page, or specific offer URLs, all auto-detected.
  • ⚡ No browser, no proxy setup. The actor brings its own residential proxies and retries blocked pages for you; it reads Allegro's own embedded JSON, paginates and dedupes.
  • 🏢 Seller leads, not just products. Optional B2B mode adds each company seller's legal name, NIP / REGON / KRS, registered address and real email + phone + website, surfaced as plain sellerEmail / sellerPhone / sellerWebsite columns. When no email is published on Allegro, paid-plan runs can look for one on the company's own website and keep it only when that site shows the same NIP or legal name. That website lookup covers Polish companies on allegro.pl only.
  • 💸 Pay per row. One product, review or seller profile = one charge. Listing mode pulls ~60 products per request.

Overview

Allegro.pl is the largest e-commerce platform in Poland and Central Europe, with tens of millions of offers. This actor extracts data from it without a headless browser: it requests the same pages your browser does, reads the structured JSON Allegro embeds in every listing and offer page, and normalizes it into one tidy record per row. Allegro guards its pages with an anti-bot wall (DataDome), so requests go out through residential proxies chosen per site and blocked pages are retried on other routes. Product reviews come from a public Allegro endpoint that has no wall.

allegro.cz and allegro.sk use the same page format and are read the same way. Their rows have Czech or Slovak text, prices in CZK or EUR, and links on their own site. Their pages take longer to load than allegro.pl's.

What a run saves is set by What to collect (dataType):

dataTypeOne row perRead from
products (default)offerSearch, category, seller and product-offers listings; the offer page for offer URLs, deep mode and seller leads
productReviewsbuyer opinion on a catalog productAllegro's public review list, 500 opinions per request, for each product found in the listing (or named by a /produkt/ URL)
sellerProfilesellerThe seller card on one of that seller's offer pages

It works for price monitoring, search-rank tracking, competitor and assortment analysis, review and sentiment analysis, sourcing, market research, B2B lead lists and price-comparison feeds, at the scale of thousands of rows per run.

Supported inputs

InputExampleWhat you get
Search querylaptop gamingEvery matching offer, paginated, with your price/condition/sort filters, on the site set by Site for search queries (allegro.pl by default)
Category URLhttps://allegro.pl/kategoria/laptopy-491The full category, paginated
Seller storefronthttps://allegro.pl/uzytkownik/KongEvery offer from one seller
Catalog product pagehttps://allegro.pl/produkt/ekspres-cisnieniowy-do-kawy-krups-evidence-ea8948-automatyczny-bf7745d0-3150-4389-ae97-8405354bb136Every seller's offer of that product (read from its offers page). With ?offerId=N in the URL, only that offer. In review mode, that product's opinions.
Product offers pagehttps://allegro.pl/oferty-produktu/ekspres-cisnieniowy-do-kawy-krups-evidence-ea8948-automatyczny-bf7745d0-3150-4389-ae97-8405354bb136Every seller's offer of one catalog product, paginated
Offer URLhttps://allegro.pl/oferta/18581001532A single product (always full-detail)

Mix them freely: provide a list of search queries and a list of start URLs in the same run. A product page works with or without the name part (/produkt/{id}) and with a trailing /opinie.

allegro.cz and allegro.sk URLs are read on their own site, whatever Site for search queries says:

Pageallegro.czallegro.sk
Searchhttps://allegro.cz/vyhledavani?string=iphone%2015https://allegro.sk/vyhladavanie?string=notebook
Categoryhttps://allegro.cz/kategorie/{slug}-{id}https://allegro.sk/kategoria/{slug}-{id}
Seller storefronthttps://allegro.cz/uzivatel/Nootihttps://allegro.sk/pouzivatel/goodgoods_sk
Partner shop (CZC, MALL)https://allegro.cz/obchod/czc-czhttps://allegro.sk/obchod/MALLShop-sk
Offerhttps://allegro.cz/nabidka/{offerId}https://allegro.sk/ponuka/{offerId}
Catalog producthttps://allegro.cz/produkt/{slug}-{uuid}https://allegro.sk/produkt/{slug}-{uuid}

An allegro.pl-style search URL pasted on either site (allegro.cz/listing?string=…) is read as that site's search, and a partner shop's page as its offer list (/obchod/czc-cz/nabidky, /obchod/MALLShop-sk/ponuky). allegro.hu start URLs are skipped with a warning in the log and the run's status message, and allegro.com links are read as allegro.pl.

Use cases

  • Competitor price tracking: monitor prices, discounts and Smart! eligibility across sellers over time.
  • Search-rank tracking: see where your offers and your competitors' land for a keyword, overall and among organic results, and which of them Allegro also shows as ads.
  • Market & assortment research: map an entire category, see which products sell (sales-velocity), and how many sellers carry each one.
  • Czech and Slovak markets: the same research on allegro.cz and allegro.sk, in CZK and EUR.
  • Review and sentiment analysis: pull every opinion on your products or a competitor's, with stars, pros and cons, photos and the variant bought, plus Allegro's own summary of what buyers praise and criticise.
  • Sourcing & procurement: shortlist suppliers by seller rating, feedback count and stock depth; match products by GTIN/EAN.
  • Price-comparison & catalog apps: feed real, structured Allegro product data into your own shopping or comparison engine.
  • Business intelligence: push product-level pricing and demand signals into dashboards.
  • Brand & MAP monitoring: track who sells your products, at what price, and whether listings are sponsored. Start from a product page to get every seller's offer of one product.
  • B2B lead generation: build a list of Polish business sellers with legal name, NIP, address and a verified contact email for outreach, either per product or as one seller profile row per seller.

How it works

  1. Load the page. Requests go out through residential proxies: Polish and German IPs for allegro.pl, and for allegro.cz and allegro.sk the exits that get their pages, which is slower. Allegro guards its pages with DataDome, so a page that comes back blocked is retried through other proxy pools and, as a last resort, an unblocking service. Listing pages get through far more often than offer pages, so modes that open offer pages (offer URLs, deep mode, seller leads, seller profiles) are slower and can return fewer rows than asked. When pages could not be loaded, the run's status message says how many, and running it again retries them.
  2. Read the embedded JSON. Allegro ships a __listing_StoreState object in each listing page and a deep facade object in each offer page. The actor parses those directly, so all fields are structured (not scraped off the rendered DOM).
  3. Paginate, dedupe and rank. It walks pages (~60 products each, up to Allegro's 100-page cap) until your per-query limit is reached, deduping by offerId. Each row gets its place in the results: position counts every offer once, organicPosition counts only the non-sponsored ones, and page is the listing page it was found on. When a page shows an offer twice, as an ad and as an organic result, the two copies become one row with sponsoredAndOrganic: true.
  4. Product reviews. In productReviews mode, every listing row tied to a catalog product, and every /produkt/ URL, is looked up on Allegro's public review list, 500 opinions per request, until Max reviews per product is reached. Each product is read once, even when several sellers list it. Offers that aren't tied to a catalog product have no product reviews and are skipped. Translations and trait names come in the site's language: Polish for allegro.pl, Czech for allegro.cz, Slovak for allegro.sk. An offer page is opened only for offer URLs you give, or when the review list doesn't answer.
  5. Seller profiles. In sellerProfile mode, the actor opens one offer page per seller found in the listing and saves the seller card as one row.
  6. Optionally go deep. With Scrape full product details enabled, it visits each offer page and merges the rich offer dataset onto the row. Offer pages read in your runs over the last 7 days are reused instead of read again; Max age of cached offer details sets a shorter limit. Either way, the price, discount, delivery, rating, recent buyers and seller positive % shown in the current run's listing win over the offer page's copy, and each row says when its offer page was read (detailFetchedAt) and whether it came from the stored copy (detailFromCache).
  7. Optionally collect seller leads. With Collect seller lead data on, it reads the DSA/Omnibus trader block (legal name, NIP, REGON, KRS, address) from the offer page. With Find seller emails off-platform also on (paid plans only, allegro.pl rows only), any seller with a NIP but no published email has its own website looked up: the site it links on its Allegro page, or a domain that matches its legal name. The actor reads that site's contact and terms pages. An email is kept only when the same site shows the seller's NIP or exact legal name; the pages are returned as source URLs. One lookup per unique seller, cached. An AI web search on the NIP and legal name, for sellers whose site isn't found that way, is not part of customer runs yet: it will be switched on once it has its own price on the Pricing tab.
  8. Normalize. One clean record per row, tagged with its source query/URL and scrape timestamp.

Input configuration

FieldTypeDefaultDescription
searchQueriesarray["laptop gaming"]Keywords to search; each runs its own paginated crawl.
marketselectplSite the search queries run on: pl (allegro.pl, PLN), cz (allegro.cz, CZK) or sk (allegro.sk, EUR). Start URLs are always read on their own site.
startUrlsarray[]Direct offer, search, category, seller, catalog product (/produkt/) or product-offers URLs on allegro.pl, allegro.cz or allegro.sk (see Supported inputs). allegro.hu is skipped.
dataTypeselectproductsWhat to collect: products, productReviews or sellerProfile (see Overview). Each saved row is one result.
maxItemsPerQueryinteger100Max products per query or per listing URL (search/category ≤ ~6000; seller storefronts uncapped). In review and seller-profile modes, how many products are read per query.
maxItemsinteger—Optional cap on rows saved in the whole run, across all queries and URLs.
maxReviewsPerProductinteger0Review mode only: opinions saved per product, in Allegro's order (0 = all).
minPrice / maxPriceinteger—Price range filter in the site's currency: PLN on allegro.pl (price_from / price_to), CZK on allegro.cz and EUR on allegro.sk (cena-od / cena-do).
conditionselectallall, new (nowe / nové) or used (używane / použité).
sortByselectrelevancerelevance, price-asc, price-desc, newest.
scrapeProductDetailsbooleanfalseVisit each offer page for the deep dataset (1 extra request/product).
allOffersPerProductbooleanfalseProducts mode, allegro.pl only: for each product that more sellers offer, also read its offers page and return every seller's offer (useful for barcode / EAN price checks). More rows, each billed as one result; the search's own results come first and the per-query and run caps still apply.
maxDetailAgeHoursinteger—Products mode with deep mode or seller leads on: the oldest stored offer page a run may reuse, in hours. Older copies are read again; if the page doesn't load, the older copy is kept. Empty = 7 days, 0 = read every offer page again. Seller lead data also has its own seller cache, kept up to 30 days, which this doesn't shorten.
includeRawDatabooleanfalseAttach the raw Allegro offer object (deep mode only). Stored offer pages aren't reused while it's on.
barcodeQuickLookupbooleantrueWhen a search query is a pure EAN/GTIN (8–14 digits) and maxItemsPerQuery is 1, skip the offer page in deep mode; the row keeps the searched barcode in gtin. Much faster for big barcode lists; turn it off if those rows need description, stock or warranty.
scrapeSellerContactbooleanfalseAdd B2B seller-lead data: company legal name, NIP, REGON, KRS, address, and any email/phone/website the seller publishes. Visits the offer page (like deep mode). Company sellers only. In sellerProfile mode it adds the published email and phone to each profile.
enrichEmailsbooleanfalseWhen a seller has no email on Allegro, look for one on the company's own website (the site it links on Allegro, or a domain matching its legal name), kept only when the site shows the same NIP or legal name. Requires scrapeSellerContact. Paid plans only; Polish companies on allegro.pl rows only.
geoCodestringplExit country for the last-resort unblocking service. Keep pl; the residential proxies pick their exits by site.
concurrencyinteger10Pages fetched in parallel (1–50).

Example input

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

allegro.cz / allegro.sk example

New iPhones from 5,000 CZK up on allegro.cz, cheapest first:

{
"market": "cz",
"searchQueries": ["iphone 15"],
"minPrice": 5000,
"condition": "new",
"sortBy": "price-asc",
"maxItemsPerQuery": 100
}

For allegro.sk, set "market": "sk" (prices in EUR), or paste a URL such as https://allegro.sk/vyhladavanie?string=notebook into startUrls.

Daily monitoring with fresh offer details

Deep mode that reuses offer pages read in the last 24 hours and reads older ones again:

{
"searchQueries": ["lego technic"],
"maxItemsPerQuery": 100,
"scrapeProductDetails": true,
"maxDetailAgeHours": 24
}

Product reviews example

Up to 200 opinions each for the first 10 products of a search, plus every opinion on one product page:

{
"dataType": "productReviews",
"searchQueries": ["ekspres do kawy"],
"startUrls": [
{ "url": "https://allegro.pl/produkt/ekspres-cisnieniowy-do-kawy-krups-evidence-ea8948-automatyczny-bf7745d0-3150-4389-ae97-8405354bb136" }
],
"maxItemsPerQuery": 10,
"maxReviewsPerProduct": 200
}

Seller profiles example

{
"dataType": "sellerProfile",
"searchQueries": ["perfumy damskie"],
"maxItemsPerQuery": 50,
"scrapeSellerContact": true
}

Seller-lead example (B2B)

{
"searchQueries": ["perfumy damskie"],
"maxItemsPerQuery": 100,
"scrapeSellerContact": true,
"enrichEmails": true,
"geoCode": "pl"
}

Output overview

Each run saves one kind of row, set by dataType:

  • Products (default): one row per offer. Listing fields are always present, including the rank fields position, organicPosition, page and sponsoredAndOrganic; detail is populated only when Scrape full product details is on; detailFetchedAt / detailFromCache appear on rows that went through an offer page (deep mode, seller leads, offer URLs); sellerCompany, nip and the top-level sellerEmail / sellerPhone / sellerWebsite are populated only when Collect seller lead data is on (for company sellers).
  • Product reviews: one row per opinion, marked "type": "productReview".
  • Seller profiles: one row per seller, marked "type": "sellerProfile".

In the Output tab, pick the Products, Product reviews or Seller profiles view to match the run. JSON, CSV and Excel exports carry every field.

Output sample: product

A discounted listing row, the first offer on its search page (image and parameter lists shortened):

{
"offerId": "18538489478",
"productId": "4e86711f-569e-442b-a75c-4fb9b38b56ad",
"gtin": null,
"url": "https://allegro.pl/oferta/18538489478",
"title": "LEGO Creator 3w1 31136 Egzotyczna papuga klocki prezent",
"brand": null,
"price": { "amount": 61.54, "currency": "PLN" },
"originalPrice": { "amount": 66.74, "currency": "PLN" },
"discountPercent": 7,
"priceWithDelivery": { "amount": 87.53, "currency": "PLN" },
"condition": null,
"delivery": { "free": false, "freeReturn": false, "lowestCost": { "amount": 25.99, "currency": "PLN" }, "label": "87,53 zł z dostawą" },
"seller": { "id": "135843523", "login": "MaxiDomix23", "name": "Firma", "company": true, "superSeller": false, "positiveFeedbackPercent": 93.7, "url": "https://allegro.pl/uzytkownik/MaxiDomix23" },
"sponsored": false,
"sponsoredAndOrganic": false,
"position": 1,
"organicPosition": 1,
"page": 1,
"promoted": false,
"smart": false,
"productOffersCount": 491,
"popularity": { "label": "1 378 osób kupiło ostatnio", "buyersQuantity": 1378 },
"rating": { "value": 4.99, "count": 8679 },
"parameters": [ { "name": "Wiek dziecka", "value": "7 lat +" }, { "name": "Marka", "value": "LEGO" }, { "name": "Liczba elementów", "value": "253" } ],
"images": ["https://a.allegroimg.com/s720/11417b/020641c245939e70af8a8955e85c/LEGO-Creator-3w1-31136-Egzotyczna-papuga-klocki-prezent"],
"thumbnail": "https://a.allegroimg.com/s180/11417b/020641c245939e70af8a8955e85c/LEGO-Creator-3w1-31136-Egzotyczna-papuga-klocki-prezent",
"categoryId": "305697",
"installments": null,
"searchQuery": null,
"sourceUrl": "https://allegro.pl/listing?string=lego&sezonowe-oferty-i-rabaty=1&price_from=0",
"scrapedAt": "2026-10-21T12:00:00.000Z"
}

Output sample: allegro.sk product

An offer Allegro showed both as an ad and as the first organic result, merged into one row (lists shortened). allegro.cz and allegro.sk search cards carry no delivery price or instalment plan, so those fields are null (partner-shop offer lists do show the delivery price):

{
"offerId": "16984071357",
"productId": "99bb3657-b1a1-4740-b0a0-fa925208c67f",
"gtin": null,
"url": "https://allegro.sk/ponuka/16984071357",
"title": "Notebook Umax UMM230240 14,1\" Intel Celeron 4 GB / 128 GB sivý",
"brand": null,
"price": { "amount": 177.3, "currency": "EUR" },
"originalPrice": null,
"discountPercent": null,
"priceWithDelivery": null,
"condition": null,
"delivery": { "free": false, "freeReturn": false, "lowestCost": null, "label": null },
"seller": { "id": "115885366", "login": "MALLShop-sk", "name": null, "company": true, "superSeller": false, "positiveFeedbackPercent": 97.8, "url": "https://allegro.sk/obchod/MALLShop-sk" },
"sponsored": true,
"sponsoredAndOrganic": true,
"position": 2,
"organicPosition": 1,
"page": 1,
"promoted": false,
"smart": true,
"productOffersCount": 1,
"popularity": { "label": "12 osôb si nedávno kúpilo", "buyersQuantity": 12 },
"rating": { "value": 4.13, "count": 23 },
"parameters": [ { "name": "Rozloženie klávesnice", "value": "CZ-SK (qwertz)" }, { "name": "Uhlopriečka obrazovky", "value": "14.1\"" } ],
"images": ["https://a.allegroimg.com/s720/25652b/73e2691f4f1590cd801b095ee0f7/Umax-VisionBook-14WRx-siva-UMM230240"],
"thumbnail": "https://a.allegroimg.com/s180/25652b/73e2691f4f1590cd801b095ee0f7/Umax-VisionBook-14WRx-siva-UMM230240",
"categoryId": "491",
"installments": null,
"searchQuery": null,
"sourceUrl": "https://allegro.sk/vyhladavanie?string=notebook",
"scrapedAt": "2026-10-21T20:47:12.404Z"
}

Deep-mode fields (when Scrape full product details is on)

Each product row also gets a detail object, and says when that offer page was read and whether it came from the copy stored by an earlier run:

{
"detailFetchedAt": "2026-10-20T14:10:38.000Z",
"detailFromCache": true,
"detail": {
"stock": { "available": 3689, "label": "z 3 689 sztuk", "unit": "UNIT" },
"gtin": "5907494722515",
"rating": { "value": 4.9, "count": 97, "title": "Rewelacyjny", "reviewsCount": 39, "bestOpinion": "Bardzo polecam...", "distribution": [ { "score": 5, "count": 90, "percentage": 93 } ] },
"returnPolicy": { "withdrawalPeriod": "14 dni", "costLabel": "kupujący lub za darmo dla wybranych metod Smart!" },
"warranty": { "period": "24 miesiące", "type": "producenta/dystrybutora", "label": "..." },
"breadcrumbs": ["Allegro", "Elektronika", "Telefony i Akcesoria", "Akcesoria GSM", "Folie i szkła ochronne"],
"parameterGroups": [ { "group": "Dane podstawowe", "parameters": [ { "name": "Stan", "value": "Nowy" } ] } ],
"description": "…full product description text…",
"images": ["https://a.allegroimg.com/original/...full-res…"]
}
}

Output sample: product review (dataType: "productReviews")

The product's featured opinion (trait list shortened from nine entries):

{
"type": "productReview",
"reviewId": "692c6a1e316c1bd9d82a2e32",
"offerId": "18040973540",
"productId": "bf7745d0-3150-4389-ae97-8405354bb136",
"offerUrl": "https://allegro.pl/oferta/18040973540",
"author": "K...F",
"rating": "5",
"ratingPercentage": 100,
"isBest": true,
"text": "Kompaktowych rozmiarów ekspres oferuje wszystkie potrzebne funkcje . W tej cennie bez zastrzeżeń , dobrze wykonany, prosty w obsłudze. …",
"pros": "Szybko się włącza, Spory zbiornik na wodę",
"cons": "BRAK",
"images": [],
"createdAt": "2025-11-30T16:00:30.463Z",
"createdAtLabel": null,
"helpfulYes": 0,
"helpfulNo": 0,
"sourceLanguage": "pl-PL",
"sourceType": "ALLEGRO",
"isTranslated": false,
"translatedText": null,
"translatedPros": null,
"translatedCons": null,
"translationLanguage": null,
"variant": [],
"sellerLogin": "Krups_Polska",
"productFeatures": [
{ "name": "Smak kawy", "sentiment": "POSITIVE", "mentions": 8, "positive": 8, "negative": 0, "neutral": 0 },
{ "name": "Spienianie mleka", "sentiment": "NEUTRAL", "mentions": 5, "positive": 3, "negative": 2, "neutral": 0 }
],
"scrapedAt": "2026-10-21T13:59:39.442Z"
}

Other opinions fill the photo, variant and translation fields. A Slovak opinion on the same product, imported from the MALL shop, with Allegro's Polish translation:

{
"text": "S kavovarom som veľmi spokojný. Veľký počet nápojov. Jednoduché ovládanie. …",
"sourceLanguage": "sk-SK",
"sourceType": "MALL",
"isTranslated": true,
"translatedText": "Jestem bardzo zadowolony z ekspresu do kawy. Duża ilość napojów. Prosta kontrola. …",
"translatedPros": "Szybko się włącza, Smaczna kawa, Duży zbiornik na wodę",
"translatedCons": "Nie posiada czujnika opróżniania misek",
"translationLanguage": "pl-PL"
}

And an opinion on a set of tyres, with the buyer's photo and the size they bought:

{
"text": "Super jakość",
"images": ["https://a.allegroimg.com/original/363143/96c75839420a80295df005eb38e9"],
"variant": [ { "name": "Rozmiar", "value": "205/55R16" } ]
}

Output sample: seller profile (dataType: "sellerProfile")

{
"type": "sellerProfile",
"sellerId": "124622481",
"login": "NavitelPoland",
"name": "Navitel",
"superSeller": true,
"shopUrl": "https://allegro.pl/uzytkownik/NavitelPoland",
"positivePercent": 99.7,
"positiveCount": 1495,
"negativePercent": 0.3,
"negativeCount": 4,
"openHours": [],
"openingHours": [],
"legalName": "NAVITEL POLAND SPOLKA",
"representative": null,
"taxId": "5342501653",
"regon": null,
"krs": null,
"address": { "street": "Aleja Krakowska 213", "zipCode": "02-180", "city": "Warszawa", "country": "Polska", "countryCode": "PL" },
"verified": true,
"phones": [],
"emails": [],
"website": null,
"sourceUrl": "https://allegro.pl/oferta/17291189625",
"scrapedAt": "2026-10-21T12:00:00.000Z"
}

Seller-lead fields (when Collect seller lead data is on)

Added to each product row for company sellers. The primary email/phone/website are mirrored to top-level columns; the full lists stay under sellerCompany.

{
"nip": "9570487883",
"sellerEmail": "info@kozak.pl",
"sellerPhone": "58 520 10 90",
"sellerWebsite": "https://kozak.pl",
"sellerCompany": {
"legalName": "KOZAK Piotr Kozak",
"representative": null,
"taxId": "9570487883",
"regon": null,
"krs": null,
"address": { "street": "ul. Politechniczna 7", "zipCode": "80-288", "city": "Gdańsk", "country": "Polska", "countryCode": "PL" },
"verified": true,
"phones": ["58 520 10 90"],
"emails": ["info@kozak.pl"],
"website": "https://kozak.pl",
"emailSources": ["https://kozak.pl/kontakt-i-dane-firmy"]
}
}

Key output fields

Products

FieldDescription
offerIdAllegro offer id (stable key; allegro.pl/oferta/{offerId}, allegro.cz/nabidka/{offerId} or allegro.sk/ponuka/{offerId} resolves to the offer).
productIdAllegro catalog product id: the same product across many sellers, and across allegro.pl, .cz and .sk.
urlThe offer on the site it was listed on: allegro.pl/oferta/…, allegro.cz/nabidka/… or allegro.sk/ponuka/….
title · brandOffer title and brand.
priceCurrent price, in the site's currency: PLN, CZK or EUR.
originalPrice · discountPercentFilled on discounted listing rows: the struck-through price Allegro shows, which under EU price rules is the lowest price of the 30 days before the cut (not a list price), and Allegro's own -N% badge. When a card has no percentage badge, the percent is worked out from the two prices and rounded down, as Allegro does. null when the offer isn't discounted.
priceWithDelivery · deliveryTotal with cheapest delivery; free-delivery / free-return flags; lowest delivery cost. allegro.cz and allegro.sk search cards carry no delivery price, so priceWithDelivery, delivery.lowestCost and delivery.label are null on those rows. Their partner-shop offer lists (/obchod/…/nabidky, /obchod/…/ponuky) show all three, and offer-URL rows have the total.
conditionNowy / Używany on allegro.pl, nové / použité / vystavené on allegro.cz and .sk, when the listing shows it.
sellerid, login, company flag, superSeller, positiveFeedbackPercent, storefront URL on the row's site (partner shops such as CZC and MALL at /obchod/…).
sponsored · sponsoredAndOrganicsponsored is true when any copy of the offer on its listing page was an ad. sponsoredAndOrganic is true when that page showed it both as an ad and as an organic result; the two copies are one row.
position · organicPosition · pageThe offer's place in its search query's or start URL's results, each offer counted once, starting at 1 on the first page read (a start URL with p=101 counts from page 101). organicPosition is the same count among non-sponsored offers only, and null for an offer shown only as an ad. page is the listing page it was found on. Both places are null when an earlier page didn't load, and all three on offer-URL rows.
promoted · smartAllegro's promoted flag and Smart! eligibility.
productOffersCountHow many offers Allegro lists for the same catalog product. Rows from a product's offers page (/oferty-produktu/, and /produkt/ URLs, which are read through it) get that page's offer count, which follows the run's price and condition filters. null when Allegro doesn't show the count, or the offer isn't tied to a catalog product.
popularity.buyersQuantityRecent buyers: a real sales-velocity signal. Taken from the listing of the current run when it shows it, from the offer page otherwise.
ratingThe catalog product's average stars and rating count, on listing rows too. Taken from the listing of the current run when it shows it, from the offer page otherwise. null when the product has no ratings.
parameters · images · thumbnailSpec name/value pairs, product images and the card thumbnail.
gtinGTIN/EAN barcode from the offer page (deep mode). When a search query is itself a barcode (8–14 digits), the rows from that search carry the searched barcode unless the offer page gives one; with more than one product per query, that includes any other products Allegro returned for the search.
installmentsMonthly instalment plan label, when offered. null on allegro.cz and allegro.sk listing rows, whose cards don't state one.
searchQuery · sourceUrl · scrapedAtThe search query or start URL the row came from, and the scrape time.
detailFetchedAt · detailFromCacheWhen the row's offer page was read, and whether it was the copy stored by an earlier run (up to 7 days old, or Max age of cached offer details). detailFetchedAt is null when a deep-mode row has no offer page (barcode quick-lookup, or the page didn't load). Listing-only rows don't carry these fields. Seller lead data often comes from a separate seller cache instead (kept up to 30 days, whatever the max age): these fields don't describe it, and a seller-lead row filled only from that cache doesn't carry them.
detail.stockExact available quantity.
detail.ratingAverage, count, verbal grade, review count, score distribution, featured opinion, as the offer page showed them at detailFetchedAt.
detail.warranty · detail.returnPolicyWarranty period/type and return terms.
detail.description · detail.parameterGroupsFull description and grouped spec table.
nipSeller's Polish tax id, normalized to 10 digits (B2B mode). null for foreign / non-company sellers.
sellerEmail · sellerPhone · sellerWebsitePrimary seller contact, as top-level columns (B2B mode).
sellerCompanyFull company block: legalName, taxId, regon, krs, address, verified, all emails / phones, website, and emailSources (the URLs an enriched email was found on).

Product reviews

FieldDescription
reviewIdAllegro's opinion id (each opinion is saved once per run).
productIdThe catalog product the opinion belongs to.
offerId · offerUrlThe offer the product was found through; null for a product URL without ?offerId=.
authorReviewer name as Allegro shows it (masked, e.g. K...F).
rating · ratingPercentageStars as Allegro labels them ("5") and the same score out of 100.
isBestAllegro's BEST flag: an opinion it features for the product.
text · pros · consThe opinion and its pros and cons, in the author's own words and language (sourceLanguage).
imagesFull-size photos the buyer added; empty when there are none.
createdAt · createdAtLabelDate posted (ISO) and Allegro's own date label when it gives one.
helpfulYes · helpfulNoHelpful / not helpful votes.
sourceLanguage · sourceTypeLanguage of the opinion, and where it was written: ALLEGRO, or a partner shop it was imported from (CZC, MALL).
isTranslated · translatedText · translatedPros · translatedCons · translationLanguageAllegro's translation of an opinion written in another language: into Polish (pl-PL) on allegro.pl runs, Czech (cs-CZ) on allegro.cz and Slovak (sk-SK) on allegro.sk. null when the opinion needed none.
variantThe variant the buyer bought, e.g. [{ "name": "Rozmiar", "value": "205/55R16" }]. A product's opinions cover all its variants, so this can differ from the offer's own.
sellerLoginThe seller the reviewer bought from. null on opinions imported from CZC or MALL.
productFeaturesAllegro's summary of the product's traits from all its opinions: name, overall sentiment (POSITIVE, NEUTRAL, NEGATIVE), and how many opinions mention it (mentions, positive, negative, neutral). The same on every row of a product.

Seller profiles

FieldDescription
sellerId · login · name · shopUrlSeller id, login, display name and storefront URL.
superSellerAllegro Super Seller badge.
positivePercent · positiveCount · negativePercent · negativeCountBuyer ratings from the last 12 months.
openHours · openingHoursOpening hours as Allegro publishes them, and as one line per day group. Empty when the seller publishes none.
legalName · representative · taxId · regon · krs · address · verifiedCompany identity from the DSA/Omnibus trader block (company sellers only).
emails · phonesEmail and phone the seller publishes on Allegro; filled only with Collect seller lead data on, each billed once per seller.
websiteWebsite taken from the seller's Allegro storefront text, when there is one.
sourceUrl · scrapedAtThe offer page the profile was read from, and the scrape time.

FAQ

Do I need a proxy or any setup? No. The actor brings its own residential proxies, retries blocked pages itself and runs self-contained.

Why did my run return fewer rows than I asked for? Allegro's anti-bot wall blocks some requests, and offer pages far more often than listing pages. When pages could not be loaded, the run finishes with a status message such as "Finished with 40 products. 3 of 10 pages could not be loaded; run again to retry them." Running it again retries those pages. Offer pages on allegro.cz and allegro.sk load less often still: in a test run on allegro.cz, 6 of 10 loaded. The review list itself has no wall, so reviews of /produkt/ URLs are rarely affected; a review run that starts from a search or category still has to load that listing first. When a page of the review list doesn't load, the status message says how many products came back with only part of their reviews.

Why are some fields (GTIN, stock, condition) empty in listing mode? Allegro only embeds part of the data in search results. Rating, rating count, original price and discount are on listing rows already. Enable Scrape full product details to fill in stock, GTIN, warranty, return policy, review count and score distribution, and the full description from each offer page. allegro.cz and allegro.sk search cards also leave out the delivery price and instalment plan, so priceWithDelivery, delivery.lowestCost, delivery.label and installments are null there (partner-shop offer lists do show the delivery price).

What is originalPrice? On a discounted offer, Allegro strikes through the lowest price of the 30 days before the discount (the EU Omnibus rule), so originalPrice is that price, not a manufacturer's list price. discountPercent is Allegro's own badge for it.

What do position and organicPosition mean? position is the offer's place in the results of its search query or start URL, counting every offer once, ads included. organicPosition counts only the offers Allegro didn't show as ads, so it matches what you'd count down the page skipping sponsored slots. Allegro sometimes shows the same offer twice on a page, once as an ad and once lower down as an organic result; that offer is one row with sponsored: true, sponsoredAndOrganic: true and its organic place in organicPosition. Copies are merged on the page where the offer first appears: a copy that only shows up on a later page doesn't change a row already saved. Each listing page is loaded in its own proxy session and Allegro's order can shift a little between sessions, so places from page 2 on are approximate. If a page fails to load, the rows after it keep their page but get null places, since the count can't be continued.

How fresh is deep-mode data? The price, discount, delivery, rating, recent buyers and seller positive % at the top level of a row come from the listing read in that run. The offer page fills rating, recent buyers and seller positive % only when the listing doesn't show them; price, discount and delivery always come from the listing. The offer page itself (stock, GTIN, description, parameters, warranty, the detail object) may be a copy stored by one of your runs in the last 7 days, which makes repeat runs faster. Each row says when its offer page was read (detailFetchedAt) and whether it was a stored copy (detailFromCache). Set Max age of cached offer details (maxDetailAgeHours) to read older copies again, for example 24 for daily monitoring, or 0 to read every offer page fresh. When a page due for a fresh read doesn't load, the row keeps the older copy and its detailFetchedAt shows how old it is; the run log counts those. Seller lead data (company, NIP, email, phone) has its own seller cache, kept up to 30 days, which this setting doesn't shorten.

How do product reviews work? Set What to collect to Product reviews. For each product in your search, category or storefront (up to Max products per query / URL), the actor reads that product's opinions from Allegro's public review list, up to Max reviews per product (0 = all). Reviews belong to the catalog product, so a product sold by ten sellers is read once. Offers that aren't tied to a catalog product have no product reviews and are skipped. To get the reviews of one specific product, paste its /produkt/ URL.

Do reviews say whether the purchase was verified, or show the seller's reply? No. Allegro's public review list carries neither, so there are no such fields. Opinions written on Allegro say which seller the buyer bought from (sellerLogin; null for opinions imported from CZC or MALL) and which variant (variant).

Which language is the text in? The site's own: Polish on allegro.pl, Czech on allegro.cz, Slovak on allegro.sk, for titles, conditions, parameter names and descriptions. Prices are in PLN, CZK or EUR. Review text stays in the language the buyer wrote it in (sourceLanguage), and opinions in another language come with Allegro's translation into the site's language.

How many products can I get per query? Allegro serves ~60 products per page. Search and category views are capped by Allegro at 100 pages (~6,000 products per query/URL); slice a bigger category with minPrice/maxPrice to reach the rest. Seller storefronts have no 100-page cap: the actor follows them to their real last page.

Can I start the crawl from a specific page? Yes. Put the page in the start URL, e.g. https://allegro.pl/uzytkownik/some_seller?p=101, and the crawl begins there and continues forward; position then counts from that page. Handy for splitting a very large storefront into page batches across runs (?p=1, ?p=101, ?p=201, …); set Max products per query / URL high enough to cover each batch (~60 products x pages per batch).

Does it work for allegro.cz / .sk / .hu? allegro.cz and allegro.sk, yes: set Site for search queries to cz or sk for keyword searches, or paste URLs from either site, which are always read on their own site. Their pages load more slowly than allegro.pl's, and their offer pages (deep mode, seller leads, seller profiles, offer URLs) load less often. On those two sites a /produkt/ URL without ?offerId= in Products mode is read through the product's offers page (/nabidky-produktu/, /ponuky-produktu/), which didn't load in testing; use a search, the seller's storefront or offer URLs there instead. Review mode on those /produkt/ URLs works, since it reads the public review list. minPrice and maxPrice are in each site's own currency, so in a run that mixes sites the same number means PLN on one and CZK or EUR on another. allegro.hu is not supported: its start URLs are skipped with a warning in the log and in the run's status message, and a run that has only such URLs stops with an error and nothing is charged beyond the start. allegro.com links are read as the same page on allegro.pl.

Will listing-mode and deep-mode cost the same? You're charged per row either way. Deep mode just does one extra fetch per product behind the scenes (slower), but the per-result price is the same.

How do I get seller emails? Turn on Collect seller lead data, and for the automatic email lookup also turn on Find seller emails off-platform. Emails appear as the top-level sellerEmail column (and under sellerCompany.emails, with the source URLs in sellerCompany.emailSources). A published email and a published phone are each billed once per unique seller; see the Pricing tab. The Seller profile data type (dataType: "sellerProfile") gives one row per seller instead of one per product; with Collect seller lead data on, those rows carry the seller's published email and phone, billed the same way.

Why do some sellers have a NIP but no email? The email lookup is Poland-only, so foreign sellers (Czech, Slovak, German…) with a foreign VAT number are skipped, as are rows from allegro.cz and allegro.sk, and it runs only on paid plans. Customer runs look only at the site the seller links on Allegro and a domain matching its legal name, so a seller whose site is found neither way gets no email. And some small Polish shops publish no contact address anywhere public, so nothing verifiable is found. In testing that also used an AI web search (not part of customer runs yet), between a third and a half of Polish sellers returned a verified email; without it, fewer do. The actor never invents an email, and an address it can't tie to the company is dropped rather than guessed.

Are the emails real or guessed? Each email is taken from a real page: the seller's own Allegro storefront, or, for the NIP lookup, the company's own website. Polish shops must print their NIP in their terms or contact page, so the actor reads those pages itself and keeps an email only when that site shows the seller's NIP or exact legal name (a REGON or KRS counts only alongside them, since sellers sometimes mistype those on Allegro). An address suggested by web search counts only when its own domain's site passes the same check, and when the site prints its own addresses, those are the ones delivered. The pages are returned in sellerCompany.emailSources so you can check them. Addresses that can't be tied to the company are discarded.

Support

Questions, a field you'd like added, or a site change to report? Open an issue on the actor's Issues tab or email muhameddidovic@gmail.com. Response within 24 hours.

Additional services

Need a custom feed (scheduled runs, push to your DB/webhook, extra fields, or allegro.hu)? Reach out, happy to tailor it.

Explore more scrapers

Looking for other marketplaces or e-commerce sources? Check out the rest of the memo23 actor collection on the Apify Store: Blinkit, and more product, travel and directory scrapers.

🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/allegro-scraper).

Purpose: Scrapes Allegro (allegro.pl, allegro.cz, allegro.sk) by keyword search, category, seller storefront, catalog product or offer URL. Returns one of three row types, set by dataType: products (price, original price and discount, rating, seller reputation, search position, stock, sales-velocity and, in deep mode, full specs and GTIN), product reviews (one row per buyer opinion, with photos, variant and translation), or seller profiles (one row per seller with company identity and ratings).

Minimal input:

{
"searchQueries": ["laptop gaming"],
"maxItemsPerQuery": 20
}

URL mode instead: { "startUrls": [{ "url": "https://allegro.pl/oferta/18581001532" }], "maxItemsPerQuery": 20 }. Accepts offer, search/category, seller-storefront, /produkt/ and product-offers URLs on allegro.pl, allegro.cz and allegro.sk; offer URLs always return full detail.

Another site: { "market": "cz", "searchQueries": ["iphone 15"], "maxItemsPerQuery": 20 } (market: pl default, cz, sk).

Reviews instead: { "dataType": "productReviews", "startUrls": [{ "url": "https://allegro.pl/produkt/{slug}-{uuid}" }], "maxReviewsPerProduct": 100 }.

Output:

  • products (default): offerId, productId, gtin, url, title, brand, price {amount, currency}, originalPrice, discountPercent, priceWithDelivery, condition, delivery {free, freeReturn, lowestCost, label}, seller {id, login, name, company, superSeller, positiveFeedbackPercent, url}, sponsored, sponsoredAndOrganic, position, organicPosition, page, promoted, smart, productOffersCount, popularity {label, buyersQuantity}, rating {value, count}, parameters, images, thumbnail, categoryId, installments, searchQuery, sourceUrl, scrapedAt; plus detail {stock, gtin, rating, returnPolicy, warranty, breadcrumbs, parameterGroups, description, images} when deep mode is on; plus detailFetchedAt, detailFromCache on rows that read an offer page; plus nip, sellerEmail, sellerPhone, sellerWebsite and sellerCompany {legalName, taxId, regon, krs, address, verified, emails, phones, website, emailSources} when scrapeSellerContact is on.
  • productReviews: type "productReview", reviewId, offerId, productId, offerUrl, author, rating (star label, string), ratingPercentage, isBest, text, pros, cons, images, createdAt, createdAtLabel, helpfulYes, helpfulNo, sourceLanguage, sourceType, isTranslated, translatedText, translatedPros, translatedCons, translationLanguage, variant [{name, value}], sellerLogin, productFeatures [{name, sentiment, mentions, positive, negative, neutral}], scrapedAt.
  • sellerProfile: type "sellerProfile", sellerId, login, name, superSeller, shopUrl, positivePercent, positiveCount, negativePercent, negativeCount, openHours, openingHours, legalName, representative, taxId, regon, krs, address, verified, phones, emails, website, sourceUrl, scrapedAt.

Behaviors an agent should know:

  • Supported sites: allegro.pl, allegro.cz, allegro.sk. market picks the site for searchQueries; start URLs are read on their own site. allegro.hu start URLs are skipped with a warning; a run with only those fails at once. allegro.com URLs are read as allegro.pl.
  • Set maxItemsPerQuery (per query/URL); Allegro serves ~60 products/page and caps search/category views at 100 pages (~6000 max). Seller storefronts are uncapped and followed to their real last page. maxItems optionally caps the whole run.
  • position / organicPosition / page rank each listing row within its query or URL (each offer once; organic skips ads; starts at the URL's p= page). An offer shown as both an ad and an organic result on a page is one row with sponsoredAndOrganic: true. Places from page 2 on are approximate, and null after a page that failed to load.
  • In productReviews and sellerProfile modes, maxItemsPerQuery counts products read per query. maxReviewsPerProduct caps opinions per product (0 = all). Reviews come from Allegro's public review list (500 per request) and are fast; offers with no catalog product are skipped. Translations and productFeatures names follow the site's language. There is no verified-purchase or seller-reply field. Seller profiles need one offer page per seller, which Allegro's anti-bot wall often blocks.
  • A /produkt/ URL gives every seller's offer of that product in products mode, only the offer in its ?offerId= when present, and that product's opinions in productReviews mode. On allegro.cz / .sk the product-offers page behind a bare /produkt/ URL did not load in testing; use search or offer URLs there.
  • startUrls run in addition to searchQueries. A p=N in a listing/category/seller URL is respected: the crawl starts at that page and continues forward (batch a huge storefront with ?p=1 / ?p=101 / …).
  • scrapeProductDetails: true (deep mode) adds one extra request per product to fill stock, GTIN, warranty, return policy and full description. Offer pages are blocked more often than listings (allegro.cz / .sk more than allegro.pl), so deep runs are slower and can return fewer rows; the run status says when pages failed to load. Offer pages read in the user's runs over the last 7 days are reused; maxDetailAgeHours (integer) re-reads older copies (0 = re-read every offer page; a page that doesn't load keeps its older copy, see detailFetchedAt), and detailFetchedAt / detailFromCache show each row's age. Seller lead data has a separate 30-day seller cache that maxDetailAgeHours doesn't shorten. Top-level price, discount, delivery, rating, popularity and seller positive % come from the current run's listing when it shows them.
  • condition (all/new/used), sortBy, and minPrice/maxPrice (in the site's currency: PLN, CZK or EUR) filter search/category results; keep geoCode = pl.
  • Text is in the site's language (Polish, Czech or Slovak) and prices in its currency. allegro.cz / .sk listing rows have priceWithDelivery, delivery.lowestCost, delivery.label and installments null.
  • scrapeSellerContact: true adds B2B seller-lead data (company legal name, nip, REGON, KRS, address, and top-level sellerEmail/sellerPhone/sellerWebsite); it visits the offer page like deep mode. enrichEmails: true (requires scrapeSellerContact; paid plans only, ignored on the free plan) looks for a missing email on the company's own website (the site the seller links on Allegro, or a domain matching its legal name), Poland-only and allegro.pl rows only, kept only when that site shows the seller's NIP or legal name. The AI web-search step is off in customer runs until it is priced.
  • Billing: pay per row (a product, a review or a seller profile, by dataType); one row = one charge; deep mode costs the same per result. In B2B mode (scrapeSellerContact), including dataType: "sellerProfile" runs with it on, a published seller email and phone are each charged once per unique seller (see the actor's Pricing tab).

⚠️ Disclaimer

This actor extracts publicly available information from Allegro (allegro.pl, allegro.cz and allegro.sk): product data, buyer reviews as Allegro publishes them (with reviewer names masked by Allegro), and, in B2B mode, the business-seller contact details that sellers and Allegro publish under EU trader-transparency rules (DSA / Omnibus) or on the sellers' own public pages. It does not log in or bypass paywalls. Business contact data can still be personal data under GDPR (for example a sole trader's email), so you are responsible for a lawful basis and compliant use of it, especially for outreach, alongside Allegro's Terms of Service and copyright. This tool is intended for legitimate purposes such as price monitoring, market research, competitive analysis, review analysis and B2B lead generation.

SEO Keywords

Allegro scraper, Allegro.pl scraper, Allegro product scraper, Allegro price scraper, Allegro API, scrape Allegro, Allegro data extraction, Allegro price monitoring, Allegro competitor analysis, Allegro marketplace scraper, Poland e-commerce scraper, Allegro seller scraper, Allegro category scraper, Allegro offer scraper, Allegro product data, Allegro price comparison, Allegro discount tracker, Allegro stock checker, Allegro GTIN EAN, Allegro search ranking, Allegro search position tracker, Allegro sponsored offers, Allegro.cz scraper, Allegro.sk scraper, Allegro Czech Republic scraper, Allegro Slovakia scraper, Czech marketplace scraper, Slovak marketplace scraper, Allegro reviews scraper, Allegro product reviews, Allegro opinie scraper, Allegro opinions export, Allegro review photos, Allegro review analysis, Allegro ratings scraper, scrape Allegro reviews, Allegro seller profile scraper, Allegro seller ratings, Allegro seller leads, Allegro seller email scraper, Allegro NIP scraper, Allegro B2B leads, Allegro company data, Polish company email finder, NIP to email, Allegro lead generation, Apify Allegro.