Google Play Books

Search and browse Google Play ebooks and audiobooks.

GET/api/v1/google/play/books

Costs 1 credit per request; failed requests are refunded. Authentication, the search_metadata envelope and error codes are the same as for every endpoint (see the API reference). Try it in the playground.

Parameters

Request

ParameterTypeDescription
qstringOptional query with 1 to 2,048 UTF-8 bytes of printable text. Excludes category. Omit it to browse the storefront. On the games endpoint, q uses shared Android app search; omit q or choose games_category to browse games.Up to 2,048 characters.

Filters

ParameterTypeDescription
chartstringChart identifier such as topselling_free, topselling_paid, or topgrossing. Excludes q and all pagination selectors. Apps and games charts require phone or an omitted store_device.Up to 128 characters.
books_categorystringNative book category identifier, such as coll_1689 for children's books. Excludes q.Up to 128 characters.
age"AGE_RANGE1" | "AGE_RANGE2" | "AGE_RANGE3"Children's age range. Requires books_category=coll_1689.
priceinteger1 for free books or 2 for paid books. Requires q.Range: 1 to 2.

Localization

ParameterTypeDescription
hlstringStorefront language, such as en, de, or zh-TW. Maximum 32 characters.Default: en.Up to 32 characters.
glstringTwo-letter country code.Default: us.

Pagination

ParameterTypeDescription
next_page_tokenstringUse the returned next_page_token with the same parameters. Excludes chart, section_page_token, and see_more_token.Up to 65,536 characters.
section_page_tokenstringContinue one result group using its returned token and the same parameters. Excludes the other pagination selectors and chart.Up to 65,536 characters.
see_more_tokenstringOpen a result collection using its returned token and the same parameters. Excludes the other pagination selectors and chart.Up to 65,536 characters.

Response

A JSON object with search_metadata (request id, credits used and remaining) and the result data: organic_results grouped by format, charts, and serpfast_pagination. Groups and fields depend on the content of each page, so treat every field as optional.

Examples

cURL
curl "https://serpfast.com/api/v1/google/play/books?q=coffee&hl=en&gl=us" \
  -H "Authorization: Bearer $SERPFAST_KEY"
Node.js 18+
const params = new URLSearchParams({
  "q": "coffee",
  "hl": "en",
  "gl": "us"
});
const res = await fetch(`https://serpfast.com/api/v1/google/play/books?${params}`, {
  headers: { Authorization: `Bearer ${process.env.SERPFAST_KEY}` },
});
const data = await res.json();
console.log(data);
Python
import os, requests

params = {
  "q": "coffee",
  "hl": "en",
  "gl": "us"
}
res = requests.get(
    "https://serpfast.com/api/v1/google/play/books",
    params=params,
    headers={"Authorization": f"Bearer {os.environ['SERPFAST_KEY']}"},
    timeout=120,
)
print(res.json())