The Marzi parsers
The same readers of Allegro's listing and offer pages that feed Marzi's weekly index, Competitor Tracker and Price Tracker — one source of truth, deployed to the Actor with every release.
Allegro Scraper is Marzi's parser packaged as an Apify Actor. Give it an offer link, a search phrase or a category; it walks the pages the way a buyer sees them and returns one clean JSON record per offer — price, price with delivery, rating and reviews, seller, offer count, Allegro's 30-day buyer counter, GTIN and stock on request. You pay per product delivered, and nothing else.
{
"mode": "SEARCH",
"searchQuery": "powerbank 20000mah",
"maxProducts": 100
}{
"offerId": "15764131793",
"productId": "23b94313-35f0-457e-8fd4-26512cbbfe28",
"url": "https://allegro.pl/oferta/15764131793",
"title": "Powerbank Matnox 20000 mAh 22,5 W czarny",
"price": 119.9,
"originalPrice": null,
"currency": "PLN",
"rating": 4.95,
"ratingCount": 1842,
"offersCount": 11,
"recentBuyers": 1249,
"promo": true,
"sponsored": false,
"smart": true,
"sellerName": "AGILER_SKLEP",
"sellerSuperSeller": true,
"sellerPositivePercent": 99.9,
"position": 7,
"scrapedAt": "2026-09-15T18:11:30Z"
}{
"products": 100,
"pagesRead": 2,
"duplicates": 0,
"invalid": 0,
"otherMarketplace": 2,
"charged": 100,
"durationSeconds": 27.4,
"failures": [],
"fetch": {
"pages_ok": 2,
"blocks": 0,
"provider_failures": 0
}
}A scraper is cheap to write and expensive to keep alive: every anti-bot change costs an evening, and the evening comes every month. Allegro Scraper is the parser Marzi maintains for its own products, sold per record — you pay for the products that arrive, and the evenings are ours.
Pick the mode and paste offer links, category links or type a search phrase — in Apify Console, through the API, or from an AI agent. Only allegro.pl pages are accepted; the Actor rebuilds every URL from what it recognised, so a link to anything else is refused before a page is read.

Pages come through a real browser on Polish residential connections, paced the way Allegro tolerates: a few pages per identity, then a fresh one. A block is retried on a new identity with back-off; a page that will not read is recorded with its reason, and the run goes on.

Every product lands in the run's dataset the moment it is validated — JSON, CSV or XLSX from Console, or straight from the API. A RUN_SUMMARY next to it says how many pages were read, what was skipped and why, and what the run cost.

Every figure on the screen has the page it was taken from and the method printed next to it. These are the parts.
The same readers of Allegro's listing and offer pages that feed Marzi's weekly index, Competitor Tracker and Price Tracker — one source of truth, deployed to the Actor with every release.
Links are classified before anything is fetched: allegro.pl offers, searches and categories, nothing else. Allegro Lokalnie and the .cz/.sk/.hu sites are different marketplaces and are refused.
A DataDome block, a dropped browser and a page of another shape are three different failures; each is retried the right way, and none of them stops the run.
The event fires after the record is validated and stored in your dataset. A run that finds nothing costs nothing; set a maximum cost per run and it stops at your cap.
A typed input schema, a typed output schema, deterministic records and no interactive steps — what Apify's MCP server and agent frameworks need to run an Actor unattended.
RUN_SUMMARY in the key-value store: pages read, products, duplicates, every failed URL with its reason, provider usage and duration.
The same Actor whether a person starts it in Apify Console, a script calls the API, or an AI agent picks it from Apify’s MCP server. Every run ends in a dataset you can read as JSON, CSV or XLSX.
curl -X POST "https://api.apify.com/v2/acts/marzi.ai~allegro-scraper/runs?token=$APIFY_TOKEN&maxTotalChargeUsd=5" \ -H "Content-Type: application/json" \ -d '{"mode":"SEARCH","searchQuery":"powerbank 20000mah","maxProducts":100}' # then the dataset: GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?format=csv
from apify_client import ApifyClient run = ApifyClient(token).actor("marzi.ai/allegro-scraper").call(run_input={ "mode": "CATEGORY", "startUrls": [{"url": "https://allegro.pl/kategoria/powerbanki-252023"}], "maxProducts": 500, "sort": "popularity", }) for item in ApifyClient(token).dataset(run["defaultDatasetId"]).iterate_items(): print(item["title"], item["price"], item["recentBuyers"])
# Apify's MCP server exposes any Store Actor as a tool Server: https://mcp.apify.com Tool: marzi.ai/allegro-scraper Input: {"mode": "SEARCH", "searchQuery": "słuchawki bluetooth", "maxProducts": 50} Budget: maxTotalChargeUsd on the run — the Actor stops at the cap
Actor: marzi.ai/allegro-scraper · pay per event · limited permissions
Marzi says which is which on the screen itself. Here is the short version for Allegro Scraper.
One API call or one MCP tool call gives you Allegro product data in a stable shape — no browser to run, no anti-bot to maintain, no parser to keep alive.
Run it from Apify’s MCP server, an agent framework, Make or Zapier: a strict schema in, a dataset out, a spending cap on the run.
Pull a category or a search into a spreadsheet in minutes — prices, sellers, ratings and buyer counters — and repeat it next week with the same run.
No. The Actor runs on your Apify account and bills through Apify. Marzi builds and maintains it; nothing in the run touches Marzi’s platform.
One event, product-scraped, per product delivered: the price is on the Actor’s Store page, and a run with a maximum cost stops when it is reached. Apify’s free plan covers the platform side of small runs.
One Allegro offer: the seller’s listing of a product. A listing card is the offer that represents a product card in the results; an offer page is that offer in full. The product card’s own ID is on the record too.
A listing page yields about 60 products and takes around ten seconds; 100 products from a search took 30 seconds on the platform, 1,000 from a category under three minutes. Offer pages are one page per product, so PRODUCT mode and Open every offer page take proportionally longer.
Same parsers, same field semantics, read at the moment of the run. The cabinet adds what the Actor deliberately leaves out: history, estimates, monitors and the weekly index.
Yes. It is a plain pay-per-event Actor with typed input and output and no standby mode, which is what Apify’s MCP server and agent runners expect. Set maxTotalChargeUsd on the run as the agent’s budget.
The Actor reads public pages only, at a pace Allegro tolerates, and never the pages Allegro’s robots.txt disallows (variants, standalone reviews). Personal pages, carts and logins are refused.
Open the Actor on Apify Store, paste a link or a phrase and get your first dataset in a minute. Apify’s free plan is enough to try it.