# Chrome Extension Email Extractor (`b2b_lead_generation/chrome-extension-email-extractor`) Actor

Chrome extension scraper that pulls ratings, user counts, email, phone, manifest JSON, and more from the Chrome Web Store by extension ID, with no browser needed.

- **URL**: https://apify.com/b2b\_lead\_generation/chrome-extension-email-extractor.md
- **Developed by:** [B2B Lead Generation](https://apify.com/b2b_lead_generation) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

## Chrome Extension Details - Fetch Emails, Phones, Websites and Full Metadata from Any Chrome Extension

![Chrome Extension Details](https://i.imgur.com/nc1vbwt.png)

Give it an extension ID or a full Chrome Web Store URL and it returns everything the store knows. Name, version, star rating, user count, full description, manifest JSON, icon URLs, file size, supported languages, last updated date, and full developer contact info including email, phone number, address, and company name. No browser, no HTML scraping. It talks directly to the store's own internal API.

### Use cases

- Research competing extensions: compare user counts, ratings, and what permissions they request
- Track version bumps and install growth over time for extensions you care about
- Audit permissions and host access by inspecting raw manifest JSON
- Collect developer emails, phone numbers, and addresses from store listings for outreach
- Build a Chrome Web Store dataset for analysis, sales prospecting, or research

### Input

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `extensionIds` | array | required | List of Chrome extension IDs or full Chrome Web Store URLs. Accepts bare IDs (e.g. `gccahjgcckaemgpliioopngfgdaceffo`) or full store URLs. |
| `maxItems` | integer | 1000 | Maximum number of extensions to fetch per run. |
| `timeoutSecs` | integer | 300 | Maximum total run time in seconds. |
| `requestTimeoutSecs` | integer | 30 | Maximum time to wait for a single API request. |
| `proxyConfiguration` | object | Datacenter (Anywhere) | Proxy type and location to use for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional. |

#### Example input

```json
{
    "extensionIds": [
        "https://chromewebstore.google.com/detail/merciapp-ai-writing-assis/gccahjgcckaemgpliioopngfgdaceffo",
        "majdfhpaihoncoakbjgbdhglocklcgno",
        "bdlffpdkioakgjjpmgpboogfiaegbpgp",
        "oeopbcgkkoapgobdbedcemjljbihmemj"
    ],
    "maxItems": 1000,
    "requestTimeoutSecs": 30,
    "proxyConfiguration": { "useApifyProxy": true }
}
````

### What data does this actor extract?

One record per extension:

```json
{
    "extensionId": "gccahjgcckaemgpliioopngfgdaceffo",
    "name": "MerciApp - AI Writing Assistant",
    "version": "3.93.1",
    "summary": "Write better, faster, wherever you work.",
    "extensionDescription": "MerciApp helps you correct, rephrase...",
    "rating": 4.52,
    "ratingCount": 134,
    "userCount": 80000,
    "websiteUrl": "merci-app.com",
    "storeUrl": "https://chromewebstore.google.com/detail/gccahjgcckaemgpliioopngfgdaceffo",
    "iconUrl": "https://lh3.googleusercontent.com/...",
    "smallIconUrl": "https://lh3.googleusercontent.com/...",
    "isFeatured": true,
    "fileSize": "4.2MiB",
    "languages": ["English", "français"],
    "lastUpdated": "2026-05-04T15:12:53+00:00",
    "manifest": {
        "manifest_version": 3,
        "name": "__MSG_extensionName__",
        "version": "3.93.1",
        "permissions": ["activeTab", "storage", "scripting"]
    },
    "developerEmail": "contact@merci-app.com",
    "developerPhone": "+33679280681",
    "developerCompany": "MerciApp",
    "developerContact": "ARTHUR OLLIER",
    "developerAddress": "295 Bd Saint-Denis\nCourbevoie 92400\nFR",
    "supportUrl": "https://www.merci-app.com"
}
```

![Sample output table](https://i.imgur.com/Xr3hEm4.png)

| Field | Type | Description |
|-------|------|-------------|
| `extensionId` | string | The bare extension ID. |
| `name` | string | Full display name from the store listing. |
| `version` | string | Current published version number. |
| `summary` | string | Short one-line tagline from the listing. |
| `extensionDescription` | string | Full long-form description from the store listing. |
| `rating` | number | Average star rating (1.0 to 5.0). |
| `ratingCount` | integer | Number of user ratings. |
| `userCount` | integer | Approximate number of active installs. |
| `websiteUrl` | string | Developer website URL from the listing. |
| `storeUrl` | string | Direct link to the extension's Chrome Web Store page. |
| `iconUrl` | string | URL of the extension's large icon. |
| `smallIconUrl` | string | URL of the promotional banner image. |
| `isFeatured` | boolean | Whether Google has marked this extension as featured. |
| `fileSize` | string | Installed file size (e.g. "4.2MiB"). |
| `languages` | array | Languages the extension supports. |
| `lastUpdated` | string | ISO 8601 timestamp of the most recent update. |
| `manifest` | object | Parsed manifest.json from the extension package. |
| `developerEmail` | string | Developer or support email from the store listing. |
| `developerPhone` | string | Phone number listed by the developer. |
| `developerCompany` | string | Company or publisher name. |
| `developerContact` | string | Individual developer or contact person name. |
| `developerAddress` | string | Physical address of the developer or company. |
| `supportUrl` | string | Support or privacy policy URL. |

### FAQ

**Can I pass full Chrome Web Store URLs instead of bare extension IDs?**
Yes. Full URLs like `https://chromewebstore.google.com/detail/merciapp-ai-writing-assis/gccahjgcckaemgpliioopngfgdaceffo` and bare IDs like `gccahjgcckaemgpliioopngfgdaceffo` both work.

**Does this actor scrape the page or call an API?**
It calls the store's internal batchexecute API. Faster than page scraping and returns clean structured data, including the raw manifest JSON.

**What happens if an extension ID is invalid or not found?**
It logs the error and keeps going. The failed ID shows up in the dataset with an `errorMessage` field instead of extension data.

**How many extensions can I run at once?**
The default cap is 1000 per run. For larger lists, batch them using Apify's scheduling.

**Does the manifest field have the full manifest?**
Yes. The complete parsed manifest.json including permissions, content scripts, background workers, and host permissions.

### You might also find these useful

- [Realtor Properties Contact Email](https://apify.com/b2b_lead_generation/realtor-properties-contact-email) - extract contact info and emails from Realtor.com property listings
- [LoopNet Agents Email](https://apify.com/b2b_lead_generation/loopnet-agents-email) - extract agent emails and contact details from LoopNet commercial real estate listings

### Integrations

Connect with other tools using [Apify integrations](https://apify.com/integrations). Export to Google Sheets, trigger Zapier or Make workflows, send to Slack, or pipe into Airbyte. Use [webhooks](https://docs.apify.com/integrations/webhooks) to kick off downstream actions when a run finishes.

# Actor input Schema

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

List of Chrome extension IDs or full Chrome Web Store URLs to fetch. Accepts bare extension IDs (e.g. gccahjgcckaemgpliioopngfgdaceffo) or full store URLs (e.g. https://chromewebstore.google.com/detail/name/id).

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

Maximum number of extensions to fetch per run. Prevents runaway costs on large lists.

## `timeoutSecs` (type: `integer`):

Maximum total time the actor will run, in seconds.

## `requestTimeoutSecs` (type: `integer`):

Maximum time to wait for a single Chrome Web Store API request, in seconds.

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

Select proxies to use for requests. Helps avoid IP blocking and rate limits. Datacenter proxies are fastest; Residential proxies are harder to detect.

## Actor input object example

```json
{
  "extensionIds": [
    "https://chromewebstore.google.com/detail/merciapp-ai-writing-assis/gccahjgcckaemgpliioopngfgdaceffo",
    "majdfhpaihoncoakbjgbdhglocklcgno",
    "bdlffpdkioakgjjpmgpboogfiaegbpgp",
    "oeopbcgkkoapgobdbedcemjljbihmemj"
  ],
  "maxItems": 1000,
  "timeoutSecs": 300,
  "requestTimeoutSecs": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "extensionIds": [
        "https://chromewebstore.google.com/detail/merciapp-ai-writing-assis/gccahjgcckaemgpliioopngfgdaceffo",
        "majdfhpaihoncoakbjgbdhglocklcgno",
        "bdlffpdkioakgjjpmgpboogfiaegbpgp",
        "oeopbcgkkoapgobdbedcemjljbihmemj"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("b2b_lead_generation/chrome-extension-email-extractor").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 = {
    "extensionIds": [
        "https://chromewebstore.google.com/detail/merciapp-ai-writing-assis/gccahjgcckaemgpliioopngfgdaceffo",
        "majdfhpaihoncoakbjgbdhglocklcgno",
        "bdlffpdkioakgjjpmgpboogfiaegbpgp",
        "oeopbcgkkoapgobdbedcemjljbihmemj",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("b2b_lead_generation/chrome-extension-email-extractor").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 '{
  "extensionIds": [
    "https://chromewebstore.google.com/detail/merciapp-ai-writing-assis/gccahjgcckaemgpliioopngfgdaceffo",
    "majdfhpaihoncoakbjgbdhglocklcgno",
    "bdlffpdkioakgjjpmgpboogfiaegbpgp",
    "oeopbcgkkoapgobdbedcemjljbihmemj"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call b2b_lead_generation/chrome-extension-email-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=b2b_lead_generation/chrome-extension-email-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chrome Extension Email Extractor",
        "description": "Chrome extension scraper that pulls ratings, user counts, email, phone, manifest JSON, and more from the Chrome Web Store by extension ID, with no browser needed.",
        "version": "0.0",
        "x-build-id": "zqPIdDwTSmdR7XzVc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/b2b_lead_generation~chrome-extension-email-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-b2b_lead_generation-chrome-extension-email-extractor",
                "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/b2b_lead_generation~chrome-extension-email-extractor/runs": {
            "post": {
                "operationId": "runs-sync-b2b_lead_generation-chrome-extension-email-extractor",
                "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/b2b_lead_generation~chrome-extension-email-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-b2b_lead_generation-chrome-extension-email-extractor",
                "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",
                "required": [
                    "extensionIds"
                ],
                "properties": {
                    "extensionIds": {
                        "title": "Extension IDs or store URLs",
                        "type": "array",
                        "description": "List of Chrome extension IDs or full Chrome Web Store URLs to fetch. Accepts bare extension IDs (e.g. gccahjgcckaemgpliioopngfgdaceffo) or full store URLs (e.g. https://chromewebstore.google.com/detail/name/id).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of extensions to fetch per run. Prevents runaway costs on large lists.",
                        "default": 1000
                    },
                    "timeoutSecs": {
                        "title": "Timeout (seconds)",
                        "minimum": 1,
                        "maximum": 3600,
                        "type": "integer",
                        "description": "Maximum total time the actor will run, in seconds.",
                        "default": 300
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 1,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum time to wait for a single Chrome Web Store API request, in seconds.",
                        "default": 30
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to use for requests. Helps avoid IP blocking and rate limits. Datacenter proxies are fastest; Residential proxies are harder to detect."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
