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

Pull Chrome extensions with name, rating, review count, install count, version, manifest, permissions, category, developer email, screenshots, and website URL. Search by query or scrape specific extension IDs. Export to JSON, CSV, or Excel for extension research and security audits.

- **URL**: https://apify.com/parseforge/chrome-web-store-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Other, Automation
- **Stats:** 8 total users, 4 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

from $8.25 / 1,000 items

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🧩 Chrome Web Store Scraper

> 🚀 **Pull Chrome extensions with rating, install count, version, and permissions.** Search by query or scrape specific extension IDs. No login.

> 🕒 **Last updated:** 2026-05-01 · **📊 14 fields** per extension · **🧩 200,000+ extensions** · **🔐 permissions surfaced** · **🆓 SSR-rendered metadata**

The **Chrome Web Store Scraper** extracts extension data from the public Chrome Web Store search and category pages and returns name, extension ID, rating, review count, install count, version, manifest version, permissions, category, developer email, and a URL pointing back at the listing.

The Chrome Web Store hosts 200,000+ extensions used by 3 billion Chrome users worldwide. Extension permissions are a critical security signal, install count tracks adoption, and rating distribution reveals quality issues. This Actor fans across categories and search queries to reach 100+ extensions per run via the SSR-rendered `AF_initDataCallback` blocks every page exposes.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Security researchers, browser tool builders, ecosystem analysts, extension developers | Security audits, market sizing, competitive research, permission analysis |

---

### 📋 What the Chrome Web Store Scraper does

Three filtering workflows in a single run:

- 🔍 **Search mode.** Submit a search query and the Actor walks the search results plus 13 popular categories.
- 🆔 **IDs mode.** Submit specific 32-character extension IDs and the Actor pulls each detail page directly.
- 🗂️ **Category fanout.** Search mode automatically fans across productivity, communication, developer, tools, workflow, lifestyle, entertainment, news, shopping, social, well-being, accessibility, and "make Chrome yours."

Each row reports the extension ID, icon URL, name, rating, rating count, install count, version, manifest version, permissions array, category, short description, website URL, developer email from the manifest, the canonical detail page URL, and a scrape timestamp.

> 💡 **Why it matters:** Chrome extensions can read every webpage you visit, which makes the permissions list the highest-value security signal in the Web Store. Researchers audit popular extensions for over-permissioned categories. Tool builders study install velocity to size markets. Developers benchmark against competitors. The Web Store has no bulk export, so this Actor is the cleanest path.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Extensions to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>mode</code></td><td>string</td><td><code>"search"</code></td><td><code>search</code> for keyword + category fanout, <code>ids</code> for specific extension IDs.</td></tr>
<tr><td><code>searchQuery</code></td><td>string</td><td><code>"translation"</code></td><td>Used in search mode. Free-text search query.</td></tr>
<tr><td><code>extensionIds</code></td><td>array</td><td>empty</td><td>Used in ids mode. 32-char extension IDs from the URL.</td></tr>
</tbody>
</table>

**Example: 100 translation extensions via search + category fanout.**

```json
{
    "maxItems": 100,
    "mode": "search",
    "searchQuery": "translation"
}
````

**Example: lookup specific extension IDs only.**

```json
{
    "maxItems": 5,
    "mode": "ids",
    "extensionIds": [
        "aapbdbdomjkkjkaonfhkkikfgjllcleb",
        "fheoggkfdfchfphceeifdbepaooicaho",
        "bmnlcjabgnpnenekpadlanbbkooimhnj"
    ]
}
```

> ⚠️ **Good to Know:** the `AF_initDataCallback` JSON the Actor parses is Google's internal SSR data layer and changes occasionally. The Actor matches on `ds:0` for detail pages and any `ds:N` block on search/category pages. If a future Chrome Web Store redesign changes the layout, the Actor will need a parser update.

***

### 📊 Output

Each extension record contains **14 fields**. Download as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🆔 `extensionId` | string | `"aapbdbdomjkkjkaonfhkkikfgjllcleb"` |
| 🖼️ `iconUrl` | string | `"https://lh3.googleusercontent.com/3ZU5..."` |
| 📰 `name` | string | `"Google Translate"` |
| ⭐ `rating` | number | null | `4.237` |
| 💬 `ratingCount` | integer | null | `44745` |
| 👥 `users` | integer | null | `39000000` |
| 🔢 `version` | string | null | `"2.0.16"` |
| 📂 `category` | string | null | `"productivity/education"` |
| 📝 `shortDescription` | string | null | `"View translations easily as you browse the web..."` |
| 🌐 `websiteUrl` | string | null | `"http://translate.google.com/"` |
| 🔐 `permissions` | array | `["activeTab", "contextMenus", "storage"]` |
| 📋 `manifestVersion` | integer | null | `3` |
| 👤 `author` | string | null | `"google-translate-chrome-extension-owners@google.com"` |
| 🔗 `url` | string | `"https://chromewebstore.google.com/detail/aapbdbdomjkkjkaonfhkkikfgjllcleb"` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-01T01:55:30.000Z"` |

#### 📦 Sample records

<details>
<summary><strong>⭐ Mass-install extension: Google Translate (39M users)</strong></summary>

```json
{
    "extensionId": "aapbdbdomjkkjkaonfhkkikfgjllcleb",
    "iconUrl": "https://lh3.googleusercontent.com/3ZU5aHnsnQUl9ySPrGBqe5LXz_z9DK05DEfk10tpKHv5cvG19elbOr0BdW_k8GjLMFDexT2QHlDwAmW62iLVdek--Q",
    "name": "Google Translate",
    "rating": 4.237,
    "ratingCount": 44745,
    "users": 39000000,
    "version": "2.0.16",
    "category": "productivity/education",
    "shortDescription": "View translations easily as you browse the web. By the Google Translate team.",
    "websiteUrl": "http://translate.google.com/",
    "permissions": ["activeTab", "contextMenus", "storage", "offscreen", "scripting"],
    "manifestVersion": 3,
    "author": "google-translate-chrome-extension-owners@google.com"
}
```

</details>

<details>
<summary><strong>📚 Mid-tier productivity extension</strong></summary>

```json
{
    "extensionId": "fheoggkfdfchfphceeifdbepaooicaho",
    "name": "DeepL Translate",
    "rating": 4.7,
    "ratingCount": 12850,
    "users": 1000000,
    "version": "1.16.4",
    "category": "productivity",
    "permissions": ["activeTab", "storage", "contextMenus"]
}
```

</details>

<details>
<summary><strong>🆕 Niche translation utility</strong></summary>

```json
{
    "extensionId": "bmnlcjabgnpnenekpadlanbbkooimhnj",
    "name": "Translate Anywhere",
    "rating": 4.5,
    "ratingCount": 220,
    "users": 5000,
    "version": "0.9.2",
    "permissions": ["activeTab"]
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🆓 | **No login.** Reads only the public Chrome Web Store HTML. |
| 🔐 | **Permissions surfaced.** Critical security signal exposed per extension. |
| 👥 | **Install counts.** Real adoption numbers per extension. |
| 🗂️ | **Category fanout.** Search mode walks 13 categories to break per-page caps. |
| 📋 | **Manifest version.** Tells you v2 vs v3 status for security audits. |
| 🚀 | **Sub-15-second runs.** Typical 100-extension pulls finish quickly. |
| 🆔 | **ID lookup mode.** Direct fetch by extension ID for targeted research. |

> 📊 In a single 13-second run the Actor returned 100 extensions across the search query "translation" and 13 popular categories.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| Manual Web Store browsing | Free | One extension at a time | Live | Built-in | Hours |
| Paid extension-data tools | $$$ subscription | Aggregated | Daily | Built-in | Account setup |
| Chrome Extension Source Viewer | Free | Per-extension | Live | None | Manual |
| **⭐ Chrome Web Store Scraper** *(this Actor)* | Pay-per-event | Search + category fanout | Live | Search query, IDs | None |

Same SSR data Google embeds in every Web Store page, exposed as clean structured rows.

***

### 🚀 How to use

1. 🆓 **Create a free Apify account.** [Sign up here](https://console.apify.com/sign-up?fpr=vmoqkp) and get $5 in free credit.
2. 🔍 **Open the Actor.** Search for "Chrome Web Store" in the Apify Store.
3. ⚙️ **Pick a mode.** Search query or specific extension IDs.
4. ▶️ **Click Start.** A 100-extension run typically completes in 10 to 15 seconds.
5. 📥 **Download.** Export as CSV, Excel, JSON, or XML.

> ⏱️ Total time from sign-up to first dataset: under five minutes.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%">

#### 🛡️ Security & privacy

- Audit popular extensions for over-permissioned categories
- Track manifest v2 vs v3 migration status
- Flag extensions requesting suspicious permissions
- Build internal allow-lists with structured data

</td>
<td width="50%">

#### 📊 Market sizing

- Quantify install distributions per category
- Identify dominant extensions in a niche
- Track install-count growth over time
- Map developer concentration across the catalog

</td>
</tr>
<tr>
<td width="50%">

#### 🛠️ Extension developers

- Benchmark your extension's rating and installs
- Mine top-extension descriptions for positioning
- Identify under-served sub-categories
- Track new launches in your space

</td>
<td width="50%">

#### 📰 Tech writing

- Publish "best Chrome extensions" lists with real data
- Cite specific extensions by ID and version
- Track viral extension launches
- Build interactive extension finders

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

***

### 🔌 Automating Chrome Web Store Scraper

Run this Actor on a schedule, from your codebase, or inside another tool:

- **Node.js** SDK: see [Apify JavaScript client](https://docs.apify.com/api/client/js/) for programmatic runs.
- **Python** SDK: see [Apify Python client](https://docs.apify.com/api/client/python/) for the same flow in Python.
- **HTTP API**: see [Apify API docs](https://docs.apify.com/api/v2) for raw REST integration.

Schedule weekly runs from the Apify Console to refresh extension metadata. Pipe results into Google Sheets, S3, BigQuery, or your own webhook with the built-in [integrations](https://docs.apify.com/platform/integrations).

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20%F0%9F%A7%A9%20Chrome%20Web%20Store%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20%F0%9F%A7%A9%20Chrome%20Web%20Store%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20%F0%9F%A7%A9%20Chrome%20Web%20Store%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20%F0%9F%A7%A9%20Chrome%20Web%20Store%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🔍 What is the difference between search and ids mode?

Search mode walks the search results plus 13 popular categories until `maxItems` is reached. IDs mode fetches the detail page for each extension ID you provide.

#### 🔐 Where do permissions come from?

The Actor parses the manifest JSON embedded in the SSR data. Permissions reflect what the extension declares. Optional permissions and host permissions are merged in the same array.

#### 📋 What is manifestVersion?

Chrome extensions are migrating from v2 to v3. v3 has stricter security and a service-worker model. The field tells you exactly which version each extension uses.

#### 📂 What does the category field look like?

A `/`-separated path like `productivity/education`. The first segment is the top-level category, the second is the sub-category Google assigns.

#### 👥 How accurate are install counts?

Google rounds install counts to nearest power-of-ten bucket: `100`, `1,000`, `10,000`, `100,000`, `1,000,000`, `10,000,000`. The Actor surfaces the rounded count.

#### 📦 How many extensions can I pull per run?

Free plan caps at 10. Paid plans up to 1,000,000. Per-run the search + category fanout reaches 100+ extensions; for larger sweeps split across multiple runs by category.

#### 🆔 Where do I find an extension ID?

The 32-character lowercase string at the end of every extension URL: `https://chromewebstore.google.com/detail/{name}/{id}`.

#### 💼 Can I use this for commercial work?

Yes. The Actor reads only what Google publicly serves to any browser. Always honor each extension developer's terms when republishing content.

#### 💳 Do I need a paid Apify plan?

The free plan returns up to 10 extensions per run. Paid plans return up to 1,000,000.

#### ⚠️ What if a run returns no records?

The most likely cause is a niche search query with no results plus empty category fanout matches. Try a broader query. If it persists, [open a contact form](https://tally.so/r/BzdKgA) and include the run URL.

#### 🔁 How fresh is the data?

Live. Each run hits the Web Store at run time.

#### ⚖️ Is this legal?

The Actor reads only what the Chrome Web Store serves to any browser. It does not authenticate, does not bypass rate limits, and does not download extension code.

***

### 🔌 Integrate with any app

- [**Make**](https://apify.com/integrations/make) - drop run results into 1,800+ apps.
- [**Zapier**](https://apify.com/integrations/zapier) - trigger automations off completed runs.
- [**Slack**](https://apify.com/integrations/slack) - post run summaries to a channel.
- [**Google Sheets**](https://apify.com/integrations/google-sheets) - sync each run into a spreadsheet.
- [**Webhooks**](https://docs.apify.com/platform/integrations/webhooks) - notify your own services on run finish.
- [**Airbyte**](https://apify.com/integrations/airbyte) - load runs into Snowflake, BigQuery, or Postgres.

***

### 🔗 Recommended Actors

- [**🛍️ Shopify App Store Scraper**](https://apify.com/parseforge/shopify-app-store-scraper) - the same workflow for Shopify apps.
- [**🐙 GitHub Trending Repos Scraper**](https://apify.com/parseforge/github-trending-scraper) - track open-source projects behind extensions.
- [**💬 Stack Exchange Q\&A Scraper**](https://apify.com/parseforge/stack-exchange-qa-scraper) - cross-reference extension topics with developer Q\&A.
- [**🅱️ Bing Search Scraper**](https://apify.com/parseforge/bing-search-scraper) - check current rank for extension landing pages.
- [**🦆 DuckDuckGo Search Scraper**](https://apify.com/parseforge/duckduckgo-search-scraper) - alternative SERP signal alongside Web Store data.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more pre-built scrapers and data tools.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) and we'll route the question to the right person.

***

> Chrome and Chrome Web Store are registered trademarks of Google LLC. This Actor is not affiliated with or endorsed by Google. It reads only the public SSR-rendered metadata every Chrome Web Store page exposes for search engines.

# Actor input Schema

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000.

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

Search by keyword OR scrape specific extension IDs.

## `searchQuery` (type: `string`):

Used when mode=search. Free-text search on the Chrome Web Store.

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

Used when mode=ids. The 32-char ID from the URL. Example: aapbdbdomjkkjkaonfhkkikfgjllcleb

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "search",
  "searchQuery": "translation"
}
```

# 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 = {
    "maxItems": 10,
    "mode": "search",
    "searchQuery": "translation"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/chrome-web-store-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 = {
    "maxItems": 10,
    "mode": "search",
    "searchQuery": "translation",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/chrome-web-store-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 '{
  "maxItems": 10,
  "mode": "search",
  "searchQuery": "translation"
}' |
apify call parseforge/chrome-web-store-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chrome Web Store Scraper",
        "description": "Pull Chrome extensions with name, rating, review count, install count, version, manifest, permissions, category, developer email, screenshots, and website URL. Search by query or scrape specific extension IDs. Export to JSON, CSV, or Excel for extension research and security audits.",
        "version": "1.0",
        "x-build-id": "8O1IibvH2bOgiqUIV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~chrome-web-store-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-chrome-web-store-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~chrome-web-store-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-chrome-web-store-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~chrome-web-store-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-chrome-web-store-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000."
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "ids"
                        ],
                        "type": "string",
                        "description": "Search by keyword OR scrape specific extension IDs.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Used when mode=search. Free-text search on the Chrome Web Store."
                    },
                    "extensionIds": {
                        "title": "Extension IDs",
                        "type": "array",
                        "description": "Used when mode=ids. The 32-char ID from the URL. Example: aapbdbdomjkkjkaonfhkkikfgjllcleb",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
