Skip to main content

Overview

The ScrapeBadger Google Play API reads play.google.com server-side and returns clean JSON: full app detail (ratings histogram, install bands, pricing and in-app-purchase range, developer legal entity, screenshots, version and what’s-new), keyword search, paginated reviews with developer replies, the Android permission tree, the similar-apps rail, a developer’s catalogue and category browse.
All endpoints are GET, live under https://scrapebadger.com/v1/google-play/*, and authenticate with the X-API-Key header. Credits are charged per request (see the table below) and reported on the X-Credits-Used response header.

Features

  • App detail in one callscore, ratings, reviews, the 1–5 star histogram, installs with min_installs/max_installs bands, price plus offers_iap and iap_range, contains_ads, genre, content rating, media, version, android_version, recent_changes (what’s new), the data_safety declaration, the permissions tree and the similar-apps rail.
  • Reviews — Play’s own review RPC, up to 150 per page, sorted by newest, rating or helpfulness, with developer replies and both timestamp forms.
  • Permissions — every Android permission the app declares, grouped as Play groups them, for 3 credits.
  • Discovery/search, /apps/{id}/similar, /developers/{id} and /categories/{id} all return the same rich AppCard shape, so a list result rarely needs a follow-up detail fetch just to rank or filter.
  • Dual timestamps — every date ships twice: *_utc (Unix seconds, for maths) and *_at (ISO 8601 UTC, for humans).

Markets and languages

Play is one global host, so storefront and language are independent:
  • country sets the gl storefront — pricing, availability and ranking.
  • lang sets the hl content language — description, what’s-new and reviews.
GET /v1/google-play/markets (free) returns the 47 supported storefront countries and 31 content languages. GET /v1/google-play/categories (free) returns the 60 category ids that /categories/{id} accepts.

Credits

Quickstart

Top charts

/collections/{collection} returns 422. Google no longer server-renders the top-chart ranking — the category page carries the chart tabs but their item list is filled in client-side, so no server-side ranking exists to read. The endpoint answers 422 (which is not billed) with a message saying so, rather than quietly returning the page’s editorial rails as if they were a chart.Use /categories/{category_id} for a category’s apps in Play’s own order.

Result depth

  • /search returns the ~30 results Play renders server-side. There is no page parameter: Play’s search has no page number, and its infinite-scroll continuation is a cluster RPC Google no longer accepts from outside its own client. Widen a result set with /apps/{id}/similar and /developers/{id}.
  • /developers/{developer} returns the first rail Play renders — around 10 apps for a publisher with dozens.
  • /categories/{category_id} returns every app across all of the category page’s editorial rails, deduped — around 100 apps for a broad category.
  • /apps/{id}/similar returns the detail page’s rail, capped by Play at roughly a dozen; similar_apps_url on the detail response is the “see more” cluster page.

Errors

App detail already carries the permission tree, the Data Safety card and the similar-apps rail — the sibling routes are only needed when you want more reviews, a standalone permissions call, or the full similar-apps cluster.