Skip to content

eon-berbrunner/chrome-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Chrome Extensions Scraper

Chrome Extensions Scraper collects rich metadata from the Chrome Web Store, turning extension listings into structured, analysis-ready data. Use it to research competitors, monitor categories, or power internal tools with up-to-date Chrome extension statistics and details.

Bitbash Banner

Telegram   WhatsApp   Gmail   Website

Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for Chrome Extensions you've just found your team — Let’s Chat. 👆👆

Introduction

Chrome Extensions Scraper is a dedicated tool for extracting information about extensions currently available in the Chrome Web Store. It focuses on transforming public extension pages into structured records that are easy to filter, search, and analyze.

It is ideal for growth teams, market researchers, data engineers, and indie developers who need reliable, large-scale access to Chrome extension data without manual copy-paste work.

Chrome Extension Intelligence at Scale

  • Crawl one or more Chrome Web Store category or search URLs and collect all matching extensions.
  • Capture detailed metadata including installs, ratings, categories, developer links, and update history.
  • Support for full-catalog collection, or scoped runs limited to selected category URLs.
  • Generate consistent JSON output that can be used in dashboards, BI tools, or custom scripts.
  • Designed to run repeatedly so you can track trends and changes over time.

Features

Feature Description
Full catalog crawling Collects information on all extensions discoverable from provided Chrome Web Store listing URLs.
Category-level targeting Limit scraping to one or more categories or custom listing URLs for focused research.
Rich metadata extraction Captures installs, rating score, rating count, last update date, version, and more.
Developer & privacy details Extracts developer name, website, support links, and privacy policy URLs where available.
Performance-oriented crawling Optimized request strategy to balance speed with stability for large category scans.
Raw JSON output Produces structured JSON data that plugs directly into pipelines, databases, or analytics tools.
Flexible input configuration Configure start URLs, maximum items, and filters for fine-grained control over each run.
Error-tolerant design Handles intermittent failures gracefully and skips broken or unavailable listings.

What Data This Scraper Extracts

Field Name Field Description
extensionId Unique identifier of the Chrome extension.
name Display name of the extension as shown in the store.
slug URL-friendly identifier part used in the extension page URL.
url Canonical URL of the extension listing page.
category Primary category under which the extension is listed.
summary Short summary or tagline shown in the store.
description Full description text of the extension.
rating Average user rating (e.g. 4.7) parsed from the listing.
ratingCount Total number of user ratings or reviews.
userCount Approximate number of users or installs reported by the store.
price Price information if the extension is paid, otherwise null.
isFree Boolean flag indicating whether the extension is free.
version Current version number displayed on the details page.
lastUpdated Date the extension was last updated in the store.
language Primary language of the extension listing.
developerName Name of the developer or publisher.
developerWebsite Link to the developer or publisher website, if available.
supportUrl Support or contact URL for the extension.
privacyPolicyUrl Link to the privacy policy page, if declared.
permissions List of browser permissions requested by the extension.
featuredBadge Boolean or label indicating if the extension is marked as featured or recommended.
iconUrl URL of the extension icon image.
screenshotUrls Array of screenshot image URLs from the listing.
categoryPath Hierarchical category path or breadcrumb when available.
rankingPosition Position of the extension in its category or search results, when computed.
rawHtml Optional raw HTML snapshot or key fragments for advanced parsing, if enabled.
crawlTimestamp Timestamp indicating when this record was scraped.
inputCategoryUrl Source listing URL from which this extension was discovered.

Example Output

Example:

[
  {
    "extensionId": "aapocclcgogkmnckokdopfmhonfmgoek",
    "name": "Momentum",
    "slug": "momentum",
    "url": "https://chrome.google.com/webstore/detail/momentum/aapocclcgogkmnckokdopfmhonfmgoek",
    "category": "Productivity",
    "summary": "Replace new tab page with a personal dashboard featuring to-do, weather, and inspiration.",
    "description": "Build better habits and stay focused with a customizable dashboard that appears on every new tab.",
    "rating": 4.8,
    "ratingCount": 48621,
    "userCount": 3000000,
    "price": null,
    "isFree": true,
    "version": "2.11.3",
    "lastUpdated": "2025-01-15",
    "language": "en",
    "developerName": "Momentum Dashboard",
    "developerWebsite": "https://momentumdash.com",
    "supportUrl": "https://momentumdash.com/support",
    "privacyPolicyUrl": "https://momentumdash.com/privacy",
    "permissions": [
      "storage",
      "tabs"
    ],
    "featuredBadge": true,
    "iconUrl": "https://lh3.googleusercontent.com/icon-momentum-128.png",
    "screenshotUrls": [
      "https://lh3.googleusercontent.com/screenshot1.png",
      "https://lh3.googleusercontent.com/screenshot2.png"
    ],
    "categoryPath": [
      "Extensions",
      "Productivity"
    ],
    "rankingPosition": 3,
    "rawHtml": null,
    "crawlTimestamp": "2025-02-01T10:32:11.000Z",
    "inputCategoryUrl": "https://chromewebstore.google.com/category/productivity"
  }
]

Directory Structure Tree

Example:

facebook-posts-scraper (IMPORTANT :!! always keep this name as the name of the apify actor !!! Chrome Extensions )/
    ├── src/
    │   ├── index.js
    │   ├── config/
    │   │   ├── defaultConfig.json
    │   │   └── inputSchema.json
    │   ├── lib/
    │   │   ├── chromeStoreClient.js
    │   │   ├── extensionParser.js
    │   │   ├── paginationHelper.js
    │   │   └── logger.js
    │   ├── services/
    │   │   ├── crawlCatalog.js
    │   │   └── processExtensionPage.js
    │   └── outputs/
    │       └── jsonExporter.js
    ├── data/
    │   ├── input-urls.sample.json
    │   └── output-sample.json
    ├── tests/
    │   ├── extensionParser.test.js
    │   ├── chromeStoreClient.test.js
    │   └── fixtures/
    │       └── sample-extension-page.html
    ├── .github/
    │   └── workflows/
    │       └── ci.yml
    ├── package.json
    ├── package-lock.json
    ├── .env.example
    ├── .gitignore
    ├── LICENSE
    └── README.md

Use Cases

  • [Growth marketers] use it to analyze top-performing Chrome extensions in specific categories, so they can benchmark features, pricing, and positioning before launching new products.
  • [SaaS founders] use it to identify extension-based competitors and monitor their update cadence, so they can react quickly to market changes.
  • [Data analysts] use it to build dashboards of installs, ratings, and rankings over time, so stakeholders can track adoption trends at a glance.
  • [Researchers] use it to study ecosystem dynamics, such as which categories are growing fastest and what types of tools dominate the store.
  • [Lead generation teams] use it to discover potential partners or integration targets by filtering extensions by category, rating, or user count.

FAQs

Q1: What input do I need to provide? You typically provide one or more Chrome Web Store listing URLs, such as category or search result pages. Optionally, you can set limits on how many extensions to collect from each URL and whether to follow pagination.

Q2: Can this scraper handle the entire Chrome Web Store? Yes, but large-scale runs should be configured carefully with reasonable limits and batching strategies. For full-catalog coverage, you would usually combine multiple category URLs and run the scraper in scheduled batches to stay within resource and rate constraints.

Q3: Does it download or modify any extensions? No. The scraper only reads publicly available metadata from the store pages and does not install, modify, or interact with the extensions themselves.

Q4: How stable is the data format over time? The scraper is built to be resilient to minor layout changes, but the store occasionally introduces breaking updates. When that happens, updating the parser logic quickly restores consistent field extraction.


Performance Benchmarks and Results

Primary Metric: On a typical run against a single category listing, the scraper processes around 150–250 extension detail pages per minute on a mid-range server, including pagination and metadata extraction.

Reliability Metric: Across long-running batches, success rates of 97–99% per extension URL are common, with automatic retries handling most transient network or store-side issues.

Efficiency Metric: Memory usage remains modest even for larger runs, as pages are processed in a streaming fashion and only structured JSON records are retained or exported.

Quality Metric: For core fields such as name, rating, userCount, and lastUpdated, internal tests show over 98% field completeness on well-formed listings, providing dependable input for analytics and downstream automation.

Book a Call Watch on YouTube

Review 1

"Bitbash is a top-tier automation partner, innovative, reliable, and dedicated to delivering real results every time."

Nathan Pennington
Marketer
★★★★★

Review 2

"Bitbash delivers outstanding quality, speed, and professionalism, truly a team you can rely on."

Eliza
SEO Affiliate Expert
★★★★★

Review 3

"Exceptional results, clear communication, and flawless delivery.
Bitbash nailed it."

Syed
Digital Strategist
★★★★★

Releases

No releases published

Packages

 
 
 

Contributors