Chrome Web Store Extension Scraper
Pricing
from $5.00 / 1,000 extension results
Chrome Web Store Extension Scraper
Scrape Chrome Web Store extensions and themes. Export user counts, ratings, versions, manifest permissions, publisher contacts and privacy disclosures to JSON, CSV or Excel.
Pricing
from $5.00 / 1,000 extension results
Rating
0.0
(0)
Developer
Dario Mory
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Chrome Web Store Scraper — export Chrome extension and theme data from chromewebstore.google.com as JSON, CSV, or Excel. Get user counts, ratings, versions, manifest permissions, publisher contact details, and privacy disclosures for any extension, category, or search term.
Google publishes no official Chrome Web Store API. This Actor reads the store's own internal JSON endpoints directly — no browser, no rendering, no API key — so a 1,000-extension export finishes in about 20 requests.
What you can scrape
| Source | Paginated | Notes |
|---|---|---|
| Search terms | Yes, 50/page | Any keyword. Returns extensions and themes, plus a total result count. |
| Categories | Yes, 50/page | All 18 store categories. Extensions only — the store publishes no per-category theme listing. |
| Extension IDs / URLs | n/a | Exact lookups. Accepts bare IDs or full chromewebstore.google.com/detail/... URLs. |
| Top charts | ~25 items | Trending, Popular, and Notable. |
| Store landing shelves | ~50 / ~24 items | Curated Extensions and Themes landing pages. |
What you get for every extension
- Install base and reception —
userCount,rating,ratingCount - Permissions from the real
manifest.json—permissions,optionalPermissions,hostPermissions,contentScriptMatches,manifestVersion,usesServiceWorker - Release data —
version,lastUpdatedAt,size,minimumChromeVersion,languageCodes - Publisher — name, legal/trader name, email, postal address, phone, website and whether it is domain-verified
- Privacy —
dataCollected(the developer's own disclosure),privacyPolicyUrl,supportUrl - Media — icon, promo tile, marquee banner, screenshots, promo videos
- Discovery —
categorySlug,relatedExtensionIds, full storeurl
Common use cases
- Competitor and market research — track user counts, ratings, and release cadence across a category over time.
- Extension security auditing — find every extension requesting
<all_urls>,cookies,webRequest, or other sensitive permissions, straight from the shipped manifest. - Manifest V2 → V3 migration tracking — filter by
manifestVersionto see who has migrated. - Lead generation — publisher email, phone, and company address are published as EU Digital Services Act trader disclosures.
- App store optimization (ASO) — mine titles, descriptions, and category rankings of the highest-installed extensions.
Input
{"searchTerms": ["password manager"],"categories": ["productivity/developer"],"topCharts": ["popular"],"extensionIds": ["eimadpbcbfnmbkopoojfekhnkhdbieeh"],"sortBy": "mostUsers","includeDetails": true,"minUserCount": 1000,"maxItems": 500}
| Field | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | – | Keywords to search. Each term is paginated until the item limit is reached. |
extensionIds | string[] | – | Extension IDs or full detail URLs. |
categories | string[] | – | Category slugs, e.g. productivity/developer. |
topCharts | string[] | – | trending, popular, notable. |
storefronts | string[] | – | extensions, themes — curated landing shelves. |
sortBy | string | mostUsers | recommended, mostUsers, highestRated. Applies to category browsing. |
includeDetails | boolean | true | Fetch the full detail record per item (one extra request each). |
includeRelated | boolean | false | Also scrape the related extensions each detail page links to. |
minUserCount | integer | 0 | Skip items below this user count. |
language | string | en | Store language code, e.g. en, de, nl, ja. |
maxItems | integer | 200 | Maximum unique items saved across every source. |
proxyConfiguration | object | off | Optional. The endpoints are public; a proxy mainly helps on large runs. |
At least one of searchTerms, extensionIds, categories, topCharts, or storefronts is required.
Category slugs
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 · make_chrome_yours/privacy
Output sample
{"extensionId": "eimadpbcbfnmbkopoojfekhnkhdbieeh","name": "Dark Reader","url": "https://chromewebstore.google.com/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh","itemType": "extension","shortDescription": "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.","rating": 4.657688503385833,"ratingCount": 13143,"userCount": 7000000,"categorySlug": "make_chrome_yours/accessibility","categoryGroup": "Make Chrome Yours","categoryName": "Accessibility","version": "4.9.129","manifestVersion": 3,"minimumChromeVersion": "106.0.0.0","size": "820KiB","lastUpdatedAt": "2026-07-15T14:56:13.000Z","permissions": ["alarms", "fontSettings", "scripting", "storage"],"optionalPermissions": ["contextMenus"],"hostPermissions": ["*://*/*"],"contentScriptMatches": ["<all_urls>"],"usesServiceWorker": true,"publisher": {"name": "Alexander Shutau","legalName": "Alexander Shutau","email": "support@darkreader.org","address": "Office 40 Unit 5\n399-405 Oxford Street\nLondon W1C 2BU\nGB","phone": "+447585769555","websiteUrl": "https://darkreader.org/","websiteVerified": true},"privacyPolicyUrl": "https://darkreader.org/privacy/","dataCollected": [],"screenshots": ["https://lh3.googleusercontent.com/..."],"hasDetails": true,"source": "extension-id","scrapedAt": "2026-08-22T09:14:02.113Z"}
Export the dataset as JSON, CSV, Excel, XML, or HTML from the Apify Console, or pull it through the Apify API.
FAQ
Is there an official Chrome Web Store API?
No. Google offers the Chrome Web Store Publish API, but it only manages your own items — it cannot read public listings, user counts, or ratings. This Actor fills that gap by reading the storefront's own endpoints.
How do I find the number of users of a Chrome extension?
Pass the extension ID or its store URL in extensionIds. The userCount field returns the store's published figure. Note that Google rounds this — an extension showing "7,000,000 users" returns 7000000, not an exact count.
Can I get the permissions an extension requests?
Yes. Every listing ships its real manifest.json, so permissions, hostPermissions, optionalPermissions, and contentScriptMatches are extracted for every item — even with includeDetails turned off.
Can I scrape every extension in the Chrome Web Store?
Not in one pass. The store exposes no endpoint that enumerates all items. Categories and search are the only fully paginated surfaces, so a broad dataset is built by combining the 18 category slugs with a set of search terms. Top charts and landing shelves are fixed curated lists.
How do I scrape Chrome themes?
Use searchTerms — search returns both extensions and themes, and each record is tagged with itemType. The storefronts: ["themes"] option adds the curated themes shelf. There is no per-category theme listing, because the store itself does not publish one.
Does this need a proxy or login?
No. The endpoints are public and unauthenticated. proxyConfiguration is available for very large runs but is off by default.
What does a run cost?
This Actor is pay per event: $5.00 per 1,000 extension records ($0.005 each), plus a $0.00005 Actor start event. You pay for results saved, not for time spent — a run that finds nothing costs essentially nothing.
| Extensions scraped | Cost |
|---|---|
| 100 | $0.50 |
| 1,000 | $5.00 |
| 10,000 | $50.00 |
Turning includeDetails off does not change the price per record, but it is far faster: one request returns 50 items, whereas full details cost one extra request per item. A 300-item run with details off completes in about 35 seconds and peaks at 94 MB, so the compute cost on top is negligible.
Use maxItems to cap spend on any run, and minUserCount to avoid paying for long-tail listings you do not need.
Limitations
userCountis Google's rounded figure, not an exact install count.dataCollectedreflects the developer's self-declared privacy disclosure. An empty array means nothing was declared — not that nothing is collected.- Publisher address, phone, and legal name appear for business publishers subject to EU trader disclosure. Many individual developers have none.
- Individual user reviews are not collected; only the aggregate
ratingandratingCount. - With
includeDetails: false, the full description, screenshots, size, languages, and publisher contact fields stay empty.hasDetailsrecords which mode produced each row.
Legal
This Actor collects only publicly available listing data — the same information any visitor sees on a store page — and does not access private, personal, or authenticated content. Publisher contact details are those the publishers themselves are legally required to display. You are responsible for using the output in line with applicable law, including GDPR where personal data is involved.