# Chrome Web Store Reviews Scraper (`automation-lab/chrome-web-store-reviews-scraper`) Actor

Scrape public Chrome Web Store extension reviews with ratings, reviewer names, dates, versions, locales, helpful votes, and source URLs.

- **URL**: https://apify.com/automation-lab/chrome-web-store-reviews-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** E-commerce
- **Stats:** 9 total users, 4 monthly users, 98.5% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Chrome Web Store Reviews Scraper

Collect public Chrome Web Store extension reviews for product, reputation, and competitor analysis.

This Apify Actor extracts review rows from public Chrome Web Store extension review pages.
It is designed for extension teams, agencies, product marketers, support teams, and analysts who need review text and rating signals in a clean dataset.

***

### What does Chrome Web Store Reviews Scraper do?

It turns Chrome Web Store review pages into structured data.

- ⭐ Star rating
- 💬 Review text
- 👤 Reviewer display name
- 🗓️ Review date
- 🌍 Locale
- 🧩 Extension ID and URL
- 🔢 Extension version when available
- 👍 Helpful vote count when public
- 🕒 Scrape timestamp

The actor works with public Chrome Web Store extension detail URLs and `/reviews` URLs.

***

### Who is it for?

#### Extension founders

Track what users praise, what they dislike, and which bugs appear after releases.

#### Product managers

Export reviews into spreadsheets, BI tools, or LLM workflows for roadmap planning.

#### Support teams

Monitor negative feedback and recurring issues without manually opening the Store page.

#### Marketing teams

Collect testimonials, review snippets, and rating evidence for campaign research.

#### Agencies

Audit review quality for multiple browser extension clients in one repeatable workflow.

#### Competitive intelligence teams

Compare review sentiment across competing Chrome extensions.

***

### Why use this actor?

- 🚀 HTTP-first extraction, no browser overhead for the MVP path
- 📦 Clean dataset rows, ready for CSV, JSON, Excel, or API export
- 🔁 Repeatable inputs for scheduled monitoring
- 🧩 Accepts URLs or raw extension IDs
- 🛡️ Uses only public Chrome Web Store review data
- 💸 Pay-per-review pricing keeps small runs inexpensive

***

### Data you can extract

| Field | Description |
| --- | --- |
| `extensionId` | Chrome Web Store extension ID |
| `extensionName` | Extension name parsed from the public page |
| `extensionUrl` | Extension detail URL |
| `reviewId` | Stable review ID |
| `reviewerName` | Public reviewer display name |
| `reviewerAvatarUrl` | Public avatar URL when available |
| `rating` | Star rating |
| `reviewBody` | Review text |
| `reviewDate` | Review creation date |
| `updatedDate` | Review update date |
| `helpfulCount` | Public helpful vote count |
| `developerResponse` | Public developer response when present |
| `extensionVersion` | Extension version attached to the review |
| `locale` | Review locale |
| `totalReviewCount` | Total public review count reported by Chrome Web Store |
| `pageUrl` | Review page URL |
| `sourceUrl` | Source URL used for the scrape |
| `scrapedAt` | Actor scrape timestamp |

***

### How much does it cost to scrape Chrome Web Store reviews?

The actor uses pay-per-event pricing.

- A small start event is charged once per run.
- A review event is charged for each saved review row.
- BRONZE price is $0.0001 per review (the platform minimum practical tier), with tier discounts for larger plans.
- You control spend with `maxReviewsPerExtension`.

Example: set `maxReviewsPerExtension` to `20` for a quick sample, or increase it for a larger review export.

***

### How to scrape Chrome Web Store reviews

1. Open the actor on Apify.
2. Paste one or more Chrome Web Store extension review URLs.
3. Set `maxReviewsPerExtension`.
4. Click **Start**.
5. Download the dataset as CSV, JSON, Excel, or via API.

***

### Input

```json
{
  "startUrls": [
    {
      "url": "https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews"
    }
  ],
  "maxReviewsPerExtension": 20,
  "reviewsPerPage": 50,
  "language": "en"
}
```

***

### Input fields

#### `startUrls`

Chrome Web Store extension detail URLs or `/reviews` URLs.

#### `extensionIds`

Optional raw Chrome extension IDs.

#### `maxReviewsPerExtension`

Maximum reviews to save for each extension.

#### `reviewsPerPage`

Advanced backend page size. The default is recommended.

#### `language`

Chrome Web Store language code such as `en`, `de`, `fr`, `es`, or `ja`.

***

### Output example

```json
{
  "extensionId": "cjpalhdlnbpafiamejdnhcphjbkeiagm",
  "extensionName": "uBlock Origin",
  "extensionUrl": "https://chromewebstore.google.com/detail/cjpalhdlnbpafiamejdnhcphjbkeiagm",
  "reviewId": "b1fb4214-f343-4711-a719-4975a22c2e82",
  "reviewerName": "The Heretic (Snordelhans)",
  "rating": 5,
  "reviewBody": "Greatest browser extension ever made in the history of mankind. Nothing comes even close.",
  "reviewDate": "2026-06-09T00:01:54.000Z",
  "locale": "en"
}
```

***

### Tips for best results

- Use `/reviews` URLs when possible.
- Keep first tests small with 10 to 20 reviews.
- Increase limits after confirming the extension has enough public reviews.
- Schedule daily or weekly runs to monitor new feedback.
- Use `extensionIds` when chaining from another Chrome Web Store dataset.

***

### Common use cases

- Review monitoring for your own extension
- Competitor feedback analysis
- Rating trend exports
- Bug report discovery
- Customer voice analysis
- LLM sentiment classification
- Agency reporting
- Product launch monitoring

***

### Integrations

Use the dataset with:

- Google Sheets exports
- Make or Zapier workflows
- Apify webhooks
- BI dashboards
- Data warehouses
- LLM summarization pipelines
- Support triage automations

***

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/chrome-web-store-reviews-scraper').call({
  startUrls: [{ url: 'https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews' }],
  maxReviewsPerExtension: 20,
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/chrome-web-store-reviews-scraper').call(run_input={
    'startUrls': [{'url': 'https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews'}],
    'maxReviewsPerExtension': 20,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~chrome-web-store-reviews-scraper/runs?token=MY-APIFY-TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews"}],"maxReviewsPerExtension":20}'
```

***

### MCP usage

Connect through Apify MCP:

`https://mcp.apify.com/?tools=automation-lab/chrome-web-store-reviews-scraper`

#### Claude Code

```bash
claude mcp add --transport http apify-chrome-web-store-reviews "https://mcp.apify.com/?tools=automation-lab/chrome-web-store-reviews-scraper"
```

#### Claude Desktop

Add this server in **Settings → Connectors → Add custom connector**:

- Name: `apify-chrome-web-store-reviews`
- URL: `https://mcp.apify.com/?tools=automation-lab/chrome-web-store-reviews-scraper`

#### Cursor

Open **Settings → Cursor Settings → MCP → Add new global MCP server** and add:

```json
{
  "mcpServers": {
    "apify-chrome-web-store-reviews": {
      "url": "https://mcp.apify.com/?tools=automation-lab/chrome-web-store-reviews-scraper"
    }
  }
}
```

#### VS Code

Run **MCP: Add Server** from the Command Palette, select **HTTP**, enter the MCP URL above, and name it `apify-chrome-web-store-reviews`. Or add this to `.vscode/mcp.json`:

```json
{
  "servers": {
    "apify-chrome-web-store-reviews": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=automation-lab/chrome-web-store-reviews-scraper"
    }
  }
}
```

Example prompts:

- "Scrape 50 reviews for this Chrome extension and summarize the main complaints."
- "Compare ratings and review text for these three extension IDs."
- "Find reviews mentioning broken features or recent bugs."

***

### Scheduling

You can schedule this actor to run every day, week, or month.

Suggested monitoring setup:

1. Add the extension review URL.
2. Set a small review limit.
3. Enable a schedule.
4. Send dataset results to a webhook or spreadsheet.

***

### Data quality notes

Chrome Web Store may expose different optional fields for different reviews.
Some reviews do not include helpful votes, developer responses, or version values.
The actor keeps those fields as `null` when the public payload does not include them.

***

### Limitations

- The actor only collects public Chrome Web Store review data.
- It does not log in to Google accounts.
- It does not submit, edit, or vote on reviews.
- Review ordering follows the public backend response.
- Deleted or hidden reviews cannot be collected.

***

### Legality

This actor is designed for public data extraction.

### Is it legal to scrape Chrome Web Store reviews?

This actor is designed for public data extraction.
You should still review Chrome Web Store terms, privacy rules, and your use case.
Do not use exported data for spam, harassment, or decisions that require user consent.

***

### FAQ

#### Can I scrape multiple extensions?

Yes. Add multiple URLs or extension IDs and set a per-extension limit.

#### Why did I get fewer reviews than requested?

The extension may have fewer public reviews, or Chrome Web Store may return fewer rows for a specific language/context.

#### Do I need a Google login?

No. The actor uses public review pages and public backend payloads.

#### Can I filter by rating?

The current MVP exports reviews first. You can filter the dataset after export.

#### Does it use a browser?

No. The actor is HTTP-first for lower cost and faster runs.

***

### Related scrapers

- https://apify.com/automation-lab/chrome-web-store-extension-scraper
- https://apify.com/automation-lab/google-play-reviews-scraper
- https://apify.com/automation-lab/app-store-reviews-scraper

***

### Changelog

#### 0.1

Initial build for public Chrome Web Store extension reviews.

# Actor input Schema

## `startUrls` (type: `array`):

Paste Chrome Web Store extension detail or /reviews URLs. The actor extracts the extension ID automatically.

## `extensionIds` (type: `array`):

Optional raw Chrome extension IDs, one per item. Use this when you already have IDs from another workflow.

## `maxReviewsPerExtension` (type: `integer`):

Stops after this many reviews for each extension URL or ID.

## `reviewsPerPage` (type: `integer`):

Advanced: backend page size. Keep the default unless you need smaller batches.

## `language` (type: `string`):

Language code passed to Chrome Web Store, for example en, de, fr, es, or ja.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews"
    }
  ],
  "extensionIds": [
    "cjpalhdlnbpafiamejdnhcphjbkeiagm"
  ],
  "maxReviewsPerExtension": 20,
  "reviewsPerPage": 10,
  "language": "en"
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews"
        }
    ],
    "extensionIds": [
        "cjpalhdlnbpafiamejdnhcphjbkeiagm"
    ],
    "maxReviewsPerExtension": 20,
    "reviewsPerPage": 10,
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/chrome-web-store-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 = {
    "startUrls": [{ "url": "https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews" }],
    "extensionIds": ["cjpalhdlnbpafiamejdnhcphjbkeiagm"],
    "maxReviewsPerExtension": 20,
    "reviewsPerPage": 10,
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/chrome-web-store-reviews-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/reviews"
    }
  ],
  "extensionIds": [
    "cjpalhdlnbpafiamejdnhcphjbkeiagm"
  ],
  "maxReviewsPerExtension": 20,
  "reviewsPerPage": 10,
  "language": "en"
}' |
apify call automation-lab/chrome-web-store-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/chrome-web-store-reviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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