Chrome Web Store Scraper – Extensions, Reviews & CRX
Pricing
from $0.90 / 1,000 search results
Chrome Web Store Scraper – Extensions, Reviews & CRX
Search Chrome extensions and themes, browse categories and Top Charts, extract 127-field details, reviews, manifests, developer contacts, and CRX/ZIP source.
Pricing
from $0.90 / 1,000 search results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Chrome Web Store Scraper – Extensions, Themes, Reviews, Manifests and CRX Source
Extract public Chrome Web Store search results, categories, Top Charts, complete extension or theme details, developer and privacy data, manifests, reviews, and downloadable CRX/ZIP source packages in one Apify Actor.
- Search extensions, themes, or both with native continuation-token pagination
- Browse extension and theme categories and collect Trending, Popular, or New & notable charts
- Extract listing, developer, D-U-N-S, trader, localization, privacy, media, and complete manifest data
- Calculate transparent manifest security signals such as broad host access and high-risk permissions
- Filter discovery results by rating, users, featured status, or publisher verification
- Filter reviews by score, keyword, date range, or rolling recent-day window
- Download public extension or theme packages as CRX, ZIP, or both to the run Key-Value Store
- Process batches with built-in country-targeted Apify Residential Proxy; no Google account, API key, browser, login cookie, or proxy setup is required
- Export results as JSON, CSV, Excel, XML, RSS, or JSONL, or access them through the Apify API
What can you do with this Actor?
| Mode | Input | Output | Best for |
|---|---|---|---|
search | One or more keywords | Ranked extension/theme records | Keyword research, competitor discovery, catalog building |
category | Category URLs or paths | Paginated category records | Category monitoring and market mapping |
topCharts | Trending, Popular, and/or New & notable | Ranked chart records | Momentum tracking and featured-product research |
details | Item IDs or URLs | Complete listing, developer, privacy, manifest, security, media, related-item, and optional source/review data | Due diligence, audits, monitoring, enrichment |
reviews | Item IDs or URLs | Public reviews and developer replies, optionally enriched with parent-item metrics | Voice-of-customer and support analysis |
One mode runs per execution. Use IDs discovered by Search, Category, or Top Charts as Details or Reviews inputs in a later run.
Quick start
- Open the Actor and click Try for free.
- Keep
modeset tosearchand enter a keyword such asAI assistant. - Choose extensions, themes, or both and set
maxResults. - Click Start.
- Preview the dataset, download it, or pass discovered IDs into Details or Reviews.
The default input is a small working search that requires no credentials or network configuration.
Input examples
Search extensions and themes
{"mode": "search","searchTerms": ["AI assistant", "dark theme"],"itemType": "all","maxResults": 20,"country": "US","language": "en-US"}
maxResults applies independently to every search term. One dataset row represents one accepted store item for one term unless cross-input deduplication is enabled.
Browse categories
{"mode": "category","categoryUrls": ["/category/extensions/productivity/tools","/category/themes/animals"],"maxResults": 100,"minRating": 4,"country": "US","language": "en-US"}
Collect Top Charts
{"mode": "topCharts","charts": ["trending", "popular", "notable"],"maxResults": 25,"country": "US","language": "en-US"}
Extract details, security signals, reviews, and source
{"mode": "details","extensionIds": ["https://chromewebstore.google.com/detail/chatgpt/hehggadaopoacecdllhhajmbjkdcmajg","becfinhbfclcgokjlobojlnldbfillpf"],"includeReviews": true,"maxResults": 20,"includeSecurityAnalysis": true,"downloadSource": true,"sourceFormat": "both","country": "US","language": "en-US"}
Filter and enrich reviews
{"mode": "reviews","extensionIds": ["becfinhbfclcgokjlobojlnldbfillpf"],"maxResults": 100,"reviewSort": "newest","reviewScores": ["1", "2"],"reviewKeywords": ["privacy", "tracking", "broken"],"recentDays": 90,"includeExtensionInfo": true,"country": "US","language": "en-US"}
Complete output examples
Every JSON block below is a complete top-level dataset shape. Optional source values are shown explicitly. Dynamic raw manifest maps are represented with compact real keys, but no top-level output field is omitted.
Complete search output – 86 top-level fields
{"recordType": "search","extensionId": "becfinhbfclcgokjlobojlnldbfillpf","url": "https://chromewebstore.google.com/detail/_/becfinhbfclcgokjlobojlnldbfillpf","title": "Example AI Assistant","shortDescription": "An AI assistant for Chrome.","icon": "https://lh3.googleusercontent.com/example-icon","promotionalImage": "https://lh3.googleusercontent.com/example-promo","secondaryPromotionalImage": null,"rating": 4.8,"ratingCount": 1200,"userCount": 90000,"publisherName": "Example Publisher","publisherWebsite": "example.com","publisherVerified": true,"featured": true,"categoryId": "productivity/tools","categoryName": "Productivity > Tools","categoryCode": 5,"itemType": "extension","itemTypeCode": 1,"version": "2.1.0","publishedAt": "2023-11-14T22:13:20Z","manifestVersion": 3,"manifestName": "Example AI Assistant","manifestDescription": "An AI assistant for Chrome.","defaultLocale": "en","minimumChromeVersion": "120","versionName": "2.1 stable","author": "Example Publisher","homepageUrl": "https://example.com","updateUrl": "https://clients2.google.com/service/update2/crx","manifestKey": null,"permissions": ["storage", "tabs", "scripting"],"optionalPermissions": ["bookmarks"],"hostPermissions": ["https://example.com/*"],"optionalHostPermissions": [],"icons": {"128": "images/icon-128.png"},"action": {"default_popup": "popup.html", "default_title": "Open assistant"},"background": {"service_worker": "worker.js", "type": "module"},"contentScripts": [{"matches": ["https://example.com/*"], "js": ["content.js"], "all_frames": false}],"webAccessibleResources": [{"resources": ["assets/widget.js"], "matches": ["https://example.com/*"]}],"commands": {"open-assistant": {"description": "Open assistant"}},"sidePanel": {"default_path": "side-panel.html"},"contentSecurityPolicy": {"extension_pages": "script-src 'self'; object-src 'self'"},"externallyConnectable": {"matches": ["https://example.com/*"]},"oauth2": {"client_id": "example-client", "scopes": ["profile"]},"chromeUrlOverrides": {},"declarativeNetRequest": {"rule_resources": []},"omnibox": {"keyword": "ask"},"theme": {},"storage": {"managed_schema": "schema.json"},"optionsPage": "options.html","optionsUi": {"page": "options.html", "open_in_tab": true},"devtoolsPage": null,"incognito": "split","offlineEnabled": false,"securityRiskScore": 13,"securityRiskLevel": "low","securityRiskFactors": ["permission:scripting", "permission:tabs"],"highRiskPermissions": ["scripting", "tabs"],"broadHostAccess": false,"manifestV2": false,"permissionCount": 4,"hostPermissionCount": 1,"contentScriptCount": 1,"webAccessibleResourceCount": 1,"remoteCodeIndicators": [],"hasExternallyConnectable": true,"usesNativeMessaging": false,"usesDebugger": false,"usesProxy": false,"usesManagement": false,"usesCookies": false,"usesHistory": false,"usesDownloads": false,"manifest": {"name": "Example AI Assistant","description": "An AI assistant for Chrome.","version": "2.1.0","version_name": "2.1 stable","manifest_version": 3,"default_locale": "en","minimum_chrome_version": "120","homepage_url": "https://example.com","update_url": "https://clients2.google.com/service/update2/crx","permissions": ["storage", "tabs", "scripting"],"optional_permissions": ["bookmarks"],"host_permissions": ["https://example.com/*"],"icons": {"128": "images/icon-128.png"},"action": {"default_popup": "popup.html"},"background": {"service_worker": "worker.js", "type": "module"},"content_scripts": [{"matches": ["https://example.com/*"], "js": ["content.js"]}],"web_accessible_resources": [{"resources": ["assets/widget.js"], "matches": ["https://example.com/*"]}],"side_panel": {"default_path": "side-panel.html"}},"sourceType": "search","searchTerm": "AI assistant","categoryPath": null,"chart": null,"country": "US","language": "en-US","searchRank": 1,"searchPosition": 1,"searchPage": 1,"scrapedAt": "2026-08-10T10:00:00Z"}
Complete category output – 86 top-level fields
{"recordType": "category","extensionId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","url": "https://chromewebstore.google.com/detail/_/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","title": "Productivity Extension","shortDescription": "A productivity tool.","icon": "https://lh3.googleusercontent.com/category-icon","promotionalImage": null,"secondaryPromotionalImage": null,"rating": 4.6,"ratingCount": 520,"userCount": 40000,"publisherName": "Productivity Labs","publisherWebsite": "productivity.example","publisherVerified": false,"featured": false,"categoryId": "productivity/tools","categoryName": "Productivity > Tools","categoryCode": 5,"itemType": "extension","itemTypeCode": 1,"version": "1.4.0","publishedAt": "2024-01-20T08:00:00Z","manifestVersion": 3,"manifestName": "Productivity Extension","manifestDescription": "A productivity tool.","defaultLocale": "en","minimumChromeVersion": null,"versionName": null,"author": null,"homepageUrl": "https://productivity.example","updateUrl": "https://clients2.google.com/service/update2/crx","manifestKey": null,"permissions": ["storage"],"optionalPermissions": [],"hostPermissions": [],"optionalHostPermissions": [],"icons": {"128": "icon.png"},"action": {"default_popup": "popup.html"},"background": {"service_worker": "worker.js"},"contentScripts": [],"webAccessibleResources": [],"commands": {},"sidePanel": {},"contentSecurityPolicy": null,"externallyConnectable": {},"oauth2": {},"chromeUrlOverrides": {},"declarativeNetRequest": {},"omnibox": {},"theme": {},"storage": {},"optionsPage": null,"optionsUi": {},"devtoolsPage": null,"incognito": null,"offlineEnabled": null,"securityRiskScore": 0,"securityRiskLevel": "low","securityRiskFactors": [],"highRiskPermissions": [],"broadHostAccess": false,"manifestV2": false,"permissionCount": 1,"hostPermissionCount": 0,"contentScriptCount": 0,"webAccessibleResourceCount": 0,"remoteCodeIndicators": [],"hasExternallyConnectable": false,"usesNativeMessaging": false,"usesDebugger": false,"usesProxy": false,"usesManagement": false,"usesCookies": false,"usesHistory": false,"usesDownloads": false,"manifest": {"name": "Productivity Extension","description": "A productivity tool.","version": "1.4.0","manifest_version": 3,"permissions": ["storage"],"icons": {"128": "icon.png"},"action": {"default_popup": "popup.html"},"background": {"service_worker": "worker.js"}},"sourceType": "category","searchTerm": null,"categoryPath": "/category/extensions/productivity/tools","chart": null,"country": "US","language": "en-US","searchRank": 1,"searchPosition": 1,"searchPage": 1,"scrapedAt": "2026-08-10T10:00:00Z"}
Complete topChart output – 86 top-level fields
{"recordType": "topChart","extensionId": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","url": "https://chromewebstore.google.com/detail/_/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","title": "Trending Extension","shortDescription": "A trending Chrome extension.","icon": "https://lh3.googleusercontent.com/chart-icon","promotionalImage": "https://lh3.googleusercontent.com/chart-promo","secondaryPromotionalImage": null,"rating": 4.9,"ratingCount": 8500,"userCount": 700000,"publisherName": "Trending Publisher","publisherWebsite": "trending.example","publisherVerified": true,"featured": true,"categoryId": "productivity/workflow","categoryName": "Productivity > Workflow","categoryCode": 6,"itemType": "extension","itemTypeCode": 1,"version": "5.0.0","publishedAt": "2025-06-01T09:00:00Z","manifestVersion": 3,"manifestName": "Trending Extension","manifestDescription": "A trending Chrome extension.","defaultLocale": "en","minimumChromeVersion": "116","versionName": "5.0","author": "Trending Publisher","homepageUrl": "https://trending.example","updateUrl": "https://clients2.google.com/service/update2/crx","manifestKey": null,"permissions": ["storage", "downloads"],"optionalPermissions": [],"hostPermissions": ["https://trending.example/*"],"optionalHostPermissions": [],"icons": {"128": "icon.png"},"action": {"default_popup": "popup.html"},"background": {"service_worker": "worker.js", "type": "module"},"contentScripts": [],"webAccessibleResources": [],"commands": {},"sidePanel": {},"contentSecurityPolicy": {"extension_pages": "script-src 'self'"},"externallyConnectable": {},"oauth2": {},"chromeUrlOverrides": {},"declarativeNetRequest": {},"omnibox": {},"theme": {},"storage": {},"optionsPage": null,"optionsUi": {},"devtoolsPage": null,"incognito": null,"offlineEnabled": false,"securityRiskScore": 6,"securityRiskLevel": "low","securityRiskFactors": ["permission:downloads"],"highRiskPermissions": ["downloads"],"broadHostAccess": false,"manifestV2": false,"permissionCount": 2,"hostPermissionCount": 1,"contentScriptCount": 0,"webAccessibleResourceCount": 0,"remoteCodeIndicators": [],"hasExternallyConnectable": false,"usesNativeMessaging": false,"usesDebugger": false,"usesProxy": false,"usesManagement": false,"usesCookies": false,"usesHistory": false,"usesDownloads": true,"manifest": {"name": "Trending Extension","description": "A trending Chrome extension.","version": "5.0.0","manifest_version": 3,"permissions": ["storage", "downloads"],"host_permissions": ["https://trending.example/*"],"background": {"service_worker": "worker.js", "type": "module"}},"sourceType": "topCharts","searchTerm": null,"categoryPath": null,"chart": "trending","country": "US","language": "en-US","searchRank": 1,"searchPosition": 1,"searchPage": 1,"scrapedAt": "2026-08-10T10:00:00Z"}
Complete details output – 127 top-level fields
{"recordType": "details","extensionId": "becfinhbfclcgokjlobojlnldbfillpf","url": "https://chromewebstore.google.com/detail/_/becfinhbfclcgokjlobojlnldbfillpf","title": "Example AI Assistant","shortDescription": "An AI assistant for Chrome.","icon": "https://lh3.googleusercontent.com/example-icon","promotionalImage": "https://lh3.googleusercontent.com/example-promo","secondaryPromotionalImage": null,"rating": 4.8,"ratingCount": 1200,"userCount": 90000,"publisherName": "Example Publisher","publisherWebsite": "example.com","publisherVerified": true,"featured": true,"categoryId": "productivity/tools","categoryName": "Productivity > Tools","categoryCode": 5,"itemType": "extension","itemTypeCode": 1,"version": "2.1.0","publishedAt": "2023-11-14T22:13:20Z","manifestVersion": 3,"manifestName": "Example AI Assistant","manifestDescription": "An AI assistant for Chrome.","defaultLocale": "en","minimumChromeVersion": "120","versionName": "2.1 stable","author": "Example Publisher","homepageUrl": "https://example.com","updateUrl": "https://clients2.google.com/service/update2/crx","manifestKey": null,"permissions": ["storage", "tabs", "scripting"],"optionalPermissions": ["bookmarks"],"hostPermissions": ["https://example.com/*"],"optionalHostPermissions": [],"icons": {"128": "images/icon-128.png"},"action": {"default_popup": "popup.html", "default_title": "Open assistant"},"background": {"service_worker": "worker.js", "type": "module"},"contentScripts": [{"matches": ["https://example.com/*"], "js": ["content.js"], "all_frames": false}],"webAccessibleResources": [{"resources": ["assets/widget.js"], "matches": ["https://example.com/*"]}],"commands": {"open-assistant": {"description": "Open assistant"}},"sidePanel": {"default_path": "side-panel.html"},"contentSecurityPolicy": {"extension_pages": "script-src 'self'; object-src 'self'"},"externallyConnectable": {"matches": ["https://example.com/*"]},"oauth2": {"client_id": "example-client", "scopes": ["profile"]},"chromeUrlOverrides": {},"declarativeNetRequest": {"rule_resources": []},"omnibox": {"keyword": "ask"},"theme": {},"storage": {"managed_schema": "schema.json"},"optionsPage": "options.html","optionsUi": {"page": "options.html", "open_in_tab": true},"devtoolsPage": null,"incognito": "split","offlineEnabled": false,"securityRiskScore": 13,"securityRiskLevel": "low","securityRiskFactors": ["permission:scripting", "permission:tabs"],"highRiskPermissions": ["scripting", "tabs"],"broadHostAccess": false,"manifestV2": false,"permissionCount": 4,"hostPermissionCount": 1,"contentScriptCount": 1,"webAccessibleResourceCount": 1,"remoteCodeIndicators": [],"hasExternallyConnectable": true,"usesNativeMessaging": false,"usesDebugger": false,"usesProxy": false,"usesManagement": false,"usesCookies": false,"usesHistory": false,"usesDownloads": false,"manifest": {"name": "Example AI Assistant","description": "An AI assistant for Chrome.","version": "2.1.0","version_name": "2.1 stable","manifest_version": 3,"default_locale": "en","minimum_chrome_version": "120","homepage_url": "https://example.com","update_url": "https://clients2.google.com/service/update2/crx","permissions": ["storage", "tabs", "scripting"],"optional_permissions": ["bookmarks"],"host_permissions": ["https://example.com/*"],"icons": {"128": "images/icon-128.png"},"action": {"default_popup": "popup.html"},"background": {"service_worker": "worker.js", "type": "module"},"content_scripts": [{"matches": ["https://example.com/*"], "js": ["content.js"]}],"web_accessible_resources": [{"resources": ["assets/widget.js"], "matches": ["https://example.com/*"]}],"side_panel": {"default_path": "side-panel.html"}},"description": "Full localized description of the extension.","developerEmail": "support@example.com","developerAddress": "123 Main Street, San Francisco, CA, US","traderStatus": "trader","isTrader": true,"isNonTrader": false,"developerContactName": "Jane Developer","developerLegalName": "Example Software LLC","developerOrganization": "Example Software LLC","dunsNumber": "080579740","developerPhone": "+1 555 0100","publisherId": "u-example-publisher-id","supportUrl": "https://example.com/support","updatedAt": "2026-08-01T08:30:00Z","size": "2.5MiB","languages": ["English", "Deutsch"],"languageCodes": ["en", "de"],"privacyPolicyUrl": "https://example.com/privacy","privacyDataTypeCodes": [1, 5, 8],"privacyDataTypes": ["personallyIdentifiableInformation","personalCommunications","userActivity"],"handlesUserData": true,"privacyDeclarations": ["dataNotSoldToThirdPartiesOutsideApprovedUseCases","dataNotUsedOrTransferredOutsideCoreFunctionality","dataNotUsedOrTransferredForCreditworthinessOrLending"],"dataNotSold": true,"dataUseLimitedToCoreFunctionality": true,"dataNotUsedForCreditworthiness": true,"screenshots": ["https://lh3.googleusercontent.com/screenshot-1","https://lh3.googleusercontent.com/screenshot-2"],"screenshotCount": 2,"videos": ["https://www.youtube.com/watch?v=example"],"videoCount": 1,"media": [{"type": "screenshot","typeCode": 1,"url": "https://lh3.googleusercontent.com/screenshot-1"},{"type": "video","typeCode": 2,"url": "https://www.youtube.com/watch?v=example"}],"analyticsId": "G-EXAMPLE","reviewCount": 1418,"relatedExtensions": [{"extensionId": "cccccccccccccccccccccccccccccccc","url": "https://chromewebstore.google.com/detail/_/cccccccccccccccccccccccccccccccc","title": "Related Extension","shortDescription": "A related productivity extension.","icon": "https://lh3.googleusercontent.com/related-icon","promotionalImage": null,"rating": 4.4,"ratingCount": 300,"userCount": 20000,"publisherWebsite": "related.example","publisherVerified": false,"featured": false,"categoryId": "productivity/tools","categoryName": "Productivity > Tools","itemType": "extension","version": "1.2.0","publishedAt": "2024-03-01T00:00:00Z"}],"relatedExtensionCount": 1,"storeMetadata": {"privacyDataTypeCodes": [1, 5, 8],"flag8": true,"itemKindCode": 1,"flag21": true,"minimumChromeVersion": "120","value29": 1,"flag34": true,"flag36": true,"privacyDeclarationCount": 3,"developerRaw": ["support@example.com","123 Main Street, San Francisco, CA, US",null,true,false,"Example Publisher","Jane Developer","Example Software LLC","080579740","+1 555 0100","u-example-publisher-id"]},"includedReviews": [{"reviewId": "review-123","extensionId": "becfinhbfclcgokjlobojlnldbfillpf","extensionUrl": "https://chromewebstore.google.com/detail/_/becfinhbfclcgokjlobojlnldbfillpf","reviewsUrl": "https://chromewebstore.google.com/detail/_/becfinhbfclcgokjlobojlnldbfillpf/reviews","extensionTitle": "Example AI Assistant","extensionIcon": "https://lh3.googleusercontent.com/example-icon","extensionRating": 4.8,"extensionRatingCount": 1200,"extensionUserCount": 90000,"itemType": "extension","userName": "Example Reviewer","userImage": "https://lh3.googleusercontent.com/reviewer-image","score": 2,"scoreText": "2 out of 5","text": "The latest version does not work for my workflow.","createdAt": "2026-08-07T03:15:15Z","updatedAt": "2026-08-07T03:15:15Z","helpfulCount": 11,"unhelpfulCount": 2,"version": "2.1.0","reviewLanguage": "en","developerReplyId": "reply-123","developerReplyUserName": "Example Support","developerReplyUserImage": "https://lh3.googleusercontent.com/support-image","developerReplyText": "Please contact our support team.","developerReplyCreatedAt": "2026-08-07T07:19:26Z","developerReplyUpdatedAt": "2026-08-07T07:19:26Z","developerReplyLanguage": "en","matchedKeywords": ["work"],"reviewSort": "newest","reviewRank": 1,"reviewPage": 1,"country": "US","language": "en-US","totalReviews": 1418,"scrapedAt": "2026-08-10T10:00:00Z"}],"sourceDownloadRequested": true,"sourceDownloadAvailable": true,"sourceFormat": "both","sourceCrxVersion": 3,"sourceCrxKey": "SOURCE-becfinhbfclcgokjlobojlnldbfillpf.crx","sourceZipKey": "SOURCE-becfinhbfclcgokjlobojlnldbfillpf.zip","sourceCrxSizeBytes": 2650000,"sourceZipSizeBytes": 2649500,"sourceCrxSha256": "85c6187750257926e3d0a7b01937bb3ad6c5ca968396ceb34786fa757036b08e","sourceZipSha256": "1c8de2f62fd7f250afca7f8fd4c30627920a19f1511028826c61f91bbda6e8e1","sourceError": null,"available": true,"country": "US","language": "en-US","scrapedAt": "2026-08-10T10:00:00Z"}
includedReviews always uses the complete 36-field nested review shape shown above. It does not contain recordType because it is embedded inside the Details row. When source download is disabled or unavailable, the same source keys remain present with false, null, and a populated sourceError where applicable.
Complete review output – 37 top-level fields
{"recordType": "review","reviewId": "review-123","extensionId": "becfinhbfclcgokjlobojlnldbfillpf","extensionUrl": "https://chromewebstore.google.com/detail/_/becfinhbfclcgokjlobojlnldbfillpf","reviewsUrl": "https://chromewebstore.google.com/detail/_/becfinhbfclcgokjlobojlnldbfillpf/reviews","extensionTitle": "Example AI Assistant","extensionIcon": "https://lh3.googleusercontent.com/example-icon","extensionRating": 4.8,"extensionRatingCount": 1200,"extensionUserCount": 90000,"itemType": "extension","userName": "Example Reviewer","userImage": "https://lh3.googleusercontent.com/reviewer-image","score": 2,"scoreText": "2 out of 5","text": "The latest version does not work for my workflow.","createdAt": "2026-08-07T03:15:15Z","updatedAt": "2026-08-07T03:15:15Z","helpfulCount": 11,"unhelpfulCount": 2,"version": "2.1.0","reviewLanguage": "en","developerReplyId": "reply-123","developerReplyUserName": "Example Support","developerReplyUserImage": "https://lh3.googleusercontent.com/support-image","developerReplyText": "Please contact our support team.","developerReplyCreatedAt": "2026-08-07T07:19:26Z","developerReplyUpdatedAt": "2026-08-07T07:19:26Z","developerReplyLanguage": "en","matchedKeywords": ["work"],"reviewSort": "newest","reviewRank": 1,"reviewPage": 1,"country": "US","language": "en-US","totalReviews": 1418,"scrapedAt": "2026-08-10T10:00:00Z"}
When includeExtensionInfo is false or enrichment fails, the six parent-item fields remain present with null. Developer reply fields remain present with null when the publisher has not replied.
Complete error output – 10 top-level fields
{"recordType": "error","mode": "details","extensionId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","url": "https://chromewebstore.google.com/detail/_/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","errorType": "not_found","errorMessage": "Chrome Web Store item does not exist: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","httpStatus": null,"country": "US","language": "en-US","scrapedAt": "2026-08-10T10:00:00Z"}
An existing item with no reviews is successful and produces zero standalone review rows. Removed or unknown IDs produce the explicit error row above without a custom billing event and do not stop other IDs from being processed. Keep the synthetic apify-default-dataset-item event disabled so diagnostic rows remain free and successful rows are not charged twice.
What Chrome Web Store data can you extract?
The Search, Category, and Top Charts shapes share the same 85 data fields plus their mode-specific recordType. Details adds listing, developer, privacy, media, related-item, source, availability, and request-context fields. Reviews use a separate 36-field data shape plus recordType.
Discovery and common item fields
| Category | Complete field inventory |
|---|---|
| Identity | recordType, extensionId, url, title, shortDescription, itemType, itemTypeCode |
| Visuals | icon, promotionalImage, secondaryPromotionalImage |
| Popularity | rating, ratingCount, userCount, featured |
| Publisher | publisherName, publisherWebsite, publisherVerified |
| Taxonomy | categoryId, categoryName, categoryCode |
| Release | version, publishedAt |
| Manifest identity | manifestVersion, manifestName, manifestDescription, defaultLocale, minimumChromeVersion, versionName, author, homepageUrl, updateUrl, manifestKey |
| Manifest permissions | permissions, optionalPermissions, hostPermissions, optionalHostPermissions |
| Manifest UI and runtime | icons, action, background, contentScripts, webAccessibleResources, commands, sidePanel, contentSecurityPolicy, externallyConnectable, oauth2, chromeUrlOverrides, declarativeNetRequest, omnibox, theme, storage, optionsPage, optionsUi, devtoolsPage, incognito, offlineEnabled |
| Security analysis | securityRiskScore, securityRiskLevel, securityRiskFactors, highRiskPermissions, broadHostAccess, manifestV2, permissionCount, hostPermissionCount, contentScriptCount, webAccessibleResourceCount, remoteCodeIndicators, hasExternallyConnectable, usesNativeMessaging, usesDebugger, usesProxy, usesManagement, usesCookies, usesHistory, usesDownloads |
| Raw source | manifest |
| Discovery context | sourceType, searchTerm, categoryPath, chart, country, language, searchRank, searchPosition, searchPage, scrapedAt |
The security score is a deterministic signal derived from the public manifest. It is useful for prioritization, not a malware verdict or a substitute for code review.
Details-only fields
Details contains every common item field above except the ten discovery-context fields, plus the complete inventory below.
| Category | Complete field inventory |
|---|---|
| Listing content | description, updatedAt, size, languages, languageCodes, available, country, language, scrapedAt |
| Developer and trader identity | developerEmail, developerAddress, traderStatus, isTrader, isNonTrader, developerContactName, developerLegalName, developerOrganization, dunsNumber, developerPhone, publisherId, supportUrl |
| Privacy | privacyPolicyUrl, privacyDataTypeCodes, privacyDataTypes, handlesUserData, privacyDeclarations, dataNotSold, dataUseLimitedToCoreFunctionality, dataNotUsedForCreditworthiness |
| Listing media | screenshots, screenshotCount, videos, videoCount, media |
| Reviews and discovery | analyticsId, reviewCount, relatedExtensions, relatedExtensionCount, includedReviews, storeMetadata |
| Source package | sourceDownloadRequested, sourceDownloadAvailable, sourceFormat, sourceCrxVersion, sourceCrxKey, sourceZipKey, sourceCrxSizeBytes, sourceZipSizeBytes, sourceCrxSha256, sourceZipSha256, sourceError |
Review fields
| Category | Complete field inventory |
|---|---|
| Identity and parent item | recordType, reviewId, extensionId, extensionUrl, reviewsUrl, extensionTitle, extensionIcon, extensionRating, extensionRatingCount, extensionUserCount, itemType |
| Reviewer and review | userName, userImage, score, scoreText, text, createdAt, updatedAt, helpfulCount, unhelpfulCount, version, reviewLanguage |
| Developer reply | developerReplyId, developerReplyUserName, developerReplyUserImage, developerReplyText, developerReplyCreatedAt, developerReplyUpdatedAt, developerReplyLanguage |
| Filter and request context | matchedKeywords, reviewSort, reviewRank, reviewPage, country, language, totalReviews, scrapedAt |
Error rows contain recordType, mode, extensionId, url, errorType, errorMessage, httpStatus, country, language, and scrapedAt.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | Yes | search | search, details, reviews, category, or topCharts |
searchTerms | string[] | Search mode | AI assistant | Keywords; limit applies per term. searchTerm is also accepted as a single-term API alias. |
extensionIds | string[] | Details/Reviews | [] | 32-letter IDs or full item/reviews URLs. appIds is also accepted as an API alias. |
categoryUrls | string[] | Category mode | [] | Full URLs or paths beginning with /category/extensions/ or /category/themes/. |
charts | string[] | Top Charts mode | trending | Any of trending, popular, notable. |
itemType | string | No | extensions | Search only: extensions, themes, or all. |
maxResults | integer | No | 50 | Discovery results per term/category/chart, or reviews per item ID, from 0 to 10,000. Plain Details returns one row per valid ID. 0 means all available up to the safety cap. |
country | string | No | US | Two-letter ISO country for residential proxy routing and output context. |
language | string | No | en-US | Store hl locale such as en-US, de, pt-BR, or zh-Hant. |
includeReviews | boolean | No | false | Details only: embed matching reviews in each details row. |
includeExtensionInfo | boolean | No | true | Reviews only: enrich each review with parent item fields. |
reviewSort | string | No | newest | newest, helpful, lowestRating, or highestRating. |
reviewScores | string[] | No | [] | Keep selected scores from "1" through "5"; empty means all. Integer values remain accepted by the runtime for direct API compatibility, and reviewScore is accepted as a single-score API alias. |
reviewKeywords | string[] | No | [] | Case-insensitive OR filter over review text. |
reviewsSince | string | No | – | Inclusive ISO 8601 timestamp or YYYY-MM-DD. |
reviewsUntil | string | No | – | Inclusive ISO 8601 timestamp or YYYY-MM-DD. |
recentDays | integer | No | – | Rolling 1–3,650 day review window; the newer lower boundary wins. |
minRating | number | No | – | Discovery only; 0–5. Unrated items fail an active rating filter. |
maxRating | number | No | – | Discovery only; 0–5. |
minUsers | integer | No | – | Discovery only; minimum store-provided user count. |
maxUsers | integer | No | – | Discovery only; maximum store-provided user count. |
featuredOnly | boolean | No | false | Discovery only; keep Featured items. |
publisherVerifiedOnly | boolean | No | false | Discovery only; keep verified publishers. |
deduplicateResults | boolean | No | false | Emit each item ID once across all discovery inputs in the run. |
includeSecurityAnalysis | boolean | No | true | Keep derived manifest risk and capability fields populated. |
downloadSource | boolean | No | false | Details only: store the public extension or theme package. |
sourceFormat | string | No | zip | zip, crx, or both. |
maxSourceFileSizeMb | integer | No | 100 | Reject CRX packages above 1–500 MB. |
maxConcurrency | integer | No | 8 | Process 1–20 input targets concurrently. |
Use cases
Chrome extension market and keyword research
Run several commercial keywords, filter by rating and users, deduplicate repeated listings, then compare publishers, categories, featured status, permissions, and update activity.
Publisher and compliance due diligence
Use Details to review legal identity, D-U-N-S number, trader status, support channels, privacy declarations, handled data types, public manifest permissions, and the original source package when available.
Security triage and source review
Prioritize listings by broad host access, Manifest V2, high-risk capabilities, content scripts, remote-code indicators, and the derived score. Download CRX/ZIP packages to a Key-Value Store for authorized deeper analysis.
Review intelligence and support monitoring
Collect newest, most helpful, lowest-rated, or highest-rated reviews. Filter complaints by score, text, date, version, helpful votes, and whether the developer replied.
Category, chart, and localization monitoring
Schedule recurring Category or Top Charts runs and compare snapshots. Repeat Details with different language values to observe publisher-provided localized titles, descriptions, and metadata.
Performance and cost
The Actor is ready for pay-per-event billing with distinct events so each workload can be priced separately:
| Event name | Emitted for | Count |
|---|---|---|
search-result | Accepted Search row | Per dataset row |
category-result | Accepted Category row | Per dataset row |
top-chart-result | Accepted Top Charts row | Per dataset row |
item-detail | Details row | Per dataset row |
review | Standalone or embedded review | Per review |
source-download | Successfully stored source package | Per item, not per CRX/ZIP file |
Explicit not-found rows are stored without a custom charge event. Do not create an error event. Also remove the synthetic apify-default-dataset-item event from the Actor pricing configuration; otherwise Apify charges every default Dataset row in addition to the custom result event.
Embedded reviews remain inside one Details dataset row but are charged individually as review events. The Actor reserves the Details event before trimming embedded reviews against a run maximum-charge limit. It also reserves the Details cost before accepting a source-download event.
Final public event prices and repeatable Apify run measurements are not stored in this repository. Check the Actor's Pricing tab for current prices. Runtime and platform usage mainly grow with source pages, review pagination, Details enrichment, CRX size, retries, and proxy traffic.
API usage
Replace USERNAME~chrome-web-store-data-scraper if the published Actor ID differs:
curl -X POST \"https://api.apify.com/v2/acts/USERNAME~chrome-web-store-data-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "search","searchTerms": ["password manager"],"itemType": "extensions","maxResults": 20,"country": "US","language": "en-US"}'
Use the default dataset API to export JSON, CSV, Excel, XML, RSS, or JSONL. Connect finished runs to Google Sheets, Make, Zapier, n8n, Airbyte, webhooks, Slack, or a data warehouse.
The Output tab uses one unified Results view with all 167 top-level fields across discovery, Details, Reviews, source metadata, and diagnostic rows. Fields that do not apply to a row's recordType remain empty, so users never need to switch mode-specific tabs or open the automatic All fields view.
Source files are stored under keys such as SOURCE-ITEM_ID.crx and SOURCE-ITEM_ID.zip in the run's default Key-Value Store. The Details row supplies the exact key and SHA-256 value.
Best for / not for
Best for: Chrome extension and theme discovery, public publisher research, compliance checks, manifest/security triage, source-package collection, review analysis, and recurring market monitoring.
Not for: Chrome Developer Dashboard data, private account information, paid/private extension code, browser telemetry, automatic malware verdicts, extension installation, or authenticated user activity.
Limits and good to know
- One mode runs per execution; each mode accepts batches of its relevant input.
maxResultsapplies per discovery source or per reviewed item. Plain Details returns one row per valid ID.0means all source-exposed results with a 10,000-item safety cap.- Chrome Web Store currently exposes fixed Top Charts lists of up to 25 items per selected chart.
- Rating, users, featured, publisher-verification, review-score, review-keyword, and review-date filters are applied after public source records are received. The Actor may request additional pages to reach the requested number of accepted rows.
- With newest-first review sorting, a
reviewsSinceorrecentDaysboundary can stop pagination early. Other sorts may need to inspect more pages. languagerequests publisher-provided localization. The store can fall back when a translation is unavailable.countryselects the built-in Apify Residential Proxy country; Chrome Web Store does not expose a separate stable country parameter in these RPC calls.- Source download is supported for public extensions and themes through Google's update service. Unavailable packages return source metadata with
sourceDownloadAvailable: falseandsourceError. - Missing scalar values are
null; missing lists and map-like manifest components are[]or{}. Every documented top-level key remains stable for its row shape. - Search/category pagination and reviews are deduplicated by source ID. Cross-term/category/chart deduplication is optional.
- Requests retry rate limits, blocks, transient HTTP/network/proxy failures, and invalid structures with exponential backoff. A failed input does not discard successful inputs.
- Removed IDs return explicit error rows. Other unrecoverable operations are logged; if every non-terminal operation fails, the run fails visibly.
- All target traffic is forced through country-targeted Apify Residential Proxy. No user proxy field exists, no direct fallback is allowed, and no captured browser cookie is included in requests or source code.
Frequently asked questions
What input should I provide?
Use keywords for Search, category URLs/paths for Category, chart names for Top Charts, or 32-character Chrome Web Store IDs/full item URLs for Details and Reviews.
Can it scrape both extensions and themes?
Yes. Search supports extensions, themes, or all; Category accepts both extension and theme category paths; Details and CRX/ZIP download support both item types. Reviews still depend on what Chrome Web Store exposes for the item.
How many results can I extract?
Set maxResults from 0 through 10,000 per input. Zero asks for every source-exposed result up to the safety cap. The source may expose fewer results, and Top Charts currently expose up to 25 per chart.
Why are some fields empty?
Publishers do not provide every optional developer, trader, privacy, localization, media, or manifest field. The stable key remains present with null, [], or {} so downstream schemas do not shift.
Is the security score a malware verdict?
No. It is a transparent prioritization signal derived from permissions and manifest capabilities. Validate risks against your policy and perform authorized code review where needed.
Can I download extension source code?
Details mode can store the publicly distributed extension or theme CRX, its embedded ZIP, or both. The Actor reports keys, sizes, hashes, CRX version, and errors. Availability is controlled by Google's update service.
Can I process multiple inputs and schedule runs?
Yes. All modes accept batches where applicable. Use Apify schedules for recurring snapshots and webhooks to notify another system after completion.
Do I need a Google account, API key, cookie, or proxy?
No. Public data is collected without Google authentication. The Actor creates a mandatory Apify Residential Proxy internally and does not expose proxy or cookie inputs.
Responsible use
This Actor processes publicly available Chrome Web Store listing, manifest, developer, and review information. Users are responsible for complying with applicable laws, privacy regulations, contractual obligations, intellectual-property rights, and Chrome Web Store terms. Download or analyze source packages only where you have a lawful purpose, and do not use reviewer or developer information for spam, harassment, deception, or unlawful profiling.
This Actor is independent and is not affiliated with, endorsed by, or sponsored by Google LLC. Google, Chrome, and Chrome Web Store are trademarks of Google LLC.
Support
If a source response changes, a field is unexpectedly empty, or a valid item fails, create an issue in the Actor's Issues tab. Include the run ID, mode, locale, country, and a non-sensitive reproducible input. Never attach account credentials, authentication headers, or browser cookies.