Google Play Books Store API

Our Google Play Books Store API allows you to scrape SERP results from Google Play Books & Audiobooks Store. The API is accessed through the following endpoint: /search?engine=google_play_books. A user may query the following: https://serpapi.com/search?engine=google_play_books 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
- Category Search: by using books_category parameter
- Plain Search: without using q or books_category parameters

API Parameters

Search Query

q

Optional

Parameter defines the query you want to search in Google Play Books 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

books_category

Optional

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

Advanced Google Play Parameters

price

Optional

Parameter is used for sorting items by price. It should be used only in combination with the q parameter. It can be set to:
1 - Free
2 - Paid

age

Optional

Parameter defines age subcategory. age works, and should only be used with
books_category=coll_1689 (Children's books)

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 Books 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_books to use the Google Play Books API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Google Play Books 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.

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 Books 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.

Four types of result structures you can encounter are:
- Rows Results type Organic Results
- List Results type Organic Results
- Top Charts Results
- Chart Options Results

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.
This API does not have html response when using pagination, retrieving top charts, or retrieveing some books_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 and Chart Options

{
  ...
  "chart_options": [
    {
      "text": "String - Chart Option text (Ex: 'Deals')",
      "value": "String - Chart Option value (Ex: 'top_deals')"
    }
  ],
  "organic_results": [
    {
      "title": "String - Organic Result Row title (Ex: 'New York Times® bestsellers')",
      "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: 'The Midnight Library')",
          "link": "String - Organic Result link (Ex: 'https://play.google.com/store/books/details/Matt_Haig_The_Midnight_Library?id=2Z9bEAAAQBAJ')",
          "product_id": "String - Organic Result product id (Ex: '2Z9bEAAAQBAJ')",
          "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 author (Ex: 'Matt Haig')",
          "category": "String - Organic Result category (Ex: 'Fiction')",
          "extension": {
            "name": "String - Organic Result extension name (Ex: 'Hardcover')",
          }
          "old_price": "String - Organic Result old price (Ex: '$14.99')",
          "extracted_old_price": "Float - Organic Result extracted old price (Ex: 14.99)",
          "price": "String - Organic Result price (Ex: '$14.99')",
          "extracted_price": "Float - Organic Result extracted price (Ex: 14.99)",
          "thumbnail": "String - Organic Result thumbnail",
          "description": "String - Organic Result description",
        },
        ...
      ]
    },
    ...
  ],
  "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: 'New York Times® bestsellers')",
      "items": [
        {
          "title": "String - Organic Result title (Ex: 'The Midnight Library')",
          "link": "String - Organic Result link (Ex: 'https://play.google.com/store/books/details/Matt_Haig_The_Midnight_Library?id=2Z9bEAAAQBAJ')",
          "product_id": "String - Organic Result product id (Ex: '2Z9bEAAAQBAJ')",
          "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 author (Ex: 'Matt Haig')",
          "category": "String - Organic Result category (Ex: 'Fiction')",
          "extension": {
            "name": "String - Organic Result extension name (Ex: 'Hardcover')",
          }
          "old_price": "String - Organic Result old price (Ex: '$14.99')",
          "extracted_old_price": "Float - Organic Result extracted old price (Ex: 14.99)",
          "price": "String - Organic Result price (Ex: '$14.99')",
          "extracted_price": "Float - Organic Result extracted price (Ex: 14.99)",
          "thumbnail": "String - Organic Result thumbnail",
          "description": "String - Organic Result description",
        },
        ...
      ]
    },
    ...
  ],
  "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: 'The Midnight Library')",
      "link": "String - Organic Result link (Ex: 'https://play.google.com/store/books/details/Matt_Haig_The_Midnight_Library?id=2Z9bEAAAQBAJ')",
      "product_id": "String - Organic Result product id (Ex: '2Z9bEAAAQBAJ')",
      "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 author (Ex: 'Matt Haig')",
      "category": "String - Organic Result category (Ex: 'Fiction')",
      "extension": {
        "name": "String - Organic Result extension name (Ex: 'Hardcover')",
      }
      "old_price": "String - Organic Result old price (Ex: '$14.99')",
      "extracted_old_price": "Float - Organic Result extracted old price (Ex: 14.99)",
      "price": "String - Organic Result price (Ex: '$14.99')",
      "extracted_price": "Float - Organic Result extracted price (Ex: 14.99)",
      "thumbnail": "String - Organic Result thumbnail",
      "description": "String - Organic Result description",
    },
    ...
  ],
  ...
}

API Examples