Google Play Search API - Find Android Apps
Documentation menu
FetchLayer FetchLayer API

Search Google Play apps

Search the Google Play app catalog by keyword and get back matching apps with their package name, developer, rating, install count, price, and store URL. Filter by store country, locale, and price. Use it to turn an app name into the package ID the reviews endpoint needs, or to pull a whole category of competing apps in one call. Google itself caps a query at roughly 20–250 apps, so `maxResults: -1` returns everything Google is willing to give rather than an unlimited catalog dump. Billing is per page actually fetched — the response reports `pagesFetched`, and the default `maxResults` of 50 is served by a single page (1 credit).

POST /search Search
https://api.fetchlayer.dev/playstore/search
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

query string required

Search term, as typed into Google Play search.

country string optional

Two-letter store country code (e.g. us, gb, jp). (default: us)

language string optional

Store locale (e.g. en-US, de-DE). (default: en-US)

price string optional

Price filter: all, free, or paid. (default: all)

maxResults number optional

Maximum apps to return. Pass -1 to follow pagination until Google stops returning results. Billed per page actually fetched (see `pagesFetched`). (default: 50)

resultsPerPage number optional

Apps requested per pagination call (1-100). (default: 100)

delayMs number optional

Delay in milliseconds between pagination requests. (default: 1000)

timeoutMs number optional

Timeout in milliseconds for each Google Play request. (default: 30000)

format string optional

Response renderer: json, or markdown to get the result as text/markdown. (default: json)

Response Fields

search

Search Google Play apps

query string

The search term that was run.

country string

Store country the results came from.

language string

Store locale the results came from.

price string

Price filter applied: all, free, or paid.

apps object[]

Matching apps, in Google Play's own ranking order.

apps[].appId string

Android package name — pass this to the reviews endpoint.

apps[].title string

App title as listed on the store.

apps[].url string

Google Play listing URL.

apps[].icon string | null

App icon URL.

apps[].developer string | null

Developer name.

apps[].developerId string | null

Developer ID. Only present for paginated results and the exact-match card.

apps[].summary string | null

Plain-text one-liner, trimmed to 300 characters.

apps[].score number | null

Average star rating from 0 to 5.

apps[].scoreText string | null

Rating as Google renders it (e.g. "4.8").

apps[].price number

Price in the listed currency; 0 for free apps.

apps[].priceText string | null

Formatted price. Null for free apps.

apps[].currency string | null

Currency code for the price.

apps[].free boolean

Whether the app is free.

apps[].installs string | null

Install count as Google renders it (e.g. "5,000,000+"). Only present for first-page results.

apps[].genre string | null

Store category. Only present for first-page results.

apps[].contentRating string | null

Content rating. Only present for first-page results.

apps[].position number

One-based rank within the result set.

apps[].topResult boolean

Whether Google surfaced this app as the exact-match hero card.

appCount number

Number of apps returned.

pagesFetched number

Number of pagination calls made.

scrapedAt string

ISO 8601 scrape completion time.

analysis.totalApps number

Total apps included in the analysis.

analysis.averageScore number

Average rating across the returned apps.

analysis.freeApps number

How many of the returned apps are free.

analysis.paidApps number

How many of the returned apps are paid.

analysis.topDevelopers object[]

Developers with the most apps in the result set.

analysis.topDevelopers[].developer string

Developer name.

analysis.topDevelopers[].appCount number

How many of the returned apps this developer publishes.

Request

curl -X POST "https://api.fetchlayer.dev/playstore/search" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"query":"habit tracker","country":"gb","language":"en-GB","price":"free","maxResults":50}'

Response

{
  "query": "habit tracker",
  "country": "gb",
  "language": "en-GB",
  "price": "free",
  "apps": [
    {
      "appId": "org.isoron.uhabits",
      "title": "Loop Habit Tracker",
      "url": "https://play.google.com/store/apps/details?id=org.isoron.uhabits",
      "developer": "Álinson S Xavier",
      "summary": "Track your habits and build a better life",
      "score": 4.7767377,
      "scoreText": "4.8",
      "price": 0,
      "priceText": null,
      "currency": "USD",
      "free": true,
      "installs": "5,000,000+",
      "genre": "Productivity",
      "contentRating": "Everyone",
      "position": 1,
      "topResult": true
    }
  ],
  "appCount": 1,
  "pagesFetched": 1,
  "scrapedAt": "2026-09-03T20:38:27.104Z",
  "analysis": {
    "totalApps": 1,
    "averageScore": 4.78,
    "freeApps": 1,
    "paidApps": 0,
    "topDevelopers": [
      {
        "developer": "Álinson S Xavier",
        "appCount": 1
      }
    ]
  }
}