# Allegro Reviews Scraper: Product Opinions & Ratings (`epicscrapers/allegro-reviews-scraper`) Actor

Scrape Allegro.pl product reviews in bulk: star rating, text, pros and cons, photos, helpful votes, seller and date. Paste product URLs or search by keyword. Fast app API, no login, no browser. Export Allegro opinions to JSON, CSV or Excel.

- **URL**: https://apify.com/epicscrapers/allegro-reviews-scraper.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** E-commerce, AI, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 review saveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Allegro Reviews Scraper: export Allegro.pl product reviews (opinie) with ratings, pros, cons and photos

Allegro Reviews Scraper downloads the product reviews shoppers leave on Allegro.pl, Poland's largest marketplace, and turns them into a clean spreadsheet. Paste product URLs or search by keyword, and get every review with its star rating, text, pros and cons, photos, helpful votes, date, language and the seller it was bought from.

- **Every review, not just the first page.** Allegro shows 20 reviews at a time. This actor reads 100 per request, in parallel, so a product with 2,700 reviews takes about 6 seconds.
- **Search by keyword.** Type `filtr brita` or `słuchawki bezprzewodowe` and the actor finds the products and scrapes their reviews. No need to collect URLs first.
- **Filter what you need.** Only 1- and 2-star reviews for complaint analysis, only the newest, or only reviews since your last run.
- **What buyers talk about.** Each product's summary lists the aspects Allegro detects in its reviews (for example "Jakość wykonania", "Kompatybilność") with positive, negative and neutral mention counts. Free, in the key-value store.
- **$0.80 per 1,000 reviews.** No subscription, no Allegro account, no browser. Export to JSON, CSV, Excel or Google Sheets, or use the API.

### What can you do with Allegro reviews?

| Goal                                | How                                                                                                       |
| ----------------------------------- | --------------------------------------------------------------------------------------------------------- |
| Find product defects and complaints | Set **Star ratings** to `1` and `2`, then read `cons` and `text` (or give the CSV to an AI assistant).    |
| Research a niche before selling     | Search a keyword, collect reviews of the top products, and see what buyers praise and complain about.     |
| Monitor your own products           | Schedule a daily run with **Only reviews since** `1 day` and send new reviews to Slack, email or a sheet. |
| Compare competitors                 | Scrape the same category's products and compare ratings, `features` sentiment and recurring complaints.   |
| Seller analysis                     | Reviews of one product come from all its offers; `sellerLogin` shows which seller each buyer bought from. |
| Train or test AI models             | Polish-language reviews with star labels, pros and cons are ready-made sentiment data.                    |
| Collect user photos                 | `imageUrls` has full-size links to every photo buyers attached.                                           |

### How it compares

| What you need                | Allegro Reviews Scraper                            | Other Allegro scrapers                      |
| ---------------------------- | -------------------------------------------------- | ------------------------------------------- |
| Reviews per product          | All of them (thousands)                            | Often only the first page or a few dozen    |
| Speed                        | ~2,700 reviews in 6 seconds                        | Browser-based, minutes per product          |
| Start from a keyword         | Yes, products are found for you                    | Usually product URLs only                   |
| Star-rating and date filters | Yes, including "only new since" for scheduled runs | Rarely                                      |
| Aspect sentiment summary     | Yes (`features`, free)                             | No                                          |
| Pros, cons, photos, votes    | Separate fields                                    | Often merged into one text field or missing |
| Price                        | $0.80 per 1,000 reviews                            | Monthly rental or higher per-result price   |

### Quick start

1. Click **Try for free** and sign in to Apify. The free plan's monthly credit covers thousands of reviews.
2. Paste one or more product URLs into **Product URLs or IDs**, for example `https://allegro.pl/produkt/aquafloow-maxi-filtr-do-wody-do-dzbanek-filtrujacy-brita-dafi-zamiennik-10x-58477991-7e13-4e80-b021-6e30661d5082`. Or add keywords to **Search keywords**.
3. For a first run, keep **Max reviews per product** at `20`.
4. Click **Start**. The run takes a few seconds. Open the **Output** tab and export the data.

```json
{
    "products": [
        "https://allegro.pl/produkt/aquafloow-maxi-filtr-do-wody-do-dzbanek-filtrujacy-brita-dafi-zamiennik-10x-58477991-7e13-4e80-b021-6e30661d5082"
    ],
    "maxReviewsPerProduct": 20
}
```

#### Which URLs work?

| Input                                                                         | What you get                                                                |
| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Product page `allegro.pl/produkt/<name>-<uuid>` (with or without `?offerId=`) | All reviews of the product, across all its offers. **Recommended.**         |
| Product UUID `58477991-7e13-4e80-b021-6e30661d5082`                           | Same as the product page.                                                   |
| Offer page `allegro.pl/oferta/<name>-<number>`                                | Only the reviews left on that one offer (one seller). `productId` is empty. |
| Keyword in **Search keywords**                                                | The first N products Allegro shows for the keyword, then their reviews.     |

On Allegro, reviews belong to the catalogue product, not to a single listing. If you open an offer and click "Zobacz wszystkie opinie", the address bar shows the product URL. Use that URL for the full review set.

### What data can you extract?

Every row is one review:

| Group    | Fields                                                                                                                  |
| -------- | ----------------------------------------------------------------------------------------------------------------------- |
| Review   | `reviewId`, `rating` (1–5), `ratingPercentage`, `text`, `pros`, `cons`, `createdAt`, `flags`                            |
| Votes    | `helpfulCount`, `notHelpfulCount`                                                                                       |
| Author   | `authorName` (masked by Allegro, for example `C...3`), `sellerLogin` (who the buyer bought from)                        |
| Media    | `imageUrls`, `videoUrls`                                                                                                |
| Language | `language`, `translatedText`, `translatedPros`, `translatedCons`, `source` (`ALLEGRO`, or partner shops such as `MALL`) |
| Product  | `productId`, `productUrl`, `productName` (keyword runs), `offerId`, `productVariant`, `productReviewCount`              |
| Run      | `searchQuery`, `scrapedAt`                                                                                              |

#### Product summaries (free)

The key-value store record `PRODUCTS` (linked in the **Output** tab as "Product summaries") has one entry per product, not charged:

```json
{
    "productId": "5318e6f7-2764-4109-8bbc-ab8e62ef3c2b",
    "productUrl": "https://allegro.pl/produkt/filtr-do-wody-aquafloow-maxi-do-dzbankow-filtrujacych-6-sztuk-5318e6f7-2764-4109-8bbc-ab8e62ef3c2b",
    "productName": "6x filtr wody AquaFloow Maxi do dzbanka Aquaphor Brita Dafi zamiennik",
    "reviewCount": 548,
    "reviewsSaved": 548,
    "sortBy": "mostHelpful",
    "features": [
        {
            "label": "Kompatybilność",
            "sentiment": "POSITIVE",
            "mentions": 107,
            "positiveMentions": 84,
            "negativeMentions": 17,
            "neutralMentions": 6
        },
        {
            "label": "Jakość wykonania",
            "sentiment": "NEUTRAL",
            "mentions": 63,
            "positiveMentions": 18,
            "negativeMentions": 40,
            "neutralMentions": 5
        }
    ]
}
```

`features` are the aspects Allegro detects in a product's reviews, with how many reviews mention each one positively or negatively. With a star-rating filter, `reviewCountByRating` replaces `reviewCount`.

### Input reference

| Field                  | Type             | Default         | Effect                                                                                                  |
| ---------------------- | ---------------- | --------------- | ------------------------------------------------------------------------------------------------------- |
| `products`             | Array of strings | Empty           | Product URLs, product UUIDs or offer URLs (see above).                                                  |
| `searchQueries`        | Array of strings | Empty           | Keywords. The actor finds products for each and scrapes their reviews.                                  |
| `maxProductsPerQuery`  | Integer          | `10`            | Products taken from each keyword's results.                                                             |
| `maxReviewsPerProduct` | Integer          | `100`           | Reviews saved per product. `0` means all.                                                               |
| `sortBy`               | String           | `"mostHelpful"` | `"mostHelpful"` (Allegro's default, "pomocne") or `"newest"` ("najnowsze"). Allegro has no other sorts. |
| `ratings`              | Array of strings | Empty (all)     | Only these star ratings, for example `["1", "2"]`.                                                      |
| `onlyNewSince`         | String           | Empty           | `2026-01-31` or relative (`7 days`, `1 month`). Sorts by newest and stops at the first older review.    |
| `proxyConfiguration`   | Object           | Apify Proxy     | Keep the default. The actor switches to Polish residential IPs by itself if Allegro blocks a request.   |

One of `products` or `searchQueries` is required. Inputs that aren't Allegro product or offer URLs are skipped with a warning in the log.

### Ready-to-run examples

#### All complaints about a product

```json
{
    "products": ["58477991-7e13-4e80-b021-6e30661d5082"],
    "ratings": ["1", "2"],
    "maxReviewsPerProduct": 0
}
```

#### Niche research from a keyword

```json
{
    "searchQueries": ["filtr brita", "słuchawki bezprzewodowe"],
    "maxProductsPerQuery": 10,
    "maxReviewsPerProduct": 200
}
```

#### Daily monitoring of new reviews

```json
{
    "products": ["https://allegro.pl/produkt/twoj-produkt-<uuid>"],
    "maxReviewsPerProduct": 0,
    "onlyNewSince": "1 day"
}
```

Save it as a task and add a daily schedule in **Schedules**. Each run only reads and charges for reviews from the last day. Connect Slack, email or Google Sheets in the task's **Integrations** tab.

### Analyze the reviews with ChatGPT or Claude

Export the dataset as CSV and attach it to a chat with an AI assistant. Prompts to start with:

- "These are Allegro reviews of one product, in Polish. Group the complaints in `cons` and `text` into themes, count each theme, and quote one typical review per theme in English."
- "Compare these two products' reviews. What do buyers like about each, what goes wrong, and which would you choose for \[use case]?"
- "List the problems mentioned in 1- and 2-star reviews from the last 3 months that weren't mentioned before."

### Output

Results go to the run's default dataset. Use the views **Overview**, **Ratings & votes**, **Photos & translations** or **Sources**, or export as JSON, CSV, Excel, XML or HTML.

A real row from a `filtr brita` run on October 2, 2026:

```json
{
    "productId": "5318e6f7-2764-4109-8bbc-ab8e62ef3c2b",
    "productUrl": "https://allegro.pl/produkt/filtr-do-wody-aquafloow-maxi-do-dzbankow-filtrujacych-6-sztuk-5318e6f7-2764-4109-8bbc-ab8e62ef3c2b",
    "productName": "6x filtr wody AquaFloow Maxi do dzbanka Aquaphor Brita Dafi zamiennik",
    "offerId": "10853008200",
    "reviewId": "6a10868c733032cfd7a5594d",
    "rating": 1,
    "ratingPercentage": 20,
    "text": "Produkt pasuje do dzbanka jednak woda przez niego nie przepływa. Odradzam zakup. Zgodnie z instrukcją przygotowania i montażu nie chce filtrować. Inne filtry kupione gdzie indziej jak najbardziej działają. Szkoda nerwów.",
    "pros": "Nie wysypuje się z niego zawartość.",
    "cons": "Nie filtruje wody.",
    "authorName": "C...4",
    "createdAt": "2026-05-22T16:38:36.165Z",
    "helpfulCount": 1,
    "notHelpfulCount": 0,
    "language": "pl-PL",
    "translatedText": null,
    "translatedPros": null,
    "translatedCons": null,
    "imageUrls": ["https://a.allegroimg.com/original/3684fa/32963e694c4997ab99a686ee319d"],
    "videoUrls": [],
    "sellerLogin": "PlanetaAgd_pl",
    "source": "ALLEGRO",
    "flags": [],
    "productVariant": [],
    "productReviewCount": 548,
    "searchQuery": "filtr brita",
    "scrapedAt": "2026-10-01T22:54:47.080Z"
}
```

#### Notes on fields

- `rating` is 1–5 stars; `ratingPercentage` is the same as Allegro stores it (20 per star).
- `text`, `pros` and `cons` are `null` when the buyer left them empty. Many Allegro reviews have only pros and cons.
- `authorName` is masked by Allegro itself. The actor collects no other personal data.
- `productReviewCount` is the number of reviews matching your filters (all reviews when there's no star-rating filter).
- `offerId` is the offer the product was found through (keyword runs) or the offer whose reviews these are (offer URLs).
- `flags` contains `BEST` for reviews Allegro highlights.
- Dates are ISO 8601 in UTC.

### FAQ

#### How many reviews can I get?

All reviews Allegro shows for a product. Set **Max reviews per product** to `0`. A product with 5,000 reviews takes about 10 seconds.

#### How fast is it?

About 100 reviews per request and 10 requests in parallel. In our tests, 13,706 reviews from 8 products took 13 seconds.

#### Why does an offer URL return fewer reviews than the product page?

Allegro stores reviews per product. An offer URL returns only the reviews written for that one offer. Allegro's product page shows reviews from all offers of the product. Use the product URL (`allegro.pl/produkt/...`) for the full set.

#### Can I sort by lowest rating or oldest?

Allegro offers only "most helpful" and "newest". To get the worst reviews, use the **Star ratings** filter instead.

#### Do I need proxies or an Allegro account?

No account. Keep the default Apify Proxy: Allegro blocks many direct connections. The actor retries blocked requests on fresh IPs and switches to Polish residential IPs automatically.

#### Why did my run stop before reaching my limit?

If the log says the charge limit was reached, the run hit its maximum cost. Everything collected before is in the dataset. Raise the limit in the run options.

#### Is it legal to scrape Allegro reviews?

The actor collects publicly visible reviews. Allegro already masks reviewer names, and the actor collects no other personal data. You are responsible for how you use the data, including Allegro's terms and laws such as GDPR.

### Cost

Pay-per-event pricing, no subscription:

| Event       | Price    | Per 1,000 | Charged when       |
| ----------- | -------- | --------- | ------------------ |
| `review`    | $0.0008  | $0.80     | A review is saved. |
| Actor start | $0.00005 | –         | Once per run.      |

Product summaries in the key-value store are free.

| Run                                                     | Cost         |
| ------------------------------------------------------- | ------------ |
| 20 reviews (the prefilled run)                          | $0.02        |
| All 2,702 reviews of one popular product                | $2.16        |
| 10 products × 100 reviews                               | $0.80        |
| Daily new-review monitoring of 20 products (~5 new/day) | ~$2.40/month |

Set a maximum cost per run; the actor stops cleanly when it's reached. The **Pricing** tab always shows current prices.

### Related Allegro actors

- [Allegro Reviews Scraper](https://apify.com/epicscrapers/allegro-reviews-scraper): product reviews and ratings (this actor).
- [Allegro Deals Scraper](https://apify.com/epicscrapers/allegro-deals-scraper): deals, discounts and prices from Allegro's deals area.
- [Allegro Keyword Scraper](https://apify.com/epicscrapers/allegro-keyword-scraper): Allegro search suggestions for keyword research.

### Support

Report problems or request features in the **Issues** tab. Include the run ID, the input and what you expected.

This actor is not affiliated with or endorsed by Allegro.pl sp. z o.o. "Allegro" is a trademark of its owner.

# Actor input Schema

## `products` (type: `array`):

Allegro product pages, one per entry, e.g. https://allegro.pl/produkt/<name>-<uuid> (a ?offerId= suffix is fine), or just the product UUID. Offer URLs (allegro.pl/oferta/<name>-<number>) also work and return the reviews left on that one offer.

## `searchQueries` (type: `array`):

Find products by keyword (e.g. filtr brita) and scrape their reviews. Uses the products shown for the keyword in Allegro's app, in order, without duplicates.

## `maxProductsPerQuery` (type: `integer`):

How many products to take from each keyword's results.

## `maxReviewsPerProduct` (type: `integer`):

Maximum reviews saved per product. Set to 0 for all reviews (popular products have thousands).

## `sortBy` (type: `string`):

Allegro offers two orders: most helpful first (the default on the product page) or newest first.

## `ratings` (type: `array`):

Only reviews with these star ratings, e.g. 1 and 2 for complaints. Leave empty for all ratings.

## `onlyNewSince` (type: `string`):

Only reviews written on or after this date: an absolute date (2026-01-31) or a relative one (7 days, 2 weeks, 1 month). Sorts by newest and stops as soon as older reviews start, so scheduled runs only pay for new reviews.

## `proxyConfiguration` (type: `object`):

Apify Proxy is required: Allegro blocks most direct traffic. The default datacenter proxy works and switches to Polish residential IPs automatically if Allegro blocks a request.

## Actor input object example

```json
{
  "products": [
    "https://allegro.pl/produkt/aquafloow-maxi-filtr-do-wody-do-dzbanek-filtrujacy-brita-dafi-zamiennik-10x-58477991-7e13-4e80-b021-6e30661d5082"
  ],
  "maxProductsPerQuery": 10,
  "maxReviewsPerProduct": 20,
  "sortBy": "mostHelpful",
  "ratings": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `reviews` (type: `string`):

No description

## `products` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "products": [
        "https://allegro.pl/produkt/aquafloow-maxi-filtr-do-wody-do-dzbanek-filtrujacy-brita-dafi-zamiennik-10x-58477991-7e13-4e80-b021-6e30661d5082"
    ],
    "maxReviewsPerProduct": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/allegro-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "products": ["https://allegro.pl/produkt/aquafloow-maxi-filtr-do-wody-do-dzbanek-filtrujacy-brita-dafi-zamiennik-10x-58477991-7e13-4e80-b021-6e30661d5082"],
    "maxReviewsPerProduct": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("epicscrapers/allegro-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "products": [
    "https://allegro.pl/produkt/aquafloow-maxi-filtr-do-wody-do-dzbanek-filtrujacy-brita-dafi-zamiennik-10x-58477991-7e13-4e80-b021-6e30661d5082"
  ],
  "maxReviewsPerProduct": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call epicscrapers/allegro-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,epicscrapers/allegro-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/TIuJ8RVfsX6cYmBce/builds/f523Ev8cOxyvE7V97/openapi.json
