Google API: Search Chrome extensions
Finds Chrome Web Store extensions by keywords in store order, with each listing's developer, users, rating, rating count, short description and store link. Some listings omit developer, users or ratings.
Unofficial. Not affiliated with or endorsed by Google.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Query, required
query Words to search for, for example password manager.
weather
- Max Results optional
max_results Most extensions to return, for example 20.
23
Whole number from 1 to 100. Default
20.
Input as JSON
{ "query": "weather", "max_results": 23}Output
{ "extensions": [ { "name": "Weather", "developer": "weatherextension.com", "store_link": "https://chromewebstore.google.com/detail/weather/iolcbmjhmpdheggkocibajddahbeiglb" , "star_rating": 3.1, "extension_id": "iolcbmjhmpdheggkocibajddahbeiglb", "rating_count": 5742, "number_of_users": 100000, "short_description": "Weather at a glance. See the temperature in your toolbar and open hourly forecasts, daily forecasts, and radar." }, { "name": "Weather Forecast", "developer": "chYer", "store_link": "https://chromewebstore.google.com/detail/weather-forecast/ofobaelkgcpicbdoabokjlnmdcbjellg" , "star_rating": 3.9, "extension_id": "ofobaelkgcpicbdoabokjlnmdcbjellg", "rating_count": 191, "number_of_users": 10000, "short_description": "Provides local and long-range weather forecasts using Weather Underground" }, { "name": "UV Weather", "developer": "comfable.com", "store_link": "https://chromewebstore.google.com/detail/uv-weather/ngeokhpbgoadbpdpnplcminbjhdecjeb" , "star_rating": 4.5, "extension_id": "ngeokhpbgoadbpdpnplcminbjhdecjeb", "rating_count": 664, "number_of_users": 100000, "short_description": "Real time weather forecasts with live radar, minute by minute rain, multi-location support, air quality, and AI reports" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"chromewebstore.google.com/search_extensions","input":{"query":"weather","max_results":23}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "chromewebstore.google.com/search_extensions" , "input": { "query": "weather", "max_results": 23 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "chromewebstore.google.com/search_extensions" , "input": { "query": "weather", "max_results": 23 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run chromewebstore.google.com/search_extensions# with {"query":"weather","max_results":23}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "description": "Words to search for, for example password manager." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Most extensions to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "extensions" ], "properties": { "extensions": { "type": "array", "items": { "type": "object", "required": [ "name", "developer", "number_of_users", "star_rating", "rating_count", "short_description", "store_link", "extension_id" ], "properties": { "name": { "type": "string" }, "developer": { "type": [ "string", "null" ] }, "store_link": { "type": "string" }, "star_rating": { "type": [ "number", "null" ] }, "extension_id": { "type": "string", "x-fous-developer": true }, "rating_count": { "type": [ "integer", "null" ] }, "number_of_users": { "type": [ "integer", "null" ] }, "short_description": { "type": [ "string", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
chromewebstore.google.com/search_extensions- Returns
- name, developer, number of users, star rating, rating count, short description, store link, extension ID
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method chromewebstore.google.com/search_extensions with the inputs above.
Ask your agent
- Find me Chrome extensions for blocking ads on YouTube, with user counts and ratings
- What are the top 10 tab manager extensions in the Chrome Web Store? Include the developer and star rating for each.
- Search the Chrome Web Store for grammar checker extensions and give me their store links and extension IDs
- I need a dark mode browser extension for Chrome — list around 15 options with short descriptions and how many people use them
- Look up Google's Chrome extension listings for 'screenshot tool', up to 30 results, showing rating counts
See more
All Google methodsLooks up a Chrome Web Store extension by name or store link and returns its public listing: developer, users, rating, version, update date, size, category, description, declared privacy practices, website and store link. Permissions are null when the listing does not show them.
chromewebstore.google.com/get_extensionFinds Android apps on Google Play by keywords, in Play search order, with each listing's developer, star rating, price and currency for the chosen country, download range and link. Results are limited to apps shown on the public search page.
play.google.com/search_appsGets Google Search autocomplete suggestions for words typed so far, in Google's order, for a chosen country and language.
google.com/get_search_suggestionsSearches Google Books by words, author, subject or ISBN, with language, free-ebook and newest-first options. Ratings counts are not shown by the public book feed; newest sorts the available matches by publication date.
books.google.com/search_booksGets public user reviews for an Android app on Google Play. The app can be given by name, Play Store link, or app ID.
play.google.com/get_app_reviewsFinds a verified advertiser in the Google Ads Transparency Center by company name or website domain and returns its Google ads with dates, regions, previews and ad pages. Counts may be approximate; regions and media previews are read for the first 40 ads.
adstransparency.google.com/get_company_adsFinds Google Patents about an invention. Optional filters: inventor, assignee, country, filing date and publication stage. Legal status is the site's estimate.
patents.google.com/search_patentsGets a public Google Play app listing by app name or Play Store link, with developer, rating, downloads, price, what's new, descriptions and data safety highlights.
play.google.com/get_app