Chrome Web Store Extensions Scraper avatar

Chrome Web Store Extensions Scraper

Pricing

from $1.40 / 1,000 results

Go to Apify Store
Chrome Web Store Extensions Scraper

Chrome Web Store Extensions Scraper

Chrome extension records: name, rating, install count, version, size, developer and contact email, languages, screenshots — and the complete extension manifest with its permissions and host permissions. Look up by ID, or discover by search, category or collection.

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Chrome extension records — name, rating, install count, version, size, developer and contact email, languages, screenshots, and the complete extension manifest with its permissions.

Why use this actor

  • You get the manifest. Every row carries the extension's real manifest.json, parsed, with permissions and host_permissions broken out as lists you can filter on. That is the answer to "which of these extensions can read every page I visit?" — and it comes back even on search results, without opening a single extension page.
  • Developer name and contact email on every record.
  • Look up as many extensions as you like. Paste ids or store URLs; there is no cap on that path. Search and category pages are limited to their first page by Google itself, and the output says so rather than quietly returning the same ten rows over and over.
  • Rounded numbers are labelled as rounded. Google publishes install counts as buckets (20,000,000 — not 20,143,882), so the field is named installCountApprox and flagged. Nobody should build a market-share model on it by accident.
  • No account, no API key, no login.

How it works

  1. You give it extension ids or URLs, search terms, or category/collection pages.
  2. It reads the structured record Google already embeds in each page — no screen-scraping of layout, so a redesign does not break it.
  3. For discovered extensions it optionally opens each one's page to add the version, size, languages, developer and long description.
  4. Results land in your dataset as JSON, CSV or Excel, with a summary row per query.

Input

{
"extensionIds": ["ddkjiahejlhfcafbddmgiahcphecmpfh"],
"searchTerms": ["adblock"],
"listingUrls": ["https://chromewebstore.google.com/category/extensions/productivity/workflow"],
"includeDetails": true,
"includeRawPayload": false,
"maxItemsPerQuery": 200,
"maxConcurrency": 4,
"minRequestInterval": 0.6,
"proxyConfiguration": { "useApifyProxy": true }
}
FieldTypeDescription
extensionIdsarrayThe 32-letter id from a store URL, or the full URL. The only input with no result cap.
searchTermsarrayStore search. Google serves 10 results per term and no more.
listingUrlsarrayA category page (~32 extensions) or collection page (~16). First page only.
includeDetailsbooleanOpen each discovered extension's own page for version, size, languages, developer and the long description. One request per extension. Default true.
includeRawPayloadbooleanAttach Google's untouched data array to every row — the only complete copy of what was sent, since the source has no field names. Roughly doubles row size. Default false.
maxItemsPerQueryintegerCap per search term or listing URL. 0 = no cap, though Google's first-page limit still applies. Default 200.
maxConcurrencyintegerRequests in flight. Default 4.
minRequestIntervalnumberSeconds between request starts. Default 0.6.
proxyConfigurationobjectApify Proxy. Datacenter is the default and is sufficient.

Output

Three record types share one dataset, told apart by recordType.

EXTENSION

{
"_input": "id=ddkjiahejlhfcafbddmgiahcphecmpfh",
"_source": "S1-detail-dsdata",
"_scrapedAt": "2026-09-16T04:47:36Z",
"recordType": "EXTENSION",
"extensionId": "ddkjiahejlhfcafbddmgiahcphecmpfh",
"name": "uBlock Origin Lite",
"extensionUrl": "https://chromewebstore.google.com/detail/ddkjiahejlhfcafbddmgiahcphecmpfh",
"rating": 4.49859075535513,
"ratingCount": 3548,
"installCountApprox": 20000000,
"categoryPath": "make_chrome_yours/privacy",
"shortDescription": "An efficient content blocker. Blocks ads, trackers, miners, and more…",
"fullDescription": "uBO Lite (uBOL) is an efficient MV3-based content blocker…",
"version": "2026.914.1325",
"size": "9.23MiB",
"minimumChromeVersion": "122.0",
"supportUrl": "https://github.com/uBlockOrigin/uBOL-issues",
"privacyPolicyUrl": "https://github.com/gorhill/uBlock/wiki/Privacy-policy",
"developerName": "Raymond Hill (gorhill)",
"developerEmail": "ubo@raymondhill.net",
"firstPublishedAt": "2022-09-08T13:10:25Z",
"lastUpdatedAt": "2026-09-14T14:48:01Z",
"manifestVersion": 3,
"permissions": ["activeTab", "alarms", "declarativeNetRequest", "offscreen", "scripting", "storage", "unlimitedStorage", "userScripts"],
"hostPermissions": ["<all_urls>"],
"manifest": { "…the full manifest.json, parsed…" },
"languages": ["Deutsch", "English", "Filipino", "… 57 more"],
"iconUrl": "https://lh3.googleusercontent.com/…",
"screenshotUrls": ["https://lh3.googleusercontent.com/…"]
}
FieldDescription
extensionId / extensionUrlThe id and a direct store link.
name / shortDescription / fullDescriptionListing copy.
rating / ratingCountAverage score and how many ratings it rests on.
installCountApproxA rounded bucket, not an exact figure.
categoryPathe.g. make_chrome_yours/privacy.
version / size / minimumChromeVersionRelease detail (detail pass).
developerName / developerEmailPublisher and contact (detail pass).
firstPublishedAt / lastUpdatedAtISO 8601 UTC.
manifest / manifestRaw / manifestVersionThe extension's real manifest, parsed and raw.
permissions / hostPermissionsPulled out of the manifest so you can filter on them.
languages / languageCodesSupported locales (detail pass).
iconUrl / bannerUrl / tileUrl / screenshotUrlsImagery.
websiteUrl / supportUrl / privacyPolicyUrlPublisher links.
rawCardGoogle's untouched array, when includeRawPayload is on.
_detailErrorPresent only when an extension's own page could not be read.

SEARCH_SUMMARY

FieldDescription
surfacedetail, search or listing.
requested / extensionsReturned / failuresWhat the query did.
upstreamServesFixedFirstPagetrue for search and listing — Google's own cap, not this actor's.
installCountIsApproximateAlways true.
decodedFromPositionalArrayAlways true — see Known limits.

ERROR

_errorMeaning
invalid_inputA malformed extension id, or a URL that is not a Chrome Web Store page.
not_foundThe extension page carried no record — removed, unpublished, or a wrong id.
unexpected_shapeThe page loaded but the data was not where this actor expects it.
fetch_failedNetwork or server trouble after retries.

Known limits

  • Search returns 10 results, categories about 32. That is Google's own first-page limit; the store loads more over a private channel this actor does not use. For coverage, feed extension ids directly — that path has no cap.
  • Install counts are rounded to public buckets.
  • Reviews are not included — only the rating and the number of ratings.
  • Google publishes these records without field names, as bare positional arrays. This actor decodes the positions it can justify and leaves the rest untouched; turn on includeRawPayload to see everything that was sent. If Google ever reorders the array, the actor fails with an error rather than reporting wrong numbers.