
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Allegro.pl products by keyword, category, seller storefront or offer URL: prices, delivery, seller rating, Smart!, popularity, specs, stock, GTIN and seller company data.
Scrape products from Allegro.pl, Poland's largest online marketplace. Search by keyword, crawl a category or a seller's storefront, or paste offer URLs, and get one clean row per offer: price, delivery cost, seller rating, Smart!, sponsored flag, recent buyers, product rating, parameters and images. Turn on details to also get stock, GTIN/EAN, the full description, warranty and return policy. You don't need a login, it runs on plain HTTP with no browser, and you pay per product.
laptop gaming) and/or paste Allegro URLs: offers, searches, categories or seller storefronts.| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["laptop gaming"] | Keywords to search. Each one runs its own paginated search. |
startUrls | array | [] | allegro.pl offer, search (/listing?string=), category (/kategoria/) or seller (/uzytkownik/) URLs. A p=N in a listing URL sets the start page. |
maxItemsPerQuery | integer | 20 | Hard cap on products per keyword or listing URL (applied to each one separately). Each offer URL gives exactly one row. |
minPrice / maxPrice | integer | – | Price range in PLN. |
condition | select | all | all, new or used. |
sortBy | select | relevance | relevance, price-asc, price-desc, price-with-delivery-asc, price-with-delivery-desc, popularity, newest, rating, ending-soon. With any order other than relevance, sponsored ads are skipped so the rows follow that order. |
scrapeProductDetails | boolean | false | Visit each offer page for the deep fields. |
scrapeSellerContact | boolean | false | Add seller company data (sellerCompany, nip, sellerPhone, sellerEmail, sellerWebsite). |
includeRawData | boolean | false | Attach the raw offer object (details mode only). |
maxConcurrency | integer | 5 | Pages loaded at the same time. |
{
"searchQueries": ["laptop gaming", "iphone 15"],
"startUrls": [{ "url": "https://allegro.pl/kategoria/laptopy-491" }],
"maxItemsPerQuery": 100,
"minPrice": 500,
"maxPrice": 5000,
"condition": "new",
"sortBy": "price-asc",
"scrapeProductDetails": true
}
Each product is one row. The listing fields are always filled. detail is filled when details are on. sellerCompany, nip, sellerPhone, sellerEmail and sellerWebsite are filled when seller company data is on.
| Field | Description |
|---|---|
offerId, url | Allegro offer id and offer URL |
productId | Allegro catalog product id (shared by all sellers of the same product) |
title, brand, gtin | Offer title, brand and GTIN/EAN (brand and GTIN come from details or offer pages) |
price, originalPrice, priceWithDelivery | Current price, price before discount, and total with the cheapest delivery (PLN) |
condition | Nowy, Używany, … |
delivery | free, freeReturn, lowestCost, label, estimate (for example "dostawa jutro") |
seller | id, login, company, superSeller, positiveFeedbackPercent, url |
sponsored, promoted, smart | Ad flags and Allegro Smart! eligibility |
productOffersCount | How many offers exist for the same product |
popularity | label and buyersQuantity (recent buyers) |
rating | Product rating value and count |
parameters, images, thumbnail | Spec name/value pairs and image URLs |
categoryId, installments, isEnded, position | Category, instalment offer, ended flag and position on the page |
searchQuery, sourceUrl, scrapedAt | Where the row came from and when |
detail | stock, gtin, rating (with distribution and best review), warranty, returnPolicy, deliveryLabel, handlingTime, location, breadcrumbs, parameterGroups, description, descriptionImages, images, seller, endsAt |
sellerCompany | legalName, representative, taxId, regon, krs, address, verified, phones, emails, website |
Example row (sample data, trimmed):
{
"offerId": "17936383444",
"productId": "c6bb6d3e-5f73-458d-af63-36166aed7672",
"url": "https://allegro.pl/oferta/17936383444",
"title": "Bateria do laptopów HP, Compaq litowo-polimerowa 4550 mAh Greencell",
"price": { "amount": 119.95, "currency": "PLN" },
"originalPrice": null,
"priceWithDelivery": { "amount": 130.44, "currency": "PLN" },
"delivery": { "free": false, "freeReturn": false, "lowestCost": { "amount": 10.49, "currency": "PLN" }, "label": "130,44 zł z dostawą", "estimate": "dostawa pojutrze" },
"seller": { "id": "1818256", "login": "Swiatbaterii", "name": "Firma", "company": true, "superSeller": true, "positiveFeedbackPercent": 99.3, "url": "https://allegro.pl/uzytkownik/Swiatbaterii" },
"sponsored": true,
"smart": true,
"productOffersCount": 7,
"popularity": { "label": "30 osób kupiło ostatnio", "buyersQuantity": 30 },
"rating": { "value": 4.92, "count": 12 },
"parameters": [{ "name": "Pojemność (Wh)", "value": "53 Wh" }, { "name": "Napięcie", "value": "11.55 V" }],
"images": ["https://a.allegroimg.com/s720/110ea2/1d41a4624515a610cc6721d2d5e3/Bateria-do-laptopow-HP-SR03XL"],
"categoryId": "147905",
"searchQuery": "laptop gaming",
"scrapedAt": "2026-10-14T20:01:02.488Z",
"detail": {
"stock": { "available": 997, "label": "z 997 sztuk", "unit": "UNIT" },
"gtin": "5904326376809",
"brand": "Greencell",
"warranty": { "period": "24 miesiące", "type": "producenta/dystrybutora" },
"returnPolicy": { "withdrawalPeriod": "30 dni", "costLabel": "kupujący lub za darmo dla wybranych metod Smart!" },
"breadcrumbs": ["Allegro", "Elektronika", "Komputery", "Części do laptopów", "Baterie"]
}
}
Pay per product, with two simple rates:
| Row | When | Price |
|---|---|---|
Product (result-item) | a row from the search / category / seller result list | $1.00 per 1,000 |
Detailed product (product-details) | a row completed from its offer page: details on, seller company data on, or an offer URL as input | $1.50 per 1,000 (instead of the product price, not on top) |
Examples: 1,000 products from searches cost $1.00 plus a few cents of platform usage. The same 1,000 products with full details cost $1.50, plus platform usage: an offer page is about 0.7 MB of residential proxy traffic, so 1,000 detailed products use about 0.7 GB. Platform usage (compute and proxy traffic) is billed separately at standard rates. You only pay for rows you get, and a run stops cleanly when your spending limit is reached. If an offer page can't be loaded, that row is kept with its list data and charged as a regular product.
Is it legal to scrape Allegro? The actor only collects public data that anyone can see without logging in. Seller company data is what business sellers must publish under EU trader-transparency rules. If you process personal data, you are responsible for complying with the GDPR and Allegro's terms.
Do I need an Allegro account or my own proxy? No. It needs no login. A Polish residential proxy is used by default, and the actor passes Allegro's bot check on its own.
How many products can I get? Allegro shows about 60 products per page and at most 100 pages (about 6,000 products) for one search or category. To get more, split a big category with price ranges. Seller storefronts are followed to their last page.
Why are some fields empty? Allegro shows only part of the data in search results. Brand, GTIN, stock, warranty and the full rating come from the offer page, so turn on Scrape full product details. Fields a seller doesn't fill stay null.
Is the text in Polish? Yes. Titles, parameters and labels are Allegro's original Polish text, and prices are in PLN.
Can I schedule runs or use the API? Yes. You can schedule the actor, call it from the API, or connect it to webhooks and integrations like any other actor.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Keywords to search on Allegro.pl. Each keyword runs its own paginated search; leave empty when you only paste URLs below. Examples: "laptop gaming", "iphone 15", "lego technic", or an EAN barcode.
startUrlsarrayOptionaldefault []Allegro URLs
Direct allegro.pl URLs: offer pages (allegro.pl/oferta/...), search or category pages (allegro.pl/listing?string=... or allegro.pl/kategoria/...) and seller storefronts (allegro.pl/uzytkownik/...). A p=N page number in a listing URL is respected as the start page. Offer URLs always return full details.
maxItemsPerQueryintegerOptionaldefault 20Max products per keyword / URL
Hard cap on products saved per search keyword or listing URL (each keyword or listing gets up to this many; an offer URL always gives exactly one row). Allegro shows about 60 products per page and at most 100 pages (about 6,000 products) for one search or category; use price ranges to split bigger ones.
Applied to keyword searches and to search / category / seller URLs (a filter already in the URL wins).
minPriceintegerOptionalMinimum price (PLN)
Only offers priced at or above this value, in Polish złoty.
maxPriceintegerOptionalMaximum price (PLN)
Only offers priced at or below this value, in Polish złoty.
conditionenumOptionaldefault "all"Condition
Product condition.
sortByenumOptionaldefault "relevance"Sort by
Order of the search / category results. With any order other than relevance, Allegro's sponsored ads (which it pins to the top regardless of the order) are skipped so the rows follow the chosen order.
scrapeProductDetailsbooleanOptionaldefault falseScrape full product details
Visit each offer page for the deep data: full description, grouped parameter table, rating with score distribution and best review, stock quantity, GTIN/EAN, warranty, return policy, breadcrumbs and full-size images. One extra page per product (slower); these rows are billed at the detailed-product rate.
scrapeSellerContactbooleanOptionaldefault falseCollect seller company data
Add each business seller's company block from the offer page: legal name, NIP (tax id), REGON, KRS, registered address, and any phone, email or website the seller publishes on Allegro. Visits the offer page like the details option (detailed-product rate).
includeRawDatabooleanOptionaldefault falseInclude raw offer data
Attach Allegro's raw offer object to each detailed row (only with full product details). Large; for debugging.
maxConcurrencyintegerOptionaldefault 5Parallel requests
How many pages to load at the same time. Higher is faster for big detail runs.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Allegro only serves visitors from Poland well and blocks datacenter addresses, so a Polish residential proxy is used by default.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| offerId | string | Allegro offer id |
| productId | string | null | Allegro catalog product id |
| url | string | Offer URL |
| title | string | null | |
| price | object | null | |
| seller | object | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Detailed product | One Allegro product row completed from its offer page (full details, seller company data, or an offer URL as input): stock, GTIN, description, warranty, returns, seller company. Charged instead of Product, not on top. | $0.0015 |
| Product | One Allegro product row from a search, category or seller result list: price, delivery, seller, Smart!, popularity, rating, parameters and images. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/allegro-scraper').call({
"searchQueries": [
"laptop gaming"
],
"startUrls": [],
"maxItemsPerQuery": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
],
"scrapelyProxyCountry": "PL"
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/allegro-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/allegro-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Cheapest new offers within a price range.
Search results plus one offer page, with full product details.
Search results with each seller's contact details.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.