Google API: Search Google Play apps
Finds 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.
Unofficial. Not affiliated with or endorsed by Google.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Query, required
query Keywords to find apps, for example budget tracker.
budget tracker
- Country optional
country Country name or two-letter code for listings, for example United Kingdom or GB.
United States (default)
- Max Results optional
max_results Most apps to return, for example 20.
20 (default)
Whole number from 1 to 100.
Input as JSON
{ "query": "budget tracker"}Output
{ "apps": [ { "price": 0, "app_name": "MyMoney—Track Expense & Budget", "currency": "USD", "developer": "Ananta Raha", "downloads": "1M+", "star_rating": 4.8, "package_name": "com.raha.app.mymoney.free", "play_store_link": "https://play.google.com/store/apps/details?id=com.raha.app.mymoney.free" }, { "price": 0, "app_name": "Wallet: Budget Expense Tracker", "currency": "USD", "developer": "BudgetBakers", "downloads": "10M+", "star_rating": 4.6, "package_name": "com.droid4you.application.wallet", "play_store_link": "https://play.google.com/store/apps/details?id=com.droid4you.application.wallet" }, { "price": 0, "app_name": "Money Tracker-Expense & Budget", "currency": "USD", "developer": "Horoscope365", "downloads": "5M+", "star_rating": 4.8, "package_name": "com.freeman.moneymanager", "play_store_link": "https://play.google.com/store/apps/details?id=com.freeman.moneymanager" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"play.google.com/search_apps","input":{"query":"budget tracker"}}' # 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": "play.google.com/search_apps" , "input": { "query": "budget tracker" }})# 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": "play.google.com/search_apps" , "input": { "query": "budget tracker" } }), 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 play.google.com/search_apps# with {"query":"budget tracker"}"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", "minLength": 1, "description": "Keywords to find apps, for example budget tracker." }, "country": { "type": "string", "default": "United States", "description": "Country name or two-letter code for listings, for example United Kingdom or GB." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Most apps to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "apps" ], "properties": { "apps": { "type": "array", "items": { "type": "object", "required": [ "app_name", "developer", "star_rating", "price", "currency", "downloads", "play_store_link", "package_name" ], "properties": { "price": { "type": "number", "description": "Listed app price; zero means free." }, "app_name": { "type": "string", "description": "App name." }, "currency": { "type": "string", "description": "Currency code for the listed price." }, "developer": { "type": [ "string", "null" ], "description": "Developer name." }, "downloads": { "type": [ "string", "null" ], "description": "Download range as displayed, for example 10M+." }, "star_rating": { "type": [ "number", "null" ], "description": "Rating out of five stars." }, "package_name": { "type": "string", "description": "Android package name." }, "play_store_link": { "type": "string", "description": "App page on Google Play." } } }, "description": "Apps in Play search order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
play.google.com/search_apps- Returns
- app name, developer, star rating, price, currency, downloads, Play Store link, package name
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 play.google.com/search_apps with the inputs above.
Ask your agent
- Find Android apps for learning Japanese and show me the developer, rating, and price for each
- What are the top 10 meditation apps on Google Play in Germany? I need their prices in euros and download counts
- List up to 30 offline GPS navigation apps available in India with their package names and store links
- I'm researching competitors for a habit tracker app — pull the first 50 results for 'habit tracker' in the UK with ratings and install ranges
- Search the Google Play store in Canada for podcast player apps and tell me which ones are free versus paid
See more
All Google methodsGets 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_appGets 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_reviewsLists ranked Android apps or games from the Google Play top free, top paid or top grossing chart for a country and category.
play.google.com/list_top_chartsFinds 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.
chromewebstore.google.com/search_extensionsGets Google Search autocomplete suggestions for words typed so far, in Google's order, for a chosen country and language.
google.com/get_search_suggestionsFinds recent Google News articles about a company, person or topic for a country and language, in Google News order, optionally within a time window, with each article's publisher link resolved.
news.google.com/search_newsFinds businesses and places near a location on Google Maps, in Google Maps order, with rating, hours, contact details and links when shown.
google.com/search_placesFinds 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_ads