Chrome Web Store Extension Scraper (installs, ratings) avatar

Chrome Web Store Extension Scraper (installs, ratings)

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Chrome Web Store Extension Scraper (installs, ratings)

Chrome Web Store Extension Scraper (installs, ratings)

Chrome Web Store Extension Scraper returns users, rating, version, size, category and developer contact for any Chrome extension id or store URL — one row per extension.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Murat Uzun

Murat Uzun

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What is Chrome Web Store Extension Scraper?

Chrome Web Store Extension Scraper is an Apify Actor that looks up any Chrome extension by its 32-character extension id or its Chrome Web Store URL and returns users, rating, rating count, version, size, category, and developer name/website/email as one clean row per extension. Give it kbfnbcaeplbcioakkpcpgfkobkghlhen (uBlock Origin) or a full URL like https://chromewebstore.google.com/detail/grammarly/kbfnbcaeplbcioakkpcpgfkobkghlhen and it does the rest — no API key, no proxies, no browser automation. Runs on Apify with scheduling, an API, and CSV/JSON/Excel export built in.

What data does Chrome Web Store Extension Scraper extract?

FieldTypeDescription
extensionId, url, querystringThe resolved id, canonical detail URL, and the original input entry
name, descriptionstringExtension name and description (truncated to 1000 characters)
rating, ratingCountnumber, integerAverage rating out of 5 (rounded to 1 decimal) and number of ratings
usersintegerReported install/user count (a rounded bucket, e.g. 40000000)
version, updatedAt, size, sizeBytesstring, numberCurrent version, last update date, and package size (raw + parsed bytes)
categorystringStore category slug, e.g. productivity/communication
developerName, developerWebsite, developerEmailstringPublisher contact info, when the page exposes it
languagesCount, featuredinteger, booleanInterface language count; best-effort Featured badge detection
error, scrapedAtstringFailure reason for that row (network/invalid id), and check timestamp

How the data is extracted (and what is/isn't server-rendered)

This matters more than for most scrapers, so it is stated plainly: chromewebstore.google.com is a heavily client-rendered page. We verified this by curling the live detail page with a desktop Chrome User-Agent before writing a line of extraction code:

  • There is no JSON-LD anywhere on the site.
  • The <title>, og:title and og:description meta tags are genuinely server-rendered with the real name and description — but only when Google's front end resolves your request to a specific item. When it can't (observed live and reproducibly for the single most-scraped extension id on the whole store), it instead 301-redirects to a generic /detail/empty-title/<id> shell and every meta tag falls back to the literal text "Chrome Web Store".
  • The real numbers — rating, rating count, install count, version, size, last-updated date, developer contact — live inside AF_initDataCallback({key:'ds:N', data:[...]}) script blocks that Google's Wiz framework embeds for client-side hydration. Which key (ds:0 or ds:1) carries the real payload for a given request is not fixed, and when resolution fails, one block carries an RPC error placeholder while the other carries an unrelated "you might also like" carousel of other extensions. The scraper therefore parses every block, checks each candidate's own id against the one requested, and only trusts a match.
  • A handful of fields are also present as plain rendered text (a "40,000,000 users" line, an "Average rating 4.5 out of 5 stars." aria-label, and a Version/Size/Updated list) and are used as a second-tier fallback.

In short: every field except extensionId, url, query, error and scrapedAt can legitimately come back null with error: null. That is not a bug — it reflects what Chrome Web Store's server actually sends before any JavaScript runs, and it can change without notice since none of this is a documented API. The Actor never guesses or fabricates a value; a missing field is always null, never a stale placeholder.

How to use Chrome Web Store Extension Scraper

  1. Paste extension ids or Chrome Web Store URLs into Extensions. Both kbfnbcaeplbcioakkpcpgfkobkghlhen and https://chromewebstore.google.com/detail/grammarly/kbfnbcaeplbcioakkpcpgfkobkghlhen work — the slug in a URL is ignored, only the 32-character id is used.
  2. Leave Max concurrency at 3 for a handful of lookups; raise it for longer lists.
  3. Click Start, then export the dataset as JSON, CSV, Excel or HTML from the Output tab.

Example input

{
"extensions": [
"kbfnbcaeplbcioakkpcpgfkobkghlhen",
"https://chromewebstore.google.com/detail/grammarly/kbfnbcaeplbcioakkpcpgfkobkghlhen"
],
"maxConcurrency": 3
}

Example output

{
"extensionId": "kbfnbcaeplbcioakkpcpgfkobkghlhen",
"name": "Grammarly: AI Writing Assistant and Grammar Checker App",
"url": "https://chromewebstore.google.com/detail/kbfnbcaeplbcioakkpcpgfkobkghlhen?hl=en",
"rating": 4.5,
"ratingCount": 43117,
"users": 40000000,
"version": "14.1328.0",
"updatedAt": "2026-09-09T13:23:27.000Z",
"size": "17.42MiB",
"sizeBytes": 18266890,
"category": "productivity/communication",
"developerName": "Grammarly",
"developerWebsite": "http://grammarly.com/",
"developerEmail": "support@grammarly.com",
"languagesCount": 1,
"featured": null,
"description": "Grammarly for Chrome is your always-on AI partner for clearer, more compelling communication...",
"query": "https://chromewebstore.google.com/detail/grammarly/kbfnbcaeplbcioakkpcpgfkobkghlhen",
"error": null,
"scrapedAt": "2026-09-12T18:00:00.000Z"
}

Input parameters

ParameterTypeDefaultDescription
extensionsarray["kbfnbcaeplbcioakkpcpgfkobkghlhen"]Extension ids or Chrome Web Store URLs, one row each
maxConcurrencyinteger3Extensions fetched in parallel (1-20)

Pricing

Chrome Web Store Extension Scraper uses pay-per-event pricing: $0.0015 per extension result, i.e. $1.50 per 1,000 extensions, plus a negligible actor-start fee, platform usage included. Each extension is a single HTTP request, so compute cost stays negligible even for large lists. Set Maximum cost per run and the Actor trims the list to what the budget covers instead of overspending.

Chrome Web Store Extension Scraper vs. manually checking the store

Checking install counts and ratings for a batch of competitor or dependency extensions by hand means opening each store page and copying numbers out one at a time. This Actor takes the whole list and returns a flat, structured dataset in one run — useful for tracking a competitor's extension growth over time, auditing which extensions your company's employees have installed, or building a directory/comparison site.

Using Chrome Web Store Extension Scraper with AI agents and MCP

Chrome Web Store Extension Scraper is pay-per-event with limited permissions — the two requirements for an Actor to be callable through the Apify MCP server at mcp.apify.com. An agent passes extensions and gets back one structured row per extension, ready to compare against alternatives or check on a schedule. The same run works from n8n, Make, Zapier and LangChain through Apify's integrations.

FAQ

Why are some fields null? See "How the data is extracted" above — Chrome Web Store is a client-rendered page, and the server-side response Google sends before JavaScript runs varies per request. A null field means the Actor genuinely could not find that value in the response; it never throws the row away, and error stays null because the fetch itself succeeded.

Why does the default input (uBlock Origin) sometimes return mostly null fields? That specific id is, empirically, the single most-scraped extension on the entire store — we observed Google's server consistently declining to resolve it to real data for a plain HTTP request, while less-scraped extensions resolve normally. This is exactly the kind of behavior the Actor is built to survive gracefully instead of erroring out on.

Is this legal to run? Yes. It reads a public web page that Google serves to any visitor; no login, no scraping of user reviews or personal data, and no terms are bypassed.

What are the limitations? Positional field extraction from an undocumented internal data format can break if Google changes its markup; every extractor here is defensive and degrades to null rather than throwing. users is Chrome Web Store's own rounded bucket, not an exact count.

Can I export to CSV or Excel? Yes, from the Output tab or the API, with ready-made Overview and Developer & size views.

Part of the webdatatools web-intelligence suite — every Actor is pay-per-event, reads public data without a login, and returns one clean row per entity:

Browse the whole suite at webdatatools, or call ten of these Actors straight from Claude, Cursor or Cline with the webdatatools MCP server.

Website & domain intelligence

Content for AI, LLMs and RAG

Search, video and social

Leads, jobs and company data

Developer, app and research data

Support and feedback

Found an extension whose fields resolve incorrectly, or spotted a case Google's markup change broke? Open an issue on the Issues tab.