For the complete documentation index, see llms.txt. This page is also available as Markdown.

Google Play Store

The Pullbay Google Play API provides programmatic access to Android app metadata, search, similar-app recommendations, reviews, permissions, and Data Safety declarations from the Google Play Store. Integrate Google Play data into your applications, dashboards, and analytics pipelines without scraping or manual lookups.

Base URL: https://api.pullbay.com

Overview

The Google Play service lets you:

  • Look up a single app by its package name (e.g. com.instagram.android)

  • Search the Google Play Store by keyword

  • Find apps similar to a given app

  • Fetch reviews for an app, sorted by recency, rating, or helpfulness

  • List the Android permissions an app requests

  • Retrieve the developer-declared Data Safety section (data collected, data shared, security practices)

All endpoints are read-only GET requests against public Google Play data — you don't need to own or register an app of your own.

Common Use Cases

Competitor Analysis — Pull a competitor's app metadata and reviews to track positioning, install-count tier, and rating trends over time.

Sentiment Monitoring — Collect reviews on a schedule and feed the text field into your own sentiment-analysis or alerting pipeline.

Market Research — Use Search Apps and Get Similar Apps together to map out a category and see how apps cluster around features and audiences.

Privacy and Compliance Review — Use Get Permissions and Get Data Safety to audit what an app collects, shares, and declares before integrating with it or evaluating it as a competitor.

Product Development — Mine review text for recurring feature requests and complaints to help prioritize a roadmap.

Endpoints

Endpoint
Description
Pagination

GET /google-play/apps

Get a single app by App ID

—

GET /google-play/search

Search apps by term

—

GET /google-play/similar

Get apps similar to a given app

—

GET /google-play/reviews

Get reviews for an app

cursor / maxItems

GET /google-play/permissions

Get permissions requested by an app

—

GET /google-play/data-safety

Get the Data Safety section for an app

—


Get App

Returns full details for a single app on the Google Play Store, identified by its package name.

Request

Parameters

Parameter
Type
Required
Default
Description

appId

string

Yes

—

Package name, max 255 characters, letters/digits/./_ only (e.g. com.instagram.android)

country

string

No

—

Exactly 2 characters. Not restricted to a fixed list — any 2-letter code is accepted.

lang

string

No

—

Language code for localized text, pattern ^[a-z]{2,3}(-[a-z]{2,3})?$ (e.g. en, en-us)

Example

Response

Response Schema

Field
Type
Description

data

array

Array containing a single Application object

pricing.creditsCharged

number

Credits charged for this request

Credit cost: charged dynamically per request; the exact amount is always returned in pricing.creditsCharged. There is no published flat rate — read the figure from the response.


Search Apps

Search the Google Play Store for apps matching a term. Returns lightweight summaries.

Request

Parameters

Parameter
Type
Required
Default
Description

search

string

Yes

—

Search term, 1–255 characters

price

string

No

—

Filter by pricing: all, free, or paid

country

string

No

—

Exactly 2 characters. Not restricted to a fixed list.

lang

string

No

—

Language code for localized text, pattern ^[a-z]{2,3}(-[a-z]{2,3})?$

Example

Response

Response Schema

Field
Type
Description

data

array

pricing.creditsCharged

number

Credits charged for this request

Credit cost: dynamic, returned in pricing.creditsCharged. No flat per-result rate is published — read the figure from each response.


Get Similar Apps

Returns apps Google Play surfaces as similar to the supplied app.

Request

Parameters

Parameter
Type
Required
Default
Description

appId

string

Yes

—

Package name, max 255 characters, letters/digits/./_ only

Example

Response

Response Schema

Field
Type
Description

data

array

pricing.creditsCharged

number

Credits charged for this request

Credit cost: dynamic, returned in pricing.creditsCharged.


Get Reviews

Returns reviews for an app. Use cursor to paginate or maxItems for a one-shot bulk pull (mutually exclusive).

Request

Parameters

Parameter
Type
Required
Default
Description

appId

string

Yes

—

Package name, max 255 characters, letters/digits/./_ only

country

string

No

—

Exactly 2 characters. Not restricted to a fixed list.

lang

string

No

—

Language code for localized text, pattern ^[a-z]{2,3}(-[a-z]{2,3})?$

sort

string

No

—

NEWEST, RATING, or HELPFULNESS

maxItems

integer

No

—

One-shot bulk pull, 1–500 results. Mutually exclusive with cursor

cursor

string

No

—

Opaque pagination cursor from a previous response's pagination.cursor. Mutually exclusive with maxItems

Example

Response

Response Schema

Field
Type
Description

data

array

pagination.cursor

string, nullable

Cursor to pass as the cursor parameter on the next request, if more reviews are available

pagination.page / pagination.hasNextPage / pagination.offset

nullable

Unused by this endpoint — always null here; use pagination.cursor instead

pricing.creditsCharged

number

Credits charged for this request

Credit cost: dynamic, returned in pricing.creditsCharged. No flat per-page or per-review rate is published — read the figure from each response.


Get Permissions

Returns the list of Android permissions the app requests, grouped by category.

Request

Parameters

Parameter
Type
Required
Default
Description

appId

string

Yes

—

Package name, max 255 characters, letters/digits/./_ only

Example

Response

Response Schema

Field
Type
Description

data

array

pricing.creditsCharged

number

Credits charged for this request

Credit cost: dynamic, returned in pricing.creditsCharged.


Get Data Safety

Returns the developer-declared Data Safety information: data shared, data collected, security practices, and privacy policy URL.

Request

Parameters

Parameter
Type
Required
Default
Description

appId

string

Yes

—

Package name, max 255 characters, letters/digits/./_ only

Example

Response

Response Schema

Field
Type
Description

data

array

Array containing a single Data Safety object

pricing.creditsCharged

number

Credits charged for this request

Credit cost: dynamic, returned in pricing.creditsCharged.


Errors

All non-2xx responses share the same envelope:

Status
Meaning

400

Bad request — missing or invalid parameters

402

Insufficient credits

404

App, review set, permission set, or Data Safety record not found

Object Schema

Application object

Field
Type
Description

title

string

App name

appId

string

Package name

url

string

Relative API URL for the app detail endpoint

icon

string

Icon image URL

headerImage

string

Feature graphic image URL

summary

string

Short tagline shown on the store listing

description / descriptionHTML

string

Full description, plain text and HTML

score / scoreText

number / string

Average rating, numeric and display string

ratings / reviews

integer

Total rating count and total review count

histogram

object

Rating counts keyed by star value (1–5)

free / price / priceText / currency

boolean / number / string / string

Pricing info

offersIAP

boolean

Whether the app offers in-app purchases

adSupported

boolean

Whether the app shows ads

installs / minInstalls / maxInstalls

string / integer / integer

Install count range, display string and numeric bounds

androidVersion / androidVersionText

string

Minimum Android version, raw and display form

updated

integer

Last update timestamp, Unix milliseconds

genre / genreId

string

Category name and ID

developer / developerId / developerEmail / developerWebsite / developerInternalID

string

Developer identity and contact info

privacyPolicy

string

Developer's privacy policy URL

playstoreUrl

string

Public Google Play listing URL

screenshots

array

Screenshot image URLs

Application summary object

Lightweight app reference returned by the search and similar-apps endpoints.

Field
Type
Description

title

string

App name

appId

string

Package name

url

string

Relative API URL for the app detail endpoint

icon

string

Icon image URL

summary

string

Short tagline shown on the store listing

score / scoreText

number / string

Average rating, numeric and display string

free / price / currency

boolean / number / string

Pricing info

playstoreUrl

string

Public Google Play listing URL

developer / developerId

string

Developer name and ID

Review object

Field
Type
Description

id

string

Review ID

userName

string

Reviewer's display name

userImage

string

Reviewer's avatar URL

date

string (date-time)

When the review was posted

score / scoreText

integer / string

Rating, 1–5, numeric and display string

url

string

Permalink to the review

title

string, nullable

Review title (often null on Google Play)

text

string

Review body

replyDate / replyText

string / string, nullable

Developer's reply timestamp and text, if any

version

string

App version the review was left for

thumbsUp

integer

Helpful-vote count

country

string

Storefront country the review was posted on

criterias

Rating breakdown by sub-criteria, if the developer collects them

Review criteria object

Field
Type
Description

criteria

string

Internal name of the rated criterion (e.g. vaf_mark_message_as_read)

rating

integer

Rating given for that specific criterion

Permission object

Field
Type
Description

permission

string

Human-readable permission description (e.g. find accounts on the device)

type

string

Permission category (e.g. Identity)

Data Safety object

Field
Type
Description

sharedData

Data types shared with third parties

collectedData

Data types collected by the app

securityPractices

Declared security practices

privacyPolicyUrl

string

Link to the developer's privacy policy

Data Safety item object

Field
Type
Description

data

string

Type of data (e.g. Name)

purpose

string

Stated purpose for collecting or sharing the data

type

string

Data category (e.g. Personal info)

optional

boolean

Whether providing this data is optional

Security practice object

Field
Type
Description

practice

string

Name of the security practice (e.g. Data is encrypted in transit)

description

string

Explanation of the practice

Finding App IDs

  • App ID: the Android package name, visible in a Google Play URL, e.g. https://play.google.com/store/apps/details?id=com.instagram.android → com.instagram.android.

  • Package names are dot-separated identifiers made up of letters, digits, periods, and underscores (pattern ^[A-Za-z0-9._]+$) — there is no separate numeric ID like on the App Store.

Country and Language Codes

  • country is constrained by the spec only to exactly 2 characters — it isn't validated against a fixed allow-list, so pass a standard ISO 3166-1 alpha-2 storefront code (us, gb, jp, de, ...).

  • lang matches the pattern ^[a-z]{2,3}(-[a-z]{2,3})?$ — a 2–3 letter language code, optionally with a region subtag (en, en-us, pt-br) — also not restricted to a fixed list.

  • Neither parameter has a documented default in the API spec. If you omit them, behavior is determined by the underlying Google Play lookup rather than a guaranteed Pullbay default — pass both explicitly if you need a predictable storefront/locale.

Python Example: Paginating Through Reviews

This example fetches reviews for an app a page at a time using cursor-based pagination, stopping when pagination.cursor comes back empty or a request cap is reached:

Each request is billed independently, with the charged amount reported in that response's pricing.creditsCharged — there's no separate "fetch everything in one call" endpoint, so a multi-page pull like this makes one request per cursor advance. Alternatively, pass maxItems (1–500) instead of paginating with cursor if a single bulk pull is enough for your use case.

FAQ

How do I find an app's package name?

Visit the app's page on the Google Play Store. Look at the URL — it contains ?id= followed by the package name. For example, https://play.google.com/store/apps/details?id=com.instagram.android → com.instagram.android.

What countries are supported?

Any 2-letter code is accepted by the API — it isn't restricted to a published list of supported countries.

How many reviews can I fetch in one call?

Up to 500 with maxItems, or page through with cursor (page size isn't fixed by the spec). cursor and maxItems are mutually exclusive — use one or the other per request.

Can I filter reviews by star rating?

The API only supports sorting (NEWEST, RATING, or HELPFULNESS), not server-side filtering by rating. Fetch the reviews you need and filter client-side on the score field.

What's the credit cost per request?

It's dynamic — every response includes pricing.creditsCharged with the exact amount for that call. There's no fixed published rate per endpoint or per result.

Can I check what data an app collects before integrating with it?

Yes — use Get Permissions for the Android permissions the app requests, and Get Data Safety for the developer's declared data collection, sharing, and security practices.

Next Steps

  • API Integration Guide — integrate the Pullbay API into your backend application.

  • n8n Integration Guide — set up automated workflows using n8n with no coding required.

  • Services Overview — explore all available Pullbay services.

Last updated