# Chrome Web Store API

> Chrome Web Store returns extension listings and details as a workflow and API.

Chrome Web Store (CWS) returns public listing details for an extension found by name or store link. Search extensions finds extensions by keywords and returns listing details; it needs a search query, with an optional maximum result count.

- Page: https://fous.com/tools/chrome-web-store
- Handle: `@chrome-web-store`
- Category: [Developer tools](https://fous.com/tools/category/developer-tools)
- Source website: https://chromewebstore.google.com
- Last verified: Sep 29, 2026

## Methods

### Get extension

Operation `get_extension`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Look up a Chrome Web Store extension by name or store link and return its public listing details. Permissions are null when not displayed on the listing.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `extension` | string | yes | `"Grammarly"` | Extension name or Chrome Web Store link, for example Grammarly or https://chromewebstore.google.com/detail/grammarly-ai-writing-assi/kbfnbcaeplbcioakkpcpgfkobkghlhen. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "extension"
  ],
  "properties": {
    "extension": {
      "type": "string",
      "description": "Extension name or Chrome Web Store link, for example Grammarly or https://chromewebstore.google.com/detail/grammarly-ai-writing-assi/kbfnbcaeplbcioakkpcpgfkobkghlhen.",
      "examples": [
        "Grammarly",
        "uBlock Origin Lite",
        "https://chromewebstore.google.com/detail/grammarly-ai-writing-assi/kbfnbcaeplbcioakkpcpgfkobkghlhen"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "extension": "Grammarly"
    },
    {
      "extension": "uBlock Origin Lite"
    },
    {
      "extension": "https://chromewebstore.google.com/detail/grammarly-ai-writing-assi/kbfnbcaeplbcioakkpcpgfkobkghlhen"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `size` | string or null | `"16.87MiB"` | Download size as shown on the listing. |
| `version` | string or null | `"14.1333.0"` | Published version. |
| `category` | string or null | `"Communication"` | Store category. |
| `developer` | string or null | `"Grammarly"` | Publisher name shown on the listing. |
| `store_link` | string | `"https://chromewebstore.google.com/detail/grammarly-ai-writing-assi/kbfnbcaeplbcioakkpcpgfkobkghlhen"` | Link to this Chrome Web Store listing. |
| `permissions` | array or null |  | Permissions requested when displayed on the listing; null when absent. |
| `star_rating` | number or null | `4.5` | Displayed star rating out of five. |
| `extension_id` | string | `"kbfnbcaeplbcioakkpcpgfkobkghlhen"` | 32-letter Chrome extension identifier. |
| `rating_count` | integer or null | `43131` | Number of user ratings. |
| `website_link` | string or null | `"http://grammarly.com/"` | Publisher website, if listed. |
| `extension_name` | string | `"Grammarly: AI Writing Assistant and Grammar Checker App"` | Name of the extension. |
| `number_of_users` | integer or null | `40000000` | Number of users shown on the listing. |
| `last_updated_date` | string or null | `"2026-09-28"` | Last updated date in YYYY-MM-DD format. |
| `privacy_practices` | array |  | Plain sentences describing declared data handling practices. |
| `short_description` | string or null | `"Grammarly for Chrome helps you write with confidence. Get AI support for grammar, clarity, and tone, from first draft t` | Short listing description. |

**Example input**

```json
{
  "extension": "Grammarly"
}
```

**Example output**

```json
{
  "size": "16.87MiB",
  "version": "14.1333.0",
  "category": "Communication",
  "developer": "Grammarly",
  "store_link": "https://chromewebstore.google.com/detail/grammarly-ai-writing-assi/kbfnbcaeplbcioakkpcpgfkobkghlhen",
  "permissions": null,
  "star_rating": 4.5,
  "extension_id": "kbfnbcaeplbcioakkpcpgfkobkghlhen",
  "rating_count": 43131,
  "website_link": "http://grammarly.com/",
  "extension_name": "Grammarly: AI Writing Assistant and Grammar Checker App",
  "number_of_users": 40000000,
  "last_updated_date": "2026-09-28",
  "privacy_practices": [
    "The developer declares that this extension handles personally identifiable information, personal communications, location, user activity, website content.",
    "The developer declares that your data is not being sold to third parties, outside of the approved use cases.",
    "The developer declares that your data is not being used or transferred for purposes that are unrelated to the item's core functionality."
  ],
  "short_description": "Grammarly for Chrome helps you write with confidence. Get AI support for grammar, clarity, and tone, from first draft to final edit."
}
```

### Search extensions

Operation `search_extensions`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find Chrome browser extensions by keywords in store order, with listing details. Some listings omit developer, users or ratings.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"password manager"` | Words to search for, for example password manager. |
| `max_results` | integer | no | `23` | Most extensions to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Words to search for, for example password manager.",
      "examples": [
        "password manager",
        "weather",
        "zxqvnonexistent123456789zz"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Most extensions to return, for example 20.",
      "x-fous-developer": true,
      "examples": [
        23,
        20
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "password manager"
    },
    {
      "query": "weather",
      "max_results": 23
    },
    {
      "query": "zxqvnonexistent123456789zz",
      "max_results": 20
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `extensions` | array |  |  |
| `extensions[].name` | string | `"LastPass: Free Password Manager"` |  |
| `extensions[].developer` | string or null | `"LastPass"` |  |
| `extensions[].store_link` | string | `"https://chromewebstore.google.com/detail/lastpass-free-password-ma/hdokiejnpimakedhajhdlcegeplioahd"` |  |
| `extensions[].star_rating` | number or null | `4.2` |  |
| `extensions[].extension_id` | string | `"hdokiejnpimakedhajhdlcegeplioahd"` |  |
| `extensions[].rating_count` | integer or null | `28477` |  |
| `extensions[].number_of_users` | integer or null | `8000000` |  |
| `extensions[].short_description` | string or null | `"LastPass is an award-winning password manager for secure credential management on any device."` |  |

**Example input**

```json
{
  "query": "password manager"
}
```

**Example output**

```json
{
  "extensions": [
    {
      "name": "LastPass: Free Password Manager",
      "developer": "LastPass",
      "store_link": "https://chromewebstore.google.com/detail/lastpass-free-password-ma/hdokiejnpimakedhajhdlcegeplioahd",
      "star_rating": 4.2,
      "extension_id": "hdokiejnpimakedhajhdlcegeplioahd",
      "rating_count": 28477,
      "number_of_users": 8000000,
      "short_description": "LastPass is an award-winning password manager for secure credential management on any device."
    },
    {
      "name": "Keeper® Password Manager & Digital Vault",
      "developer": "Keeper Security, Inc.",
      "store_link": "https://chromewebstore.google.com/detail/keeper®-password-manager/bfogiafebfohielmmehodmfbbebbbpei",
      "star_rating": 4.8,
      "extension_id": "bfogiafebfohielmmehodmfbbebbbpei",
      "rating_count": 8534,
      "number_of_users": 2000000,
      "short_description": "Generate strong passwords, autofill and protect your confidential info with zero-knowledge encryption."
    },
    {
      "name": "Bitwarden Password Manager",
      "developer": "Bitwarden Inc.",
      "store_link": "https://chromewebstore.google.com/detail/bitwarden-password-manage/nngceckbapebfimnlniiiahkandclblb",
      "star_rating": 4.3,
      "extension_id": "nngceckbapebfimnlniiiahkandclblb",
      "rating_count": 8029,
      "number_of_users": 7000000,
      "short_description": "At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@chrome-web-store",
  "visibility": "public",
  "operation": "get_extension",
  "version": 1,
  "input": {
    "extension": "Grammarly"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@chrome-web-store\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_extension\",\n  \"version\": 1,\n  \"input\": {\n    \"extension\": \"Grammarly\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@chrome-web-store",
  "visibility": "public",
  "operation": "get_extension",
  "version": 1,
  "input": {
    "extension": "Grammarly"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/chrome-web-store`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_extension`: Get extension. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_extensions`: Search extensions. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-chrome-web-store https://api.fous.com/mcp/tools/chrome-web-store --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare extension ratings and user counts
- Review listed extension permissions
- Find extensions by keyword
- Check an extension’s version and update date
- Review publishers and declared privacy practices

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Chrome Web Store tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Chrome Web Store account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from chromewebstore.google.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What details are listed for an extension?

Get extension returns public listing details, including its publisher, version, ratings, permissions when displayed, and declared privacy practices.

### Which extensions match a search query?

Search extensions finds extensions by keywords and returns listing details, including names, publishers, ratings, and user counts when available.

## Related

- [VS Code Marketplace API](https://fous.com/tools/vs-code-marketplace.md): Public listings for Visual Studio Code extensions.
- [Google Play API](https://fous.com/tools/google-play.md): Google Play helps people discover Android apps and games, view public listings and search results, read reviews when available by app and region, and see country-specific top charts.
- [Microsoft Store API](https://fous.com/tools/microsoft-store.md): Microsoft Store returns app and game listings, country-specific searches, and ranked charts; update notes, purchase prices, and exact rating counts may be unavailable.
- [Apple App Store API](https://fous.com/tools/apple-app-store.md): Apple App Store returns public app listings, keyword search, ratings, prices, listed purchases, country-specific reviews and visible replies, and up to 200 ranked chart apps.
- [Google Shopping API](https://fous.com/tools/google-shopping.md): Google Shopping shows product offers, prices, ratings, delivery and store links; results vary by country and listings, totals need shown shipping, and typical ranges may be missing.
- [Google Search API](https://fous.com/tools/google-search.md): Google Search returns public web, image, job, event, related-question, and autocomplete results in Google’s order, with answers and details when available; results may be fewer, omit information, or be empty.
- [AliExpress API](https://fous.com/tools/aliexpress.md): AliExpress returns product listings and selected product details, including prices, variants, reviews, and destination-specific shipping options shown for the displayed variant.
- [Steam API](https://fous.com/tools/steam.md): Steam returns game details, country-specific prices, reviews, and current and historical player counts, plus player rankings and sales lists; some details or prices may be unavailable, and review totals span languages and verdicts.
- [All Developer tools tools](https://fous.com/tools/category/developer-tools)
