Chrome Extension & Source Code Scraper avatar

Chrome Extension & Source Code Scraper

Pricing

from $0.50 / 1,000 extension results

Go to Apify Store
Chrome Extension & Source Code Scraper

Chrome Extension & Source Code Scraper

Scrape Chrome Web Store extensions from search, categories, or direct URLs. Filter by featured status, ratings, and users. Get full metadata, reviews, and optional source .zip files. Pick a region — results vary by country.

Pricing

from $0.50 / 1,000 extension results

Rating

0.0

(0)

Developer

Coder

Coder

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Chrome Extension Scraper

Collect structured extension data from the Chrome Web Store using search queries, category pages, or direct extension links. Filter listings by featured status, ratings, and install counts, optionally enrich records with full metadata and reviews, and download extension source archives when needed.

Use it for competitive research, extension discovery, market analysis, lead generation, and security review workflows — without copying listings manually from the store.


What you get

Each saved row is one extension, organized into clear sections:

SectionWhat it contains
IdentityExtension ID, name, store URL, version, and manifest version
Listing summaryShort description, publisher, category, rating, user count, and featured flags
DeveloperDeveloper name, contact details, website, and verification flags (when details are fetched)
MediaIcon, cover image, and screenshots (when details are fetched)
ManifestPermissions, host permissions, and manifest summary (when details are fetched)
PrivacyPrivacy policy link, declared data types, and privacy declarations (when details are fetched)
ReviewsUser reviews with ratings and text (when review fetching is enabled)
Source codeLink to a .zip archive in your Apify Key-Value Store (when source download is enabled)
ProvenanceWhich search, category, or direct input produced the row (sourceType, sourceUrl, etc.)

Results stream to the dataset as extensions are saved, so you can preview progress before the run finishes.


Quick start on Apify

  1. Open the Actor in the Apify Console.
  2. Set Request Country (required) — choose the region whose store view you want. Listings and rankings can differ by country.
  3. Add at least one input:
    • Search URLs & Queries — keywords such as ai or full store search URLs, or
    • Category URLs / Predefined Categories, or
    • Direct Extension URLs or IDs
  4. Set Max Extensions Per Search and Max Extensions Per Category (default 10 each).
  5. Optionally enable Fetch Extension Details, Fetch Reviews, or Source Code Download.
  6. Click Start and open the Dataset tab when the run finishes.

Example input (search + category + filters):

{
"proxyCountry": "us",
"searchUrls": ["ai"],
"predefinedCategories": [
"https://chromewebstore.google.com/category/extensions/productivity/communication"
],
"maxExtensionsPerSearch": 100,
"maxExtensionsPerCategory": 100,
"filterBy": "featured",
"minRating": 3.8,
"maxRating": 4.5,
"minUsers": 1000,
"maxUsers": 50000,
"fetchDetails": false
}

Example input (single extension with full detail, reviews, and source):

{
"proxyCountry": "us",
"directExtensions": ["fmbicfmfmangckllfaomfkhdankgapfk"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviews": 10,
"sourceCodeExtensions": ["fmbicfmfmangckllfaomfkhdankgapfk"]
}

Input parameters

Provide at least one search query, category URL, predefined category, direct extension, or source-code target.

Request Country

TypeSelect (required)
DefaultUnited States (us)
PurposeControls which regional view of the Chrome Web Store is used

Chrome Web Store results — including search rankings, category ordering, and available extensions — can vary by region. Always set this to the market you want to analyze.

Search URLs & Queries

TypeList of strings
FormatPlain keywords (e.g. SEO, password manager) or full Chrome Web Store search URLs
LimitControlled by Max Extensions Per Search (per query or URL)

Each search is processed independently up to the per-search maximum.

TypeInteger
Range110,000
Default10

Maximum extensions collected per search query or search URL.

Custom Category URLs & Predefined Categories

TypeList of URLs and/or predefined category selections
FormatFull category URLs such as https://chromewebstore.google.com/category/extensions/productivity/communication
LimitControlled by Max Extensions Per Category (per category)

Custom URLs and predefined categories are combined into one category task list.

Max Extensions Per Category

TypeInteger
Range110,000
Default10

Maximum extensions collected per category URL or predefined category.

Direct Extension URLs or IDs

TypeList of strings
Format32-character extension ID or full Chrome Web Store detail URL

Direct extensions are always enriched with full metadata, regardless of the Fetch Extension Details toggle. Search and category list filters do not apply to direct inputs.

Filter By (Search & Category Only)

TypeSelect
OptionsAll, Featured, Established Publishers
DefaultAll
Applies toSearch and category inputs only

If a pasted store URL already contains a filter parameter and your Filter By input differs, the Actor uses Filter By for scraping and rewrites the output sourceUrl so the link opens with the same filter in the store UI.

Rating and user filters

FieldApplies to
minRating / maxRatingSearch and category list results
minUsers / maxUsersSearch and category list results

Direct extensions ignore these filters.

Fetch Extension Details

TypeBoolean
Defaultfalse
EffectLoads full extension pages for items discovered in search or category lists

When enabled, records include long descriptions, developer contact fields, screenshots, manifest summaries, privacy data, and related extensions.

Fetch Reviews

TypeBoolean
Defaultfalse
RequiresExtension details (via Fetch Extension Details, a direct extension, or source-code download)

Max Reviews Per Extension

TypeInteger
Default10
Range110,000

Used when Fetch Reviews is enabled.

Source Code Download

TypeList of extension URLs or IDs
Output.zip files saved to the run's Apify Key-Value Store

Only extensions listed here receive a source download. They are also scraped with full metadata if not already included elsewhere in your input.


What you will see during a run

The run log is written for end users — progress messages describe collection activity only, without technical internals.

Typical messages:

  • Region: United States.
  • Collecting extensions from 2 list sources.
  • Collecting extensions from search "ai" (up to 100).
  • Collected 100 extension(s) from search "ai".
  • Found 55 of 100 requested extensions from category "communication". The store has no more matching results, or your filters excluded the rest.
  • Finished. Saved 155 extension record(s).

If an input cannot be processed or an individual extension fails to save, you will see a short warning; other inputs in the same run can still succeed.

On the Apify free plan, you may also see a notice when free-tier limits apply (see Free plan limits).


Output overview

Dataset structure

  • Results are saved to a single Apify dataset
  • Each row is one extension object
  • Use sourceType, sourceUrl, searchQuery, and categorySlug to see which input produced each row
  • Duplicate extension IDs across search and category inputs are saved once in a single run

Listing-only vs full detail records

ModeTypical fields
Listing only (fetchDetails: false for search/category results)Core listing fields — name, rating, users, category, icon, store URL, provenance
Full detail (direct extensions, source download, or fetchDetails: true)Everything above plus long description, developer contacts, screenshots, manifest, privacy, reviews, and optional source archive link

Field presence varies by extension: not every listing includes developer email, screenshots, or reviews. Empty arrays ([]) or null mean the store did not publish that data — not necessarily an error.

If optional data could not be retrieved, check the warnings array on the row for user-safe labels.

Source code files

When Source Code Download is enabled, .zip files are stored in the run's Key-Value Store. Each matching dataset row includes a sourceCode object with the store key, file size, and download URL.


Output fields

Core identity and listing

FieldDescription
extensionId32-character Chrome extension ID
nameExtension name
shortDescriptionShort listing description
longDescriptionFull description (full-detail records only)
publisherNamePublisher display name
categoryStore category slug
categoryDisplayNameHuman-readable category name (full-detail records)
categoryRankRank within category when available
ratingAverage star rating
ratingCountNumber of ratings
userCountReported install / user count
featuredWhether the listing is marked featured
establishedPublisherWhether the publisher is marked established
verifiedDeveloperVerified developer flag
hasDeveloperEmailWhether a developer email is published
versionPublished extension version
manifestVersionManifest version (2 or 3)
sizePackage size string (full-detail records)
iconUrlExtension icon URL
coverUrlCover / promo image URL
screenshotsScreenshot and video embed URLs (full-detail records)
storeUrlChrome Web Store detail page URL
lastUpdatedLast update timestamp when published
scrapedAtISO timestamp when the row was collected

Developer and publisher (full-detail records)

FieldDescription
developerNameDeveloper display name
developerLegalNameLegal entity name when published
developerEmailContact email when published
developerAddressMailing address when published
developerPhonePhone number when published
developerWebsiteDeveloper or product website
publisherIdInternal publisher identifier when available
dunsNumberD-U-N-S number when published
isEuTraderEU trader declaration flag

Manifest and privacy (full-detail records)

FieldDescription
manifestSummaryParsed manifest fields — permissions, host permissions, homepage, etc.
languages / localesSupported languages
relatedExtensionsRelated extension suggestions from the store
privacyPolicyUrlLink to privacy policy
supportUrlSupport or contact URL
privacyDataTypesDeclared data types collected
privacyDeclarationsPrivacy practice declarations

Reviews (when enabled)

FieldDescription
reviewsArray of review objects
reviewCountNumber of reviews saved for this extension

Each review object may include:

FieldDescription
reviewIdReview identifier
authorNameReviewer display name
ratingStar rating (1–5)
textReview body
createdAt / updatedAtReview timestamps
helpfulUp / helpfulDownHelpful vote counts when shown
localeReview language code

Source code (when enabled)

FieldDescription
sourceCode.keyKey-Value Store record name (.zip)
sourceCode.sizeBytesArchive size in bytes
sourceCode.downloadUrlApify download URL for the archive

Provenance

FieldDescription
sourceTypesearch, category, direct, or source-code
sourceInputOriginal input string (query, URL, or extension ID)
sourceUrlStore URL used for collection (includes active filters when applicable)
searchQueryParsed search query when sourceType is search
categorySlugParsed category path when sourceType is category

warnings

ValueMeaning
Extension details could not be loaded.Full detail page was unavailable; listing fields may still be present
Reviews could not be loaded.Review fetch failed; other fields may still be present
Source code could not be downloaded.Source archive was unavailable for this extension

Example output

The excerpts below come from a real run using Request Country: United States, search query ai, category Productivity → Communication, Featured filter, rating/user thresholds, and a direct extension with reviews and source download. Full output is available in the run dataset.

Example input

{
"proxyCountry": "us",
"searchUrls": ["ai"],
"predefinedCategories": [
"https://chromewebstore.google.com/category/extensions/productivity/communication"
],
"directExtensions": ["fmbicfmfmangckllfaomfkhdankgapfk"],
"maxExtensionsPerSearch": 100,
"maxExtensionsPerCategory": 100,
"filterBy": "featured",
"minRating": 3.8,
"maxRating": 4.5,
"minUsers": 1000,
"maxUsers": 50000,
"fetchDetails": true,
"fetchReviews": true,
"maxReviews": 5,
"sourceCodeExtensions": ["fmbicfmfmangckllfaomfkhdankgapfk"]
}

Excerpt — listing record from a search result

{
"extensionId": "jldogdgepmcedfdhgnmclgemehfhpomg",
"name": "Retriever: AI Web Agent",
"shortDescription": "Turn your browser into a self-driving AI Agent. Automate scraping, form filling and monitoring with simple prompting.",
"publisherName": "Retriever: AI Web Agent",
"category": "productivity/workflow",
"categoryRank": 4,
"rating": 3.9,
"ratingCount": 57,
"userCount": 10000,
"verifiedDeveloper": true,
"hasDeveloperEmail": true,
"featured": true,
"establishedPublisher": true,
"developerWebsite": "https://rtrvr.ai",
"version": "33.2.0",
"manifestVersion": 3,
"iconUrl": "https://lh3.googleusercontent.com/xzbpUe8Yd4MyD5zbxVmyhu3Ool0H8JO2pMd-AMqSSav5YxsJPW7zDhwe9Kv7ERjJEs6oXJwzK5GMUpY2jpeOJkMDVLc",
"coverUrl": "https://lh3.googleusercontent.com/1eMACFjmvnGQlaNPSQC5Hv1ZV0gvNU4tKOMGFa0m5hQ7461QbWe8MNOtgdl4HbE8ybA1Yr-ITYbGR2SOS68ceC1KeJQ",
"storeUrl": "https://chromewebstore.google.com/detail/x/jldogdgepmcedfdhgnmclgemehfhpomg",
"lastUpdated": "2024-09-25T10:06:55.745Z",
"sourceType": "search",
"sourceInput": "ai",
"sourceUrl": "https://chromewebstore.google.com/search/ai?filter=featured&filterBy=featured",
"searchQuery": "ai",
"categorySlug": null,
"scrapedAt": "2026-06-21T14:19:12.879Z"
}

Excerpt — listing record from a category result

{
"extensionId": "ioinaaeeacahcmbgfmeaaofhfkijpdeb",
"name": "HTML Editor for Gmail by cloudHQ",
"shortDescription": "HTML Editor for Gmail™ - code HTML email directly from Gmail",
"publisherName": "HTML Editor for Gmail by cloudHQ",
"category": "productivity/communication",
"categoryRank": 3,
"rating": 4.1,
"ratingCount": 191,
"userCount": 50000,
"verifiedDeveloper": true,
"hasDeveloperEmail": true,
"featured": true,
"establishedPublisher": true,
"developerWebsite": "https://www.html-editor-for-gmail.com/",
"version": "2.0.2.7",
"manifestVersion": 3,
"storeUrl": "https://chromewebstore.google.com/detail/x/ioinaaeeacahcmbgfmeaaofhfkijpdeb",
"lastUpdated": "2017-07-05T04:58:52.502Z",
"sourceType": "category",
"sourceInput": "https://chromewebstore.google.com/category/extensions/productivity/communication",
"sourceUrl": "https://chromewebstore.google.com/category/extensions/productivity/communication?filter=featured&filterBy=featured",
"searchQuery": null,
"categorySlug": "productivity/communication",
"scrapedAt": "2026-06-21T14:19:12.465Z"
}

Excerpt — full detail record with reviews and source code (direct extension)

{
"extensionId": "fmbicfmfmangckllfaomfkhdankgapfk",
"name": "CrackTech - Tech Interview Preparation",
"shortDescription": "A tool that can help candidate to prepare for a tech interview preparation.",
"rating": 3.8,
"ratingCount": 19,
"userCount": 10000,
"featured": true,
"verifiedDeveloper": true,
"developerName": "Avik Sarkar",
"developerEmail": "ssavi.ict@gmail.com",
"developerWebsite": "https://github.com/ssavi-ict/LeetCode-Which-Company",
"version": "2.2.0",
"manifestVersion": 3,
"storeUrl": "https://chromewebstore.google.com/detail/x/fmbicfmfmangckllfaomfkhdankgapfk",
"manifestSummary": {
"manifestVersion": 3,
"permissions": ["tabs", "notifications", "alarms", "storage", "activeTab"],
"hostPermissions": ["<all_urls>", "https://leetcode.com/*"]
},
"reviews": [
{
"reviewId": "62e97a00-cdb4-4d2e-819b-c17785d1f828",
"authorName": "Suryakant Bharti",
"rating": 5,
"text": "works as expected 👍",
"createdAt": "2025-11-29T17:06:40.114Z",
"locale": "en"
}
],
"reviewCount": 5,
"sourceCode": {
"key": "fmbicfmfmangckllfaomfkhdankgapfk.zip",
"sizeBytes": 511700,
"downloadUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/fmbicfmfmangckllfaomfkhdankgapfk.zip"
},
"sourceType": "direct",
"sourceInput": "fmbicfmfmangckllfaomfkhdankgapfk",
"sourceUrl": "https://chromewebstore.google.com/detail/x/fmbicfmfmangckllfaomfkhdankgapfk",
"warnings": [],
"scrapedAt": "2026-06-21T14:19:12.056Z"
}

Note: Replace STORE_ID in sourceCode.downloadUrl with your run's Key-Value Store ID from the Apify Console.


Combining search, category, and direct inputs

You can mix all input modes in a single run.

{
"proxyCountry": "us",
"searchUrls": ["ai", "vpn"],
"predefinedCategories": [
"https://chromewebstore.google.com/category/extensions/productivity/tools"
],
"directExtensions": ["fmbicfmfmangckllfaomfkhdankgapfk"],
"maxExtensionsPerSearch": 50,
"maxExtensionsPerCategory": 50,
"filterBy": "featured",
"fetchDetails": true,
"fetchReviews": true,
"maxReviews": 10
}
  • Each search and category input is processed independently, up to its respective maximum
  • The same extension ID is deduplicated within a run — it is saved once even if it appears in multiple lists
  • Use sourceType and sourceUrl on each row to trace where it was discovered
  • If one list input fails, others can still complete

Free plan limits

On the Apify free plan, the Actor may automatically apply:

LimitValue
Search URLs / queries per run2 (only the first entries in your list)
Category URLs per run2 (only the first entries in your list)
Direct extensions per run5
Source code downloads per run1
Max extensions per search10
Max extensions per category10
Max reviews per extension5

Paid Apify plans can use the full input without these caps. If limits apply, the run log will include a short notice.


Data quality and limitations

Public store listing data
The Actor reads the same extension data shown on Chrome Web Store search, category, and detail pages. It does not access private publisher dashboards or unpublished listings.

Regional differences
Search results, category ordering, and available extensions depend on Request Country. Use the same country across runs when comparing results over time.

Filter behavior
Filter By and rating/user thresholds apply to search and category collection only. Direct extensions bypass list filters.

Partial list results
A category or search may return fewer extensions than your maximum because the store has no more matching pages, or because your filters excluded remaining listings. The run log will note when collection stops early.

Field coverage varies
Developer contact details, screenshots, privacy declarations, and reviews are not published for every extension. Some fields may be null or empty even when the extension is live on the store.

Source code availability
Source download depends on the extension being available as a CRX package from the store. Some extensions cannot be downloaded even when listed publicly.

Store changes over time
Extensions are updated, featured, and removed on the live store. Re-run on a schedule to track changes.

Compliance
You are responsible for using collected data in line with applicable laws and Google's Chrome Web Store terms.


Tips for best results

  1. Set Request Country first — Pick the region whose market you are researching before comparing runs.
  2. Start with small limits — Test with 10 extensions per search/category before large exports.
  3. Use keywords for quick searches — Enter plain terms like ai or ad blocker instead of building URLs manually.
  4. Use predefined categories — Faster than pasting full category URLs for common store sections.
  5. Enable details only when needed — Listing mode is faster; turn on Fetch Extension Details when you need developer contacts, manifest permissions, or screenshots.
  6. Deduplicate with extensionId — The same extension can match both a search and a category; the Actor saves one row per ID per run.
  7. Trace rows with sourceUrl — Keep provenance fields when merging results from multiple inputs.
  8. Schedule recurring runs — Monitor new extensions in a category or search over time.
  9. Export and filter in your tool of choice — Dataset exports to JSON, CSV, or Excel for analysis on rating, userCount, featured, or category.

Frequently asked questions

Why do I get fewer extensions than my maximum?
The store may have no more matching listing pages, or your rating/user/Filter By settings excluded remaining rows. Check the run log for a partial-collection notice.

Why do results differ between runs?
Store listings change, and Request Country affects what is shown. Use the same country and inputs when comparing runs.

Why is longDescription empty on some rows?
Listing-only mode (fetchDetails: false) saves search/category summary fields. Enable Fetch Extension Details or add the extension as a Direct Extension for full detail pages.

Why are reviews empty?
Reviews are only fetched when Fetch Reviews is enabled and extension details are loaded. Check warnings on the row if review fetching failed.

Why is source code missing?
Source is downloaded only for extensions listed under Source Code Download. Some extensions cannot be packaged even when their store page is public.

Will the same extension appear twice from search and category?
It can be discovered from both inputs, but the Actor saves one row per extension ID per run.

Do direct extensions use my search filters?
No. Direct extension inputs ignore Filter By and rating/user thresholds.

What does featured mean on a row?
It reflects the store's featured flag on the listing at scrape time, subject to your Filter By setting for list inputs.


Support

For Actor-specific issues, use the Issues tab on the Apify store listing or contact the publisher through Apify.

For platform questions (runs, billing, API, schedules), see Apify documentation and Apify support.