# Chrome Web Store Scraper (`scrapewise/chrome-web-store`) Actor

Scrape Chrome Web Store extensions by URL or ID, keyword search and category: users, rating, reviews count, version, update date, size, languages, permissions, publisher, badges. Also extension reviews. No login. US$ 2 per 1,000 rows; failed items are free.

- **URL**: https://apify.com/scrapewise/chrome-web-store.md
- **Developed by:** [Scrapewise Data](https://apify.com/scrapewise) (community)
- **Categories:** Developer tools, SEO tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 chrome extension or review delivereds

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

## Chrome Web Store Scraper

Chrome Web Store Scraper turns **public Chrome Web Store data** into clean JSON, CSV or Excel. Give it extension URLs or IDs, keywords, categories or a list of extensions whose reviews you want. For every extension you get users, rating, number of ratings, version, last update date, size, languages, declared permissions, publisher, trader status, Featured and Established publisher badges, website, support and privacy policy links. Reviews come with stars, text, date, helpful votes and the developer's reply. It is built for extension developers, SaaS founders, market researchers, security teams and agencies that track the Chrome extension ecosystem.

**US$ 2.00 per 1,000 rows. No monthly fee, no start fee. Failed items are free.**

### What you can do with it

- **Research a market before you build an extension.** Search "ai writing", "screenshot" or "pdf" and export every result with users, rating, rating count and last update date. See how big the leaders are, who stopped updating and where a niche has users but weak ratings.
- **Monitor competitors.** Schedule a daily run on your competitors' extension IDs and track users, rating, version and update date over time. A new version or a jump in ratings shows up the next morning.
- **Build a list of publisher companies.** Pull a whole category and keep the extensions whose publisher declared itself a trader (a business) in the store. You get the legal name, the D-U-N-S number, the business contact email the store publishes for traders, the website and the support page.
- **Audit permissions for security and compliance.** Export the declared `permissions`, `optionalPermissions` and `hostPermissions` of the extensions your company allows, or of a whole category, and flag everything that asks for `<all_urls>`, `cookies`, `webRequest` or `nativeMessaging`.
- **Read what users say.** Pull the latest 1 and 2 star reviews of your extension or a competitor's, with helpful votes and the developer's reply, and feed them to a spreadsheet, a support queue or an LLM for sentiment and bug clustering.

### Why this Chrome Web Store Scraper

- **Four modes in one Actor.** Extensions by URL or ID, keyword search, category listings and reviews. One input schema, one output format with a `type` column (`extension` or `review`).
- **Deep lists.** Search and category modes follow the store's own pagination, 100 extensions per request. In our tests the keyword "ad blocker" returned all 334 extensions the store lists for it in under 4 seconds, and one category went past 3,000 extensions in 30 seconds.
- **Full details on every result.** Search and category rows get the same fields as a direct extension lookup (version, update date, size, languages, permissions, publisher), not just the name and rating shown on the card. Turn it off for faster rank snapshots.
- **Permissions straight from the manifest.** The store ships each extension's manifest; the Actor reads `permissions`, `optional_permissions`, `host_permissions` and `manifest_version` from it, so you see exactly what the extension declares.
- **Badges and trader status.** `isFeatured`, `isEstablishedPublisher`, `publisherIsTrader` and `offersInAppPurchases` are real booleans, ready to filter.
- **Failed items never fail your run and are never charged.** An extension ID that does not exist, a line that is not a store URL or a keyword with no results comes back as one row with a stable `errorCode`, free of charge. The run only fails when nothing at all could be delivered because the store blocked every retry.
- **Drop-in field names.** The input also accepts the names used by other Chrome Web Store Actors: `searchQueries`, `extensionIds`, `maxResultsPerQuery`, `fetchDetails`, `extensionUrls`, `searchKeywords`, `startUrls`, `maxReviewsPerExtension`, `minRating`, `maxRating`, `reviewsSince`, `categoryUrls`, `queries` and `limit`.
- **No login, no cookies, no browser.** Plain HTTP through the Apify datacenter proxy, so runs are fast and cheap.

### Input

Every field is optional. With an empty input the Actor returns the Google Translate extension, which is what Apify's daily health check runs.

| Field | Type | What it does |
|---|---|---|
| `mode` | select | `auto` (default: runs whatever you fill in), `extensions`, `search`, `category` or `reviews` |
| `extensionUrls` | list of strings | Extension links or bare 32-letter IDs. In reviews mode, the extensions whose reviews you want. Links ending in `/reviews` switch to reviews automatically in auto mode. |
| `searchQueries` | list of strings | Keywords. Each returns up to `maxItems` extensions in store order, with `searchRank`. |
| `categories` | list of strings | Category slugs such as `productivity/developer` or category URLs |
| `maxItems` | integer, default 30 | Maximum extensions per keyword or category, and reviews per extension if `maxReviews` is empty |
| `includeDetails` | boolean, default true | Adds the full extension details to search and category rows |
| `maxReviews` | integer | Reviews per extension (reviews mode) |
| `reviewsSort` | select, default recent | `recent`, `helpful`, `highest` or `lowest` |
| `reviewsLanguage` | string | Two-letter code (`en`, `pt`, `es`, `de`, `ja`). Empty follows `language`; `all` returns every language. |
| `minRating` / `maxRating` | integer 1 to 5 | Keep only reviews inside this star range. Skipped reviews are not charged. |
| `reviewsSince` | date | Keep only reviews on or after this date |
| `language` | string, default en | Store language: `en`, `pt-BR`, `es`, `de`, `fr`, `ja`... |
| `proxyConfiguration` | proxy | Apify datacenter proxy by default |

Categories you can use: `productivity/communication`, `productivity/workflow`, `productivity/tools`, `productivity/education`, `productivity/developer`, `lifestyle/shopping`, `lifestyle/news`, `lifestyle/entertainment`, `lifestyle/games`, `lifestyle/social`, `lifestyle/art`, `lifestyle/well_being`, `lifestyle/travel`, `lifestyle/household`, `lifestyle/fun`, `make_chrome_yours/accessibility`, `make_chrome_yours/functionality` and `make_chrome_yours/privacy`. The category name also works (`Developer Tools`, `Shopping`).

What each kind of line in `extensionUrls` returns:

| You paste | You get |
|---|---|
| `https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb` | That extension with full details |
| `aapbdbdomjkkjkaonfhkkikfgjllcleb` | The same, from the bare ID |
| `https://chrome.google.com/webstore/detail/.../aapbdbdomjkkjkaonfhkkikfgjllcleb` | Old store links work too |
| `https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb/reviews` | The reviews of that extension |
| `https://chromewebstore.google.com/search/ad%20blocker` | Search results for "ad blocker" |
| `https://chromewebstore.google.com/category/extensions/productivity/developer` | The Developer Tools category |

#### Example: details of a list of extensions

```json
{
  "extensionUrls": [
    "https://chromewebstore.google.com/detail/ublock-origin-lite/ddkjiahejlhfcafbddmgiahcphecmpfh",
    "gighmmpiobklfepjocnamgkkbiglidom"
  ]
}
```

#### Example: keyword research with rank

```json
{
  "mode": "search",
  "searchQueries": ["screenshot", "ai writing"],
  "maxItems": 100
}
```

#### Example: the whole Developer Tools category, fast snapshot

```json
{
  "mode": "category",
  "categories": ["productivity/developer"],
  "maxItems": 500,
  "includeDetails": false
}
```

#### Example: negative reviews of the last month

```json
{
  "mode": "reviews",
  "extensionUrls": ["gighmmpiobklfepjocnamgkkbiglidom"],
  "maxReviews": 500,
  "maxRating": 2,
  "reviewsSince": "2026-08-15"
}
```

### Output

One row per extension or per review. The `type` column tells them apart. This is a real extension row from 15 September 2026 (long lists shortened with "..."):

```json
{
  "type": "extension",
  "id": "aapbdbdomjkkjkaonfhkkikfgjllcleb",
  "name": "Google Translate",
  "url": "https://chromewebstore.google.com/detail/aapbdbdomjkkjkaonfhkkikfgjllcleb",
  "shortDescription": "View translations easily as you browse the web. By the Google Translate team.",
  "description": "Highlight or right-click on a section of text and click on Translate icon next to it to translate it to your language...",
  "category": "productivity/education",
  "categoryName": "Education",
  "users": 36000000,
  "rating": 4.23,
  "ratingCount": 44850,
  "version": "2.0.17",
  "updatedAt": "2026-07-01T22:02:22Z",
  "firstPublishedAt": "2009-12-03T20:09:12Z",
  "size": "1.09MiB",
  "languages": ["Deutsch", "English", "English (United Kingdom)", "Filipino", "..."],
  "languageCodes": ["am", "ar", "bg", "bn", "..."],
  "manifestVersion": 3,
  "permissions": ["activeTab", "contextMenus", "storage", "offscreen", "scripting"],
  "optionalPermissions": [],
  "hostPermissions": [],
  "minChromeVersion": "115",
  "isFeatured": true,
  "isEstablishedPublisher": true,
  "offersInAppPurchases": false,
  "price": "Free",
  "publisherName": "Google Ireland, Ltd.",
  "publisherLegalName": "Google Ireland, Ltd.",
  "publisherIsTrader": true,
  "publisherEmail": "google-translate-chrome-extension-owners@google.com",
  "publisherDuns": "985840714",
  "websiteUrl": "http://translate.google.com/",
  "supportUrl": null,
  "privacyPolicyUrl": "https://policies.google.com/privacy",
  "iconUrl": "https://lh3.googleusercontent.com/3ZU5aHnsnQUl9ySPrGBqe5LXz_z9DK05DEfk10tpKHv5cvG19elbOr0BdW_k8GjLMFDexT2QHlDwAmW62iLVdek--Q",
  "searchQuery": null,
  "searchRank": null,
  "source": "extension",
  "error": null,
  "errorCode": null,
  "scrapedAt": "2026-09-15T20:28:14.927281+00:00"
}
```

Search and category rows have the same fields plus `searchQuery` and `searchRank` (for example Lightshot, rank 2 for "screenshot", 2,000,000 users, `hostPermissions` `["*://*/*"]`).

A real review row, with the developer's reply (the reviewer's name in the greeting is removed):

```json
{
  "type": "review",
  "reviewId": "113f0961-e999-423c-b4d3-792c57ee81ed",
  "extensionId": "nmmicjeknamkfloonkhhcjmomieiodli",
  "extensionName": "YouTube Summary with ChatGPT & Claude",
  "extensionUrl": "https://chromewebstore.google.com/detail/nmmicjeknamkfloonkhhcjmomieiodli",
  "rating": 5,
  "text": "It's a powerful extension , thank you so much.",
  "language": "en",
  "extensionVersion": "2.4.0",
  "createdAt": "2026-09-13T05:41:45Z",
  "updatedAt": "2026-09-13T05:41:45Z",
  "helpfulCount": 0,
  "notHelpfulCount": 0,
  "developerReply": "Hi,\n\nThank you so much for reviewing and rating. We're glad to hear that!\n\nLet us know if you have any questions or suggestions as we keep improving the product.",
  "developerReplyAt": "2026-09-13T15:54:49Z",
  "extensionReviewCount": 1595,
  "source": "reviews:nmmicjeknamkfloonkhhcjmomieiodli",
  "error": null,
  "errorCode": null,
  "scrapedAt": "2026-09-15T20:33:10.712975+00:00"
}
```

#### Extension fields

| Field | Description |
|---|---|
| `id` | 32-letter extension ID |
| `name`, `url` | Name shown in the store (in the chosen language when translated) and store link |
| `shortDescription`, `description` | Summary line and full description |
| `category`, `categoryName` | Category slug and its English name |
| `users` | User count shown by the store (the store rounds it, for example 36,000,000) |
| `rating`, `ratingCount` | Average stars and number of ratings |
| `version`, `updatedAt` | Current version and date of the last update |
| `firstPublishedAt` | Date the listing was first published |
| `size` | Package size as shown by the store |
| `languages`, `languageCodes` | Supported languages, names and codes |
| `manifestVersion` | 2 or 3 |
| `permissions`, `optionalPermissions`, `hostPermissions` | Declared in the extension manifest |
| `minChromeVersion` | Minimum Chrome version |
| `isFeatured` | Store "Featured" badge |
| `isEstablishedPublisher` | Store "Established publisher" badge (good record, no history of violations) |
| `offersInAppPurchases` | The listing says "Offers in-app purchases" |
| `price` | "Free": the Chrome Web Store no longer sells paid extensions; paid plans show up as in-app purchases |
| `publisherName` | Publisher name shown in the listing |
| `publisherIsTrader` | The publisher declared itself a trader (a business) under EU rules |
| `publisherLegalName`, `publisherEmail`, `publisherDuns` | Only for traders: legal name, business contact email and D-U-N-S number published by the store |
| `websiteUrl`, `supportUrl`, `privacyPolicyUrl` | Links from the listing |
| `iconUrl`, `screenshots` | Image links |
| `searchQuery`, `searchRank` | Keyword and position (search), position in category order (category) |
| `source`, `error`, `errorCode`, `scrapedAt` | Which input produced the row, error info (free rows) and collection time |

#### Review fields

| Field | Description |
|---|---|
| `reviewId` | Store review ID |
| `extensionId`, `extensionName`, `extensionUrl` | The reviewed extension |
| `rating` | 1 to 5 stars |
| `text` | Review text |
| `language` | Review language code |
| `extensionVersion` | Version the user had when reviewing |
| `createdAt`, `updatedAt` | Review dates |
| `helpfulCount`, `notHelpfulCount` | Votes from other users |
| `developerReply`, `developerReplyAt` | The publisher's public reply and its date |
| `extensionReviewCount` | Total reviews the store reports for that language |

Reviewer names and profile photos are **not** collected. Reviewers are ordinary people, and the text, stars, date and votes are what analysis needs.

#### Error codes (never charged)

| errorCode | Meaning |
|---|---|
| `EXTENSION_NOT_FOUND` | No public extension with that ID (removed, private or mistyped) |
| `NO_RESULTS` | The keyword or category returned nothing |
| `NO_REVIEWS` | The extension has no reviews in that language or inside your filters |
| `INVALID_INPUT` | The line is not a store URL or extension ID |
| `INVALID_CATEGORY` | Unknown category; use one of the slugs above |
| `BLOCKED` | The store blocked every retry for that request. Run again. |

The Console has three tables: **Extensions** (icon, name, users, rating, category, version, update date, badges, publisher, rank), **Permissions and publisher** and **Reviews**.

### Pricing

**US$ 2.00 per 1,000 rows delivered.** One charge is one extension row with all its details or one review row, whatever the mode. Details for search and category rows are included. Error rows are free, and duplicates inside a list are removed before charging.

| Rows | Cost |
|---|---|
| 1 extension (the default run) | US$ 0.002 |
| 1,000 | US$ 2.00 |
| 10,000 | US$ 20.00 |
| 100,000 | US$ 200.00 |

Compared with other Chrome Web Store Actors (measured 15 September 2026): the most used one is free but finished about 77% of its runs in 30 days; another charges US$ 5 per 1,000 and failed or timed out in about half of its runs; the rest range from US$ 2 to US$ 100 per 1,000. Review-only Actors cost less per review but need a second tool for extension data. Here extensions, rankings, categories, permissions and reviews cost a flat US$ 2 per 1,000, with no compute on top.

### How to use

#### In the Apify Console

1. Paste extension links or IDs, keywords or categories.
2. Pick a mode for reviews and set **Max items**.
3. Click **Start** and download JSON, CSV or Excel.

#### Through the API

Start a run and get the rows in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapewise~chrome-web-store/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries": ["screenshot"], "maxItems": 50}'
```

Python:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("scrapewise/chrome-web-store").call(run_input={
    "mode": "category",
    "categories": ["productivity/developer"],
    "maxItems": 200,
})
for ext in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(ext["name"], ext["users"], ext["rating"], ext["publisherIsTrader"])
```

Node.js:

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('scrapewise/chrome-web-store').call({
    mode: 'reviews',
    extensionUrls: ['gighmmpiobklfepjocnamgkkbiglidom'],
    maxReviews: 200,
    maxRating: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'reviews');
```

#### With AI agents (MCP)

The Actor works as a tool in Claude, Cursor, VS Code and other MCP clients through the Apify MCP server (`https://mcp.apify.com`). Add `scrapewise/chrome-web-store` as a tool and ask things like "list the top 50 Chrome extensions for 'meeting notes' with users and last update" or "summarize the 1 and 2 star reviews of this extension from the last 30 days". The agent reads the input schema, runs the Actor and gets the rows back.

#### Schedules and integrations

- **Schedules:** run the same input daily or weekly and compare `users`, `rating`, `version` and `searchRank` between runs.
- **Integrations:** send results to Google Sheets, Slack, Airtable, a webhook, n8n, Make or Zapier.

### Limitations

- **User counts are rounded by the store.** The store shows "36,000,000 users", not the exact number, and so does the Actor.
- **Search ranking depends on language.** The same keyword can rank differently with `language` set to `en` or `pt-BR`. Use the language your customers use.
- **Categories are big and ordered by the store.** A category keeps paging for thousands of extensions; set `maxItems` to what you need.
- **Themes are not covered.** The Actor handles extensions. Theme listings use a different page.
- **Reviews follow the store's language filter.** By default you get the reviews in the run language, as the store page shows. Set `reviewsLanguage` to `all` for every language.
- **Publisher contact data is limited on purpose.** Email, legal name and D-U-N-S appear only for publishers that declared themselves traders (businesses). Individual developers' emails, addresses and phone numbers are never collected.
- **Numbers are what the store shows publicly** at the moment of the run.
- Something broke? Open an issue on the Actor page. Issues are answered within 12 hours.

### FAQ

**Do I need a Google account, cookies or an API key?**
No. The Actor reads only public store data, with no login and no cookies. You only need an Apify account.

**Is there an official Chrome Web Store API for this?**
Not for public listings. Google's Chrome Web Store API only manages your own items. This Actor reads the same public data the store website shows to any visitor.

**How many extensions can I get for a keyword?**
Everything the store lists for it. "ad blocker" returned 334 extensions, which is all of them, in under 4 seconds. Set `maxItems` above the number you expect.

**Can I get the permissions an extension asks for?**
Yes. `permissions`, `optionalPermissions` and `hostPermissions` come from the extension manifest published with the listing, for direct lookups, search and category rows alike.

**Can I get the developer's email?**
Only when the publisher declared itself a trader in the store, in which case the store publishes a business contact email, the legal name and a D-U-N-S number. For individual developers the Actor returns the public publisher name and website only.

**Am I charged for errors, duplicates or filtered reviews?**
No. Error rows are free, duplicates within a list are removed, and reviews outside your star range or date are skipped without charge.

**Can I monitor new reviews every day?**
Yes. Use reviews mode with `reviewsSort: recent` and `reviewsSince` set to yesterday. Paging stops at the first older review, so a daily run costs only the new reviews.

**Which languages and countries does it work for?**
The store is global. Set `language` to any store language (`en`, `pt-BR`, `es`, `de`, `fr`, `ja` and more) to get translated names and descriptions, the ranking for that language and reviews in that language.

**Can I use it from n8n, Make or Zapier?**
Yes. Use the Apify app in those tools, pick `scrapewise/chrome-web-store` and map the dataset items to your next step.

**Is scraping the Chrome Web Store legal?**
The Actor collects only data the store shows publicly to any visitor without logging in, and it does not collect personal data of reviewers or contact data of individual developers. How you use the data is your responsibility; follow the store's terms and the privacy laws that apply to you, such as GDPR in Europe and LGPD in Brazil.

### Changelog

- **2026-09-15, 0.1:** first release. Extensions by URL or ID, keyword search with rank, category listings, reviews with sort, language, star and date filters; permissions from the manifest; badges and trader status; error rows free; field names compatible with other Chrome Web Store Actors.

This Actor collects only public data and respects the site's terms.

Keywords: chrome web store scraper, chrome extension scraper, chrome extensions scraper, chrome web store api, chrome web store data, chrome extension reviews scraper, chrome web store reviews, chrome extension permissions, chrome extension market research, chrome extension users, chrome web store search, chrome web store categories, extension competitor monitoring, chrome web store aso, browser extension data

# Actor input Schema

## `mode` (type: `string`):

Auto runs every input you fill in: extension URLs/IDs return full extension details, search terms return search results, categories return category listings. Choose 'Reviews of extensions' to get reviews for the extensions listed in 'Extension URLs or IDs'.

## `extensionUrls` (type: `array`):

One per line. A full Chrome Web Store link (https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb), a /reviews link, an old chrome.google.com/webstore link or the bare 32-letter extension ID (aapbdbdomjkkjkaonfhkkikfgjllcleb).

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

Keywords to search on the Chrome Web Store, one per line (for example: ad blocker, screenshot, ai writing). Each keyword returns up to 'Max items' extensions in the store's own ranking order, with the rank position.

## `categories` (type: `array`):

Chrome Web Store category slugs or category URLs, one per line. Examples: productivity/developer, productivity/tools, productivity/workflow, productivity/communication, productivity/education, lifestyle/shopping, lifestyle/social, lifestyle/entertainment, lifestyle/games, make\_chrome\_yours/privacy, make\_chrome\_yours/functionality, make\_chrome\_yours/accessibility.

## `maxItems` (type: `integer`):

Maximum extensions per search term or category, and maximum reviews per extension in reviews mode. Extension URLs/IDs are always returned in full.

## `includeDetails` (type: `boolean`):

Adds version, last update, size, languages, permissions, publisher, trader status, support and privacy policy links to every search and category result (one extra light request per extension). Turn off for faster rank snapshots with name, users, rating, category, badges and short description. Same price.

## `maxReviews` (type: `integer`):

Reviews mode only. Overrides 'Max items' for reviews. Leave empty to use 'Max items'.

## `reviewsSort` (type: `string`):

Reviews mode only. Same orders as the Chrome Web Store reviews page.

## `reviewsLanguage` (type: `string`):

Reviews mode only. Two-letter language code of the reviews to return (en, pt, es, de, ja, fr...). Leave empty to follow the 'Language' field; set 'all' for reviews in every language.

## `minRating` (type: `integer`):

Reviews mode only. Keep only reviews with at least this many stars. Filtered-out reviews are not charged.

## `maxRating` (type: `integer`):

Reviews mode only. Keep only reviews with at most this many stars (set 2 to monitor negative reviews). Filtered-out reviews are not charged.

## `reviewsSince` (type: `string`):

Reviews mode only. Keep only reviews created on or after this date, ISO format (2026-01-01 or 2026-01-01T12:00:00Z). With 'Most recent' order the Actor stops paging at the first older review, so daily monitoring runs stay cheap.

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

Store language (hl), for example en, pt-BR, es, de, fr, ja. Changes extension names and descriptions when the developer translated them, the search ranking for the keyword and the default review language.

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

Apify datacenter proxy is the default and works for the Chrome Web Store. Blocked requests are retried on a new IP.

## Actor input object example

```json
{
  "mode": "auto",
  "extensionUrls": [
    "https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb"
  ],
  "maxItems": 30,
  "includeDetails": true,
  "reviewsSort": "recent",
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `resultsCsv` (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 = {
    "mode": "auto",
    "extensionUrls": [
        "https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb"
    ],
    "maxItems": 30,
    "language": "en",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapewise/chrome-web-store").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 = {
    "mode": "auto",
    "extensionUrls": ["https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb"],
    "maxItems": 30,
    "language": "en",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapewise/chrome-web-store").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 '{
  "mode": "auto",
  "extensionUrls": [
    "https://chromewebstore.google.com/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb"
  ],
  "maxItems": 30,
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapewise/chrome-web-store --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapewise/chrome-web-store"
        }
    }
}
```

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/GQtcz4a6tj3PGFFyj/builds/kGsrtWqQtfdjvKDSo/openapi.json
