Google Play Store API

Our Google Play Apps Store API allows you to scrape SERP results from Google Play Apps Store. The API is accessed through the following endpoint: /search?engine=google_play. A user may query the following: https://serpapi.com/search?engine=google_play utilizing a GET request. Head to the playground for a live and interactive demo.

Three types of searches you can do are:
- Query Search: by using q parameter (Same Results with Google Play Games Store)
- Category Search: by using apps_category parameter
- Plain Search: without using q or apps_category parameters

API Parameters

Search Query

q

Optional

Parameter defines the query you want to search in Google Play Apps Store.

Localization

gl

Optional

Parameter defines the country to use for the Google Play search. It's a two-letter country code. (e.g., us (default) for the United States, uk for United Kingdom, or fr for France). You can find the full list of Google Play country availability here: Google Play Countries. Afterwards, head to the Google countries page page for a two-letter country code.

hl

Optional

Parameter defines the language to use for the Google Play search. It's a two-letter language code. (e.g., en (default) for English, es for Spanish, or fr for French). Head to the Google languages page for a full list of supported Google languages.

Google Play Categories

apps_category

Optional

Parameter defines the apps store category. Head to the Google Play store Apps Categories for a full list of supported Google Play Apps store categories.

Advanced Google Play Parameters

store_device

Optional

Parameter defines the device for sorting results. This parameter cannot be used with apps_category or q parameters. Available options:
phone - Phone device (default)
tablet - Tablet device
tv - TV device
chromebook - Chromebook device
watch - Watch device
car - Car device

age

Optional

Parameter defines age subcategory. age works, and should only be used with
apps_category=FAMILY(Kids Apps)

It can be set to:
AGE_RANGE1 - Ages up to 5
AGE_RANGE2 - Ages 6-8
AGE_RANGE3 - Ages 9-12

The default value for age is:
- All ages up to 12

Pagination

next_page_token

Optional

Parameter defines the next page token. It is used for retrieving the next page results. It shouldn't be used with the section_page_tokensee_more_token, and chart parameters.

section_page_token

Optional

Parameter defines the section page token used for retrieving the pagination results from individual sections. This parameter is a safer version of see_more_token, and is found in every row you can paginate into. It shouldn't be used with the next_page_tokensee_more_token, and chart parameters

chart

Optional

Parameter is used for showing top charts. It can return up to 50 results. Each store contains different charts which require different values for retrieving results. To get the value of a specific chart you can use our Google Play Apps Store API JSON output: chart_options[index].value (e.g. chart=topselling_free). It shouldn't be used with the section_page_tokensee_more_token, and next_page_token parameters

see_more_token

Optional

Parameter defines the see more token used for retrieving the pagination results from individual sections It is usually found in next page results. It shouldn't be used with the section_page_tokennext_page_token, and chart, parameters

Serpapi Parameters

engine

Required

Set parameter to google_play to use the Google Play API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Google Play results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.

async

Optional

Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.

zero_trace

Optional

Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.

api_key

Required

Parameter defines the SerpApi private key to use.

output

Optional

Parameter defines the final output you want. It can be set to json (default) to get a structured JSON of the results, or html to get the raw html retrieved.

API Results

JSON Results

JSON output includes structured data for Apps Store Organic Results, Chart Options, and Top Charts results.

A search status is accessible through search_metadata.status. It flows this way: Processing -> Success || Error. If a search has failed, error will contain an error message. search_metadata.id is the search ID inside SerpApi.

Seven types of result structures you can encounter are:
- Rows Results type Organic Results
- List Results type Organic Results
- Top Charts Results
- Chart Options Results
- Items Highlight Results
- App Highlight Results
- Related Searches

HTML Results

HTML output is useful to debug JSON results or support features not supported yet by SerpApi. HTML output gives you the raw HTML results from Google Play Store.
This API does not have html response when using pagination, retrieving top charts, or retrieveing some apps_category results. It is just a text. search_metadata.prettify_html_file contains prettified version of the result. It is displayed in the playground.

API Examples

JSON structure overview for Rows Type Organic Results, Chart Options, Items Highlight Results, App Highlight, and Related Searches

{
  ...
  "app_highlight": {
    "title": "String - App Highlight Title (Ex: 'Stripe Dashboard')",
    "link": "String - Link of the item in the app highlight block (Ex: 'https://play.google.com/store/apps/details?id=com.stripe.android.dashboard')",
    "product_id": "String - Product Id of the item in the app highlight block (Ex: 'com.stripe.android.dashboard')",
    "serpapi_link": "String - Thumbnail link of the item in app highlight block",
    "rating": "Float - App Highlight Rating (Ex: 4.5)",
    "reviews": "Integer - Number of Reviews (Ex: 13000)",
    "content_rating": {
      "text": "String - ESRB Rating of the App Highlight (Ex: 'Everyone')",
      "thumbnail": "String - Thumbnail link of the ESRB Rating"
    },
    "downloads": "String - Number of downloads (Ex: '500K+')",
    "author": "String - App Highlight developer (Ex: 'Stripe, Inc.')",
    "description": "String - App Highlight description",
    "thumbnail": "String - App Highlight thumbnail link",
    "images": [
      "String - Image of App Highlight",
      ...
    ],
    "offers": [
      {
        "text": "String - Offer text of App Higlight (Ex: 'Download')",
        "link": "String - Offer link of the App Highlight"
      }
    ]
  },
  "chart_options": [
    {
      "text": "String - Chart Option text (Ex: 'Top paid')",
      "value": "String - Chart Option value (Ex: 'topselling_paid')"
    }
  ],
  "items_highlight": [
    [
      {
        "title": "String - Title of the item in the highlighted block (Ex: 'A space for everyone')",
        "subtitle": "String - Subtitle of the item in the highlight block (Ex: 'Together with Pride')",
        "link": "String - Link of the item in the highlight block (Ex: 'https://play.google.com/store/apps/details?id=com.reddit.frontpage')",
        "product_id": "String - Product Id of the item in the highlight block (Ex: 'com.reddit.frontpage')",
        "serpapi_link": "String - SerpApi Google Play Product API link with the product id",
        "thumbnail": "String - Thumbnail link of the item in highlight block"
      },
      ...
    ],
    ...
  ],
  "organic_results": [
    {
      "title": "String - Organic Result Row title (Ex: 'Popular apps')",
      "subtitle": "String - Organic Result Row subtitle (Ex: 'Video and messaging apps')"
      "serpapi_section_pagination": {
        "next": "String - SerpApi link for paginating into individual row sections",
        "section_page_token": "String - Section Page Token for paginating into individual row sections"
      },
      "see_more_link": "String - Google Play link for paginating into individual row sections. This pagination is not always available.",
      "see_more_token": "String - See More Token for paginating into individual row sections. This pagination is not always available.",
      "serpapi_link": "String - SerpApi link for paginating into individual row sections. This pagination is not always available.",
      "items": [
        {
          "title": "String - Organic Result title (Ex: 'Instagram')",
          "link": "String - Organic Result link (Ex: 'https://play.google.com/store/apps/details?id=com.instagram.android')",
          "product_id": "String - Organic Result product id (Ex: 'com.instagram.android')",
          "serpapi_link": "String - SerpApi Google Play Product API link with the product id.",
          "rating": "Float - Organic Result rating (Ex: 4.5)",
          "author": "String - Organic Result developer (Ex: 'Facebook')",
          "category": "String - Organic Result category (Ex: 'Communication')",
          "downlaods": "String - Number of downloads (Ex: '1,000,000,000+')"
          "old_price": "String - Organic Result old price (Ex: '$8.99')",
          "extracted_old_price": "Float - Organic Result extracted old price (Ex: 8.99)",
          "price": "String - Organic Result price (Ex: '$6.99')",
          "extracted_price": "Float - Organic Result extracted price (Ex: 6.99)",
          "thumbnail": "String - Organic Result thumbnail",
          "description": "String - Organic Result description",
          "feature_image": "String - Featured Image Link of Organic Result",
          "images": [
            "String - Image link of Organic Result"
          ]
        },
        ...
      ]
    },
    ...
  ],
  "related_searches": [
    {
      "query": "String - Query text (Ex: 'paynow for stripe')",
      "link": "String - Qeury link (Ex: 'https://play.google.com/store/search?q=paynow+for+stripe&c=apps')",
      "serpapi_link": "String - SerpApi Google Play API link with the query"
    },
    ...
  ],
  "serpapi_pagination": {
    "next": "String - SerpApi link for paginating to next page of rows results",
    "next_page_token": "String - Next Page Token for paginating to next page of rows results"
  },
  ...
}

JSON structure overview for List Type Organic Results

{
  ...
  "organic_results": [
    {
      "title": "String - Organic Result Row title (Ex: 'Popular apps')",
      "items": [
        {
          "title": "String - Organic Result title (Ex: 'Instagram')",
          "link": "String - Organic Result link (Ex: 'https://play.google.com/store/apps/details?id=com.instagram.android')",
          "product_id": "String - Organic Result product id (Ex: 'com.instagram.android')",
          "serpapi_link": "String - SerpApi Google Play Product API link with the product id.",
          "rating": "Float - Organic Result rating (Ex: 4.5)",
          "author": "String - Organic Result developer (Ex: 'Facebook')",
          "category": "String - Organic Result category (Ex: 'Communication')",
          "downlaods": "String - Number of downloads (Ex: '1,000,000,000+')"
          "old_price": "String - Organic Result old price (Ex: '$8.99')",
          "extracted_old_price": "Float - Organic Result extracted old price (Ex: 8.99)",
          "price": "String - Organic Result price (Ex: '$6.99')",
          "extracted_price": "Float - Organic Result extracted price (Ex: 6.99)",
          "thumbnail": "String - Organic Result thumbnail",
          "description": "String - Organic Result description",
          "feature_image": "String - Featured Image Link of Organic Result",
          "images": [
            "String - Image link of Organic Result"
          ]
        },
        ...
      ]
    },
    ...
  ],
  "serpapi_pagination": {
    "next": "String - SerpApi link for paginating to next page of list results",
    "next_page_token": "String - Next Page Token for paginating to next page of list results"
  },
  ...
}

JSON structure overview for Top Charts Results

{
  ...
  "top_charts": [
    {
      "title": "String - Organic Result title (Ex: 'Instagram')",
      "link": "String - Organic Result link (Ex: 'https://play.google.com/store/apps/details?id=com.instagram.android')",
      "product_id": "String - Organic Result product id (Ex: 'com.instagram.android')",
      "serpapi_link": "String - SerpApi Google Play Product API link with the product id.",
      "rating": "Float - Organic Result rating (Ex: 4.5)",
      "author": "String - Organic Result developer (Ex: 'Facebook')",
      "category": "String - Organic Result category (Ex: 'Communication')",
      "downlaods": "String - Number of downloads (Ex: '1,000,000,000+')"
      "old_price": "String - Organic Result old price (Ex: '$8.99')",
      "extracted_old_price": "Float - Organic Result extracted old price (Ex: 8.99)",
      "price": "String - Organic Result price (Ex: '$6.99')",
      "extracted_price": "Float - Organic Result extracted price (Ex: 6.99)",
      "thumbnail": "String - Organic Result thumbnail",
      "description": "String - Organic Result description"
    },
    ...
  ],
  ...
}

Items highlights overview

Items highlights overview

JSON Example

{
  ...
  "items_highlight": [
    [
      {
        "title": "Apps for community",
        "subtitle": "Together with Pride",
        "link": "https://play.google.com/store/apps/editorial?id=mc_apps_edit_all__pride_2022_collection_fcp_",
        "product_id": "mc_apps_edit_all__pride_2022_collection_fcp_",
        "thumbnail": "https://play-lh.googleusercontent.com/fFpn0SSxFhRf5koV_F_gAI6jn3vi-UsX9G8DCze4Gnz4fT2i4NBxndvMKq9z1Sg2PwsOMZdgJiU=w490-h245-rw"
      },
      {
        "title": "A space for everyone",
        "subtitle": "Together with Pride",
        "link": "https://play.google.com/store/apps/details?id=com.reddit.frontpage",
        "product_id": "com.reddit.frontpage",
        "serpapi_link": "https://serpapi.com/search.json?engine=google_play_product&gl=us&hl=en&product_id=com.reddit.frontpage&store=apps",
        "thumbnail": "https://play-lh.googleusercontent.com/VEYd1-1s41rCSzWq3o1xC6MTuEWXDZ-J3daB0f4VhkRNSLllwXqyTA44LPrzqLixfEGLjwZlVoU=w490-h245-rw"
      },
      {
        "title": "Taimi’s business developer",
        "subtitle": "Meet Helen Virt",
        "link": "https://play.google.com/store/apps/editorial?id=mc_pride22_taimi_fcp",
        "product_id": "mc_pride22_taimi_fcp",
        "thumbnail": "https://play-lh.googleusercontent.com/ZP1RVUIEsk4SrHiLZcdDiEjOeeyoQlyeVbsMi0uYExmlBNpSThHs4CrOLAT9imsD9td-c_iQc4k=w490-h245-rw"
      },
      ...
    ],
    [
      {
        "title": "Subscribe to your favorite creators",
        "subtitle": "Check it out",
        "link": "https://play.google.com/store/apps/details?id=com.zhiliaoapp.musically",
        "product_id": "com.zhiliaoapp.musically",
        "serpapi_link": "https://serpapi.com/search.json?engine=google_play_product&gl=us&hl=en&product_id=com.zhiliaoapp.musically&store=apps",
        "thumbnail": "https://play-lh.googleusercontent.com/pMydVXCRFVaGpcm_vIShD-RW4Zixv4XCvhEF_Wwxv1KqNxwnA-MCFbdX0ka-OufE0_FjEQXHItA=w490-h245-rw"
      }
    ]
  ],
  ...
}

App highlight overview

Some searches can contain the app_highlight. This block will usualy show up when searching for a specific app

App highlight overview

JSON Example

{
  ...
  "app_highlight": {
    "title": "Stripe Dashboard",
    "link": "https://play.google.com/store/apps/details?id=com.stripe.android.dashboard",
    "product_id": "com.stripe.android.dashboard",
    "serpapi_link": "https://serpapi.com/search.json?engine=google_play_product&gl=us&hl=en&product_id=com.stripe.android.dashboard&store=apps",
    "rating": 3.9,
    "reviews": 13000,
    "content_rating": {
      "text": "Everyone",
      "thumbnail": "https://play-lh.googleusercontent.com/IciOnDFecb5Xt50Q2jlcNC0LPI7LEGxNojroo-s3AozcyS-vDCwtq4fn7u3wZmRna8OewG9PBrWC-i7i=w48-h16-rw"
    },
    "downloads": "500K+",
    "author": "Stripe, Inc.",
    "description": "Track your Stripe payments on the go",
    "thumbnail": "https://play-lh.googleusercontent.com/2PS6w7uBztfuMys5fgodNkTwTOE6bLVB2cJYbu5GHlARAK36FzO5bUfMDP9cEJk__cE=s64-rw",
    "images": [
      "https://play-lh.googleusercontent.com/yuZ1kGOikwzgI2zDB7eXItqJrpnTarkeYArZG87kEZZ26bVJtUnup2LpZecQqaoSM78x=w526-h296-rw",
      "https://play-lh.googleusercontent.com/W2bCmYwx1QYF_u7rNhRzZvvyRhURoxCvCIL6pEVhe3peluN37F8HkA7GY9y77jyQ2Nw=w526-h296-rw",
      "https://play-lh.googleusercontent.com/MaAmi047sX53hf4arKfQTYHYNunKeLfFG3lGn2Af8gzxToJSoYmpKQEVRpJB7NA5hCRR=w526-h296-rw",
      "https://play-lh.googleusercontent.com/_0iiRqlHn4lsvAEd1HnNVCiK1_useSP28W6ANpQTs6Vqn4zM76wkPiZoLDETczw5t1Y=w526-h296-rw"
    ],
    "offers": [
      {
        "text": "Install",
        "link": "https://play.google.com/store/apps/details?id=com.stripe.android.dashboard&rdid=com.stripe.android.dashboard&feature=md&offerId"
      }
    ]
  },
  ...
}