Required Google APIs
Enable these APIs in the Google Cloud project that will own the service account:| API | Required for |
|---|---|
| Google Play Android Developer API | Reviews, review replies, releases, listings, subscriptions, one-time products |
| Google Play Developer Reporting API | Android vitals, crash rate, ANR rate, app quality metrics |
| Cloud Storage API | Play Console bulk CSV reports in the gs://pubsite_prod_... bucket |
Android Publisher API
Service account setup for Google Play Developer API.
Developer Reporting API
Android vitals and quality reporting setup.
Create the Service Account JSON
- Open Google Cloud Console > IAM & Admin > Service Accounts.
- Choose the Google Cloud project connected to Play Console, or create a new project.
- Create a service account.
- Open the service account.
- Go to Keys.
- Create a new key.
- Select JSON.
- Download the JSON file.
Invite the Service Account in Play Console
Open Play Console > Users and permissions, then invite the service account email from the JSON file. The email looks like:| Feature | Play Console permission guidance |
|---|---|
| App list | App information read access |
| Bulk reports | Global View app information and download bulk reports |
| Store performance, installs, ratings, crashes reports | Same global bulk report permission |
| Financial reports | Global View financial data |
| Review listing | Review read access |
| Review replies | Review reply/manage access |
| Android vitals | App quality / Android vitals access |
| Release tracks | Release read or release management access |
| Release updates | Release management access |
| Store listing metadata | Store listing management access |
| Subscriptions and one-time products | Monetization product access |
Connect Credentials
curl
| Field | Required | Description |
|---|---|---|
serviceAccountJson | Yes | Full JSON key downloaded from Google Cloud |
defaultPackageName | No | Default app package for dashboards and tools |
reportsBucket | No | Required for report imports and analytics dashboards |
Per-Request Credentials
Saved credentials are recommended. For testing, you can also pass credentials per request:| Header | Description |
|---|---|
X-GP-Service-Account-Json | Full service account JSON |
X-GP-Client-Email | Service account client_email |
X-GP-Private-Key | Service account private key PEM |
X-GP-Private-Key-B64 | Base64 private key alternative |
X-GP-Project-Id | Optional project ID |
X-GP-Client-Id | Optional client ID |
Check Status
curl
Delete Credentials
curl
Troubleshooting
| Error | Meaning | Fix |
|---|---|---|
GOOGLE_PLAY_CREDENTIALS_REQUIRED | Missing service account JSON or private key fields | Send serviceAccountJson, or clientEmail + private key |
| Google OAuth error | The JSON key is malformed, revoked, or from the wrong project | Create a new JSON key and retry |
| App list is empty | Service account is authenticated but has no Play Console app access | Invite the service account in Play Console and grant app permissions |
| Report listing fails | Basic Play API access works, but GCS bulk report access is missing | See Report Exports |

