Extension discovery
Use Chrome Web Store endpoints to turn extension discovery into repeatable API requests with documented inputs and JSON responses.
Collect Chrome Web Store extension discovery, listing, review, permission, and privacy signals as normalized JSON for app intelligence and browser-extension research workflows.
Extract public Chrome Web Store extension metadata, search results, reviews, permissions, privacy details, categories, and charts as JSON.
Endpoint families
6
Documented params
53
Examples
12
Live catalog snapshot
Active endpoints
12
Methods
GET
Required params
22
Schema refs
12
{
"platform": "Chrome Web Store",
"endpoint": "chromewebstore-search",
"method": "GET",
"path": "/chromewebstore/search",
"auth": "apiKey"
}Use cases
Extract public Chrome Web Store extension metadata, search results, reviews, permissions, privacy details, categories, and charts as JSON.
Use Chrome Web Store endpoints to turn extension discovery into repeatable API requests with documented inputs and JSON responses.
Use Chrome Web Store endpoints to turn review monitoring into repeatable API requests with documented inputs and JSON responses.
Use Chrome Web Store endpoints to turn permission and privacy analysis into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Chrome Web Store endpoint catalog — 12 endpoints, 53 documented request parameters, and 12 published response schemas — the same catalog Docs and Playground run against.
12 documented Chrome Web Store endpoints, grouped into 12 request families — Categories, Category and Charts, plus 9 more.
53 request parameters are documented across those Chrome Web Store endpoints, 22 of them required — the full input contract is public before you write any integration code.
12 of the 12 Chrome Web Store endpoints ship a recorded example response, and 12 carry a documented response schema — you can code against the real JSON before the first request.
Chrome Web Store endpoints document their error responses (400, 404, 429 and 500) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
12 hosted MCP tools back the Chrome Web Store endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/chromewebstore/categories
/chromewebstore/category
/chromewebstore/charts
/chromewebstore/collection
/chromewebstore/developer
/chromewebstore/item
Endpoint catalog
/chromewebstore/searchReturns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.
Response notes
- Each result card carries `id`, `name`, `icon`, `summary`, `rating`, `rating_count`, `users`, `publisher`, `category`, and a detail `url`. - An empty `results` array means the query genuinely returned no items — it does not mean a specific item is missing. To confirm an item's presence, look it up directly with `chromewebstore_item`. - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503), never as `200` with an empty array. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "vpn", "count": 1, "results": [ { "id": "majdfhpaihoncoakbjgbdhglocklcgno", "name": "Free VPN for Chrome - VPN Proxy VeePN", "rating": 4.5, "rating_count": 50285, "publisher": "veepn.com", "url": "https://chromewebstore.google.com/detail/majdfhpaihoncoakbjgbdhglocklcgno" } ] } } ```
MCP tool chromewebstore_search
/chromewebstore/itemReturns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.
Response notes
- Fields come from the store's server-rendered item detail page: name, summary, full description, rating and rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. - A removed or unknown item id returns a typed not-found error (HTTP 404). - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503), never as a partial success. Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "name": "uBlock Origin", "rating": 4.7, "rating_count": 35457, "users": 13000000, "version": "1.72.0", "updated": "2026-06-29", "size": "4.39MiB", "category": "make_chrome_yours/privacy", "developer": "Raymond Hill (gorhill)", "url": "https://chromewebstore.google.com/detail/cjpalhdlnbpafiamejdnhcphjbkeiagm" } } ```
MCP tool chromewebstore_item
/chromewebstore/reviewsReturns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.
Response notes
- `total` is the item's overall review count; `count` is how many were returned. - Each review carries `id`, `author`, `avatar`, `rating` (1–5 stars), `text`, `helpful` (how many found it helpful), `posted`/`edited` dates, reviewed `version`, and `language`. - Reviews are paginated up to `num`, ordered by the store's `recent` (newest) or `helpful` (most relevant) sort. - A removed or unknown item id returns an empty result. A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "total": 10482, "count": 1, "reviews": [ { "id": "c05ba4d6-b816-49c4-80f6-ab1fcfdb1454", "author": "delta", "rating": 5, "text": "so good, chrome wants it gone", "posted": "2026-07-06", "version": "1.72.0", "language": "en" } ] } } ```
MCP tool chromewebstore_reviews
/chromewebstore/permissionsReturns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.
Response notes
- `permissions`, `optional_permissions`, `host_permissions`, and `optional_host_permissions` come from the extension's manifest, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. - An unknown item id returns a typed not-found error (HTTP 404). A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "name": "uBlock Origin", "manifest_version": 2, "min_browser_version": "93.0", "permissions": ["alarms", "contextMenus", "storage", "tabs", "webNavigation", "webRequest", "webRequestBlocking", "<all_urls>"], "url": "https://chromewebstore.google.com/detail/cjpalhdlnbpafiamejdnhcphjbkeiagm" } } ```
MCP tool chromewebstore_permissions
/chromewebstore/privacyReturns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.
Response notes
- `disclosure` is the developer's data-use statement; `collects_data` reflects whether it declares collecting or using data; `data_collected` lists the data categories it declares handling (empty when it collects nothing); `declarations` is the list of standard data-handling declarations the store shows; `privacy_policy` is the developer's privacy-policy link. - An unknown item id returns a typed not-found error (HTTP 404). A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response (a data-collecting extension): ```json { "code": 200, "msg": "OK", "data": { "id": "kbfnbcaeplbcioakkpcpgfkobkghlhen", "name": "Grammarly: AI Writing Assistant", "collects_data": true, "data_collected": [ "Personally identifiable information", "Personal communications", "Location", "User activity", "Website content" ], "disclosure": "Grammarly … has disclosed the following information regarding the collection and usage of your data.", "declarations": [ "Not being sold to third parties, outside of the approved use cases", "Not being used or transferred for purposes that are unrelated to the item's core functionality", "Not being used or transferred to determine creditworthiness or for lending purposes" ], "privacy_policy": "https://www.grammarly.com/privacy-policy", "url": "https://chromewebstore.google.com/detail/kbfnbcaeplbcioakkpcpgfkobkghlhen" } } ``` An extension that collects nothing returns `collects_data: false` and an empty `data_collected`, with a "will not collect or use your data" disclosure.
MCP tool chromewebstore_privacy
/chromewebstore/similarReturns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.
Response notes
- Related cards use the same shape as search results and never include the item itself. - A removed or unknown item id returns a typed not-found error (HTTP 404). - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "count": 1, "results": [ { "id": "ddkjiahejlhfcafbddmgiahcphecmpfh", "name": "uBlock Origin Lite", "rating": 4.5, "rating_count": 3239, "url": "https://chromewebstore.google.com/detail/ddkjiahejlhfcafbddmgiahcphecmpfh" } ] } } ```
MCP tool chromewebstore_similar
/chromewebstore/suggestReturns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.
Response notes
- The store exposes no server-rendered typeahead source, so suggestions are the distinct names of the top store-search results for the prefix. - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": [ { "term": "AdBlock — block ads across the web" }, { "term": "Adblock Plus - free ad blocker" } ] } ```
MCP tool chromewebstore_suggest
/chromewebstore/chartsReturns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.
Response notes
- Result cards use the same shape as search results. - An invalid `chart` value returns a typed invalid-params error (HTTP 400). - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "kind": "chart", "value": "popular", "count": 1, "results": [ { "id": "jghecgabfgfdldnmbfkhmffcabddioke", "name": "Volume Master", "rating": 4.8, "url": "https://chromewebstore.google.com/detail/jghecgabfgfdldnmbfkhmffcabddioke" } ] } } ```
MCP tool chromewebstore_charts
/chromewebstore/categoriesReturns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.
Response notes
- `categories` lists the extension category groups and their subcategory slugs (pass a subcategory slug to `/chromewebstore/category`). - `charts` lists the top-chart identifiers accepted by `/chromewebstore/charts`: `trending`, `popular`, `notable`. - `collections` lists known curated collection slugs accepted by `/chromewebstore/collection`. Example response: ```json { "code": 200, "msg": "OK", "data": { "categories": [ { "group": "productivity", "subcategories": [ "productivity/communication", "productivity/developer", "productivity/education", "productivity/tools", "productivity/workflow" ] } ], "charts": ["trending", "popular", "notable"], "collections": ["editors_picks_extensions", "dark_mode", "ai_productivity"] } } ```
MCP tool chromewebstore_categories
/chromewebstore/categoryReturns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.
Response notes
- Result cards use the same shape as search results. - An invalid category slug returns a typed invalid-params error (HTTP 400). - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "kind": "category", "value": "productivity/tools", "count": 1, "results": [ { "id": "kdpelmjpfafjppnhbloffcjpeomlnpah", "name": "WPS PDF - Read, Edit, Fill, Convert, and AI Chat PDF with Ease", "rating": 4.5, "url": "https://chromewebstore.google.com/detail/kdpelmjpfafjppnhbloffcjpeomlnpah" } ] } } ```
MCP tool chromewebstore_category
/chromewebstore/collectionReturns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.
Response notes
- Result cards use the same shape as search results. - An invalid collection slug returns a typed invalid-params error (HTTP 400). - A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "kind": "collection", "value": "editors_picks_extensions", "count": 1, "results": [ { "id": "becfinhbfclcgokjlobojlnldbfillpf", "name": "Chat with all AI models & AI Agents | AITOPIA", "rating": 4.9, "url": "https://chromewebstore.google.com/detail/becfinhbfclcgokjlobojlnldbfillpf" } ] } } ```
MCP tool chromewebstore_collection
/chromewebstore/developerReturns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items ("More from ..."). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.
Response notes
- `name`, `legal_name`, `email`, `phone`, `address`, `website`, and `duns` (D-U-N-S number) come from the publisher's disclosed trader details. The trader fields are only present for publishers that identify as EU traders (`is_trader: true`); consumer/individual publishers omit them. - `website` is derived from the domain the store attaches to the publisher's items. - `items` is the publisher's listing ("More from ..."), using the same card shape as search results. - An unknown publisher id returns a typed not-found error (HTTP 404). A blocked or shape-changed upstream response is returned as a typed upstream error (HTTP 503). Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "u63f06aecfdc45d32c13ccc24f56c3d2d", "name": "Adguard Software Limited", "legal_name": "Adguard Software Ltd", "email": "support@adguard.com", "phone": "+35780077147", "address": "Andrea Zakou, Limassol Centre C, office 34, Limassol 3095, CY", "website": "https://adguard.com", "duns": "534532547", "is_trader": true, "url": "https://chromewebstore.google.com/publisher/u63f06aecfdc45d32c13ccc24f56c3d2d", "count": 1, "items": [ { "id": "bgnkhhnnamicmpeenaelnjfhikgbkllg", "name": "AdGuard AdBlocker", "rating": 4.66, "rating_count": 68233, "publisher": "adguard.com", "url": "https://chromewebstore.google.com/detail/bgnkhhnnamicmpeenaelnjfhikgbkllg" } ] } } ```
MCP tool chromewebstore_developer
Related APIs
App Stores
Run App Store search queries and turn App Store listings, rankings, reviews, and developer pages into structured JSON for app intelligence, ASO research, and competitor monitoring workflows.
App Stores
Build Android app intelligence workflows with structured Google Play data.
How to scrape Chrome Web Store
Google publishes no public API for reading the Chrome Web Store catalog, so extension data has to come off the store's own pages. Crawlora's 12 Chrome Web Store endpoints return search, listing, review, permission, privacy, chart, category, and publisher data as normalized JSON.
Search by keyword term, use the suggest endpoint for query completions, or browse a category, a curated collection, or a top chart.
The item endpoint takes the extension id; search cards already carry id, name, rating, user count, publisher, and detail URL.
Separate endpoints return an extension's declared permissions and its privacy disclosures — which is what makes extension-risk analysis possible without installing anything.
Every endpoint takes country and lang, so you can compare how a listing, chart, or category ranks across storefronts.
FAQ
Not for reading the public catalog. Google provides a Chrome Web Store Publisher API for managing items you already own, but nothing that exposes search, reviews, charts, permissions, or categories. Crawlora's endpoints read the public store pages and return that catalog as JSON.
The charts endpoint takes a chart of trending, popular, or notable, and accepts country and lang so you can pull a storefront-specific ranking.
Yes. The permissions endpoint returns an extension's declared permissions and the privacy endpoint returns its privacy disclosures, both keyed by extension id — enough to flag over-permissioned or data-collecting extensions across a whole category.
The reviews endpoint takes the extension id and a sort of recent or helpful, with num controlling how many come back.