# Google Play Integration via LowCodeAPI
**Last Updated**: January 05, 2025
## Overview
Google Play Android Publisher API for managing Android applications on Google Play
**Categories:**
- {'id': 'app-stores', 'name': 'App Stores', 'description': 'Mobile app store and developer platform APIs for managing app submissions, updates, and analytics', 'priority': 11.5}
## Base Endpoint
https://api.lowcodeapi.com/googleplay
**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`
## Authentication
**Type:** OAUTH2.0
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest
## URL Format (Important)
LowCodeAPI supports two URL formats. **Always try the New Format first**, then fall back to Old Format if needed.
### New Format (Priority)
- Path parameters stay in the URL path
- Do NOT include path parameters as query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/{id}?api_token=XXX`
### Old Format (Fallback)
- Path parameters become query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/id?id={id}&api_token=XXX`
### Decision Flow for AI Agents
1. Always use **New Format** first - keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider
## API Categories
## Common Endpoints
### Write data safety labels
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/dataSafety
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/dataSafety?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/datasafety?packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| packageName | string | |
**Request Body:**
| Field | Type | Description |
|-------|------|-------------|
| safetyLabels | string | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/dataSafety?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/applications/dataSafety
### Create device tier config
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/deviceTierConfigs
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/deviceTierConfigs?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/devicetierconfigs?packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| packageName | string | |
**Request Body:**
| Field | Type | Description |
|-------|------|-------------|
| deviceTierConfig | object | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/deviceTierConfigs?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/applications.deviceTierConfigs/create
### Get device tier config
**Method:** GET
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/devicetierconfigs/devicetierconfigid?deviceTierConfigId={deviceTierConfigId}&packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| deviceTierConfigId | string | |
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X GET 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/applications.deviceTierConfigs/get
### List device tier configs
**Method:** GET
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/deviceTierConfigs
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/deviceTierConfigs?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/devicetierconfigs?packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X GET 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/deviceTierConfigs?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/applications.deviceTierConfigs/list
### Add targeting to app recovery
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/apprecoveries/apprecoveryid-addtargeting?appRecoveryId={appRecoveryId}&packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| appRecoveryId | string | |
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/apprecovery/addTargeting
### Cancel app recovery
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/apprecoveries/apprecoveryid-cancel?appRecoveryId={appRecoveryId}&packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| appRecoveryId | string | |
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/apprecovery/cancel
### Create app recovery
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/appRecoveries
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/apprecoveries?packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/apprecovery/create
### Deploy app recovery
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/apprecoveries/apprecoveryid-deploy?appRecoveryId={appRecoveryId}&packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| appRecoveryId | string | |
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/apprecovery/deploy
### List app recoveries
**Method:** GET
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/appRecoveries
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/apprecoveries?packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X GET 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/appRecoveries?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/apprecovery/list
### Commit app edit
**Method:** POST
**LowCodeAPI Path:** /androidpublisher/v3/applications/{packageName}/edits/{editId}:commit
**New Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/edits/{editId}:commit?api_token=YOUR_API_TOKEN
**Old Format URL:**
https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/packagename/edits/editid-commit?editId={editId}&packageName={packageName}&api_token=YOUR_API_TOKEN
**Path Parameters:**
| Parameter | Type | Description |
|-----------|------|-------------|
| editId | string | |
| packageName | string | |
**Example Request (New Format):**
```bash
curl -X POST 'https://api.lowcodeapi.com/googleplay/androidpublisher/v3/applications/{packageName}/edits/{editId}:commit?api_token=YOUR_API_TOKEN'
```
**Official Documentation:** https://developers.google.com/android-publisher/api-ref/rest/v3/edits/commit
## Usage Examples
### Example 1: Basic API Request
```bash
# List resources - no path parameters needed
curl -X GET "https://api.lowcodeapi.com/googleplay/v1/resources?api_token=YOUR_API_TOKEN"
```
### Example 2: Request with Path Parameters
```bash
# Get specific resource by ID
curl -X GET "https://api.lowcodeapi.com/googleplay/v1/resources/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
```
### Example 3: Create or Update Resource
```bash
# Create a new resource
curl -X POST "https://api.lowcodeapi.com/googleplay/v1/resources?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "New Resource", "description": "Description"}'
```
## Error Handling
LowCodeAPI returns standard HTTP status codes. Common errors:
| Status Code | Description |
|-------------|-------------|
| 200 | Success - Request completed successfully |
| 400 | Bad Request - Invalid parameters or request body |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Endpoint or resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Provider API error |
All error responses include error details:
```json
{
"data": {
"error": {
"message": "Error description",
"code": "ERROR_CODE"
}
}
}
```
## Complete Endpoint Reference
| Endpoint | Method | Category |
|----------|--------|----------|
| Write data safety labels | POST | Applications |
| Create device tier config | POST | Device Tier Configs |
| Get device tier config | GET | Device Tier Configs |
| List device tier configs | GET | Device Tier Configs |
| Add targeting to app recovery | POST | App Recovery |
| Cancel app recovery | POST | App Recovery |
| Create app recovery | POST | App Recovery |
| Deploy app recovery | POST | App Recovery |
| List app recoveries | GET | App Recovery |
| Commit app edit | POST | Edits |
| Delete app edit | DELETE | Edits |
| Get app edit | GET | Edits |
| Create app edit | POST | Edits |
| Validate app edit | POST | Edits |
| Add externally hosted APK | POST | Edits APKs |
| List APKs | GET | Edits APKs |
| Upload APK | POST | Edits APKs |
| List bundles | GET | Edits Bundles |
| Upload bundle | POST | Edits Bundles |
| Get country availability | GET | Edits Country Availability |
| Get app details | GET | Edits Details |
| Patch app details | PATCH | Edits Details |
| Update app details | PUT | Edits Details |
| Get expansion file | GET | Edits Expansion Files |
| Patch expansion file | PATCH | Edits Expansion Files |
| Update expansion file | PUT | Edits Expansion Files |
| Upload expansion file | POST | Edits Expansion Files |
| Delete image | DELETE | Edits Images |
| Delete all images | DELETE | Edits Images |
| List images | GET | Edits Images |
| Upload image | POST | Edits Images |
| Delete listing | DELETE | Edits Listings |
| Delete all listings | DELETE | Edits Listings |
| Get listing | GET | Edits Listings |
| List listings | GET | Edits Listings |
| Patch listing | PATCH | Edits Listings |
| Update listing | PUT | Edits Listings |
| Get testers | GET | Edits Testers |
| Patch testers | PATCH | Edits Testers |
| Update testers | PUT | Edits Testers |
| Create track | POST | Edits Tracks |
| Get track | GET | Edits Tracks |
| List tracks | GET | Edits Tracks |
| Patch track | PATCH | Edits Tracks |
| Update track | PUT | Edits Tracks |
| Batch delete in-app products | POST | In-App Products |
| Batch get in-app products | GET | In-App Products |
| Batch update in-app products | POST | In-App Products |
| Delete in-app product | DELETE | In-App Products |
| Get in-app product | GET | In-App Products |
| Insert in-app product | POST | In-App Products |
| List in-app products | GET | In-App Products |
| Patch in-app product | PATCH | In-App Products |
| Update in-app product | PUT | In-App Products |
| Acknowledge product purchase | POST | Purchases Products |
| Consume product purchase | POST | Purchases Products |
| Get product purchase | GET | Purchases Products |
| Get product purchase V2 | GET | Purchases Products V2 |
| Acknowledge subscription | POST | Purchases Subscriptions |
| Cancel subscription | POST | Purchases Subscriptions |
| Defer subscription | POST | Purchases Subscriptions |
| Cancel subscription V2 | POST | Purchases Subscriptions V2 |
| Get subscription V2 | GET | Purchases Subscriptions V2 |
| Revoke subscription V2 | POST | Purchases Subscriptions V2 |
| List voided purchases | GET | Purchases Voided Purchases |
| Get review | GET | Reviews |
| List reviews | GET | Reviews |
| Reply to review | POST | Reviews |
| Batch get orders | GET | Orders |
| Get order | GET | Orders |
| Refund order | POST | Orders |
| Create external transaction | POST | External Transactions |
| Get external transaction | GET | External Transactions |
| Refund external transaction | POST | External Transactions |
| Download generated APK | GET | Generated APKs |
| List generated APKs | GET | Generated APKs |
| Create grant | POST | Grants |
| Delete grant | DELETE | Grants |
| Patch grant | PATCH | Grants |
| Upload APK to internal app sharing | POST | Internal App Sharing |
| Upload bundle to internal app sharing | POST | Internal App Sharing |
| Convert region prices | POST | Monetization |
| Batch delete one-time products | POST | One-Time Products |
| Batch get one-time products | GET | One-Time Products |
| Batch update one-time products | POST | One-Time Products |
| Delete one-time product | DELETE | One-Time Products |
| Get one-time product | GET | One-Time Products |
| List one-time products | GET | One-Time Products |
| Patch one-time product | PATCH | One-Time Products |
| Batch get subscriptions | GET | Subscriptions |
| Batch update subscriptions | POST | Subscriptions |
| Create subscription | POST | Subscriptions |
| Delete subscription | DELETE | Subscriptions |
| Get subscription | GET | Subscriptions |
| List subscriptions | GET | Subscriptions |
| Patch subscription | PATCH | Subscriptions |
| Create system APK variant | POST | System APKs |
| Download system APK variant | GET | System APKs |
| Get system APK variant | GET | System APKs |
| List system APK variants | GET | System APKs |
| Create user | POST | Users |
| Delete user | DELETE | Users |
| List users | GET | Users |
| Patch user | PATCH | Users |
| Upload deobfuscation file | POST | Edits Deobfuscation Files |
| Batch delete purchase options | POST | One-Time Products Purchase Options |
| Batch update purchase option states | POST | One-Time Products Purchase Options |
| Activate one-time product offer | POST | One-Time Products Offers |
| Batch delete one-time product offers | POST | One-Time Products Offers |
| Batch get one-time product offers | POST | One-Time Products Offers |
| Batch update one-time product offers | POST | One-Time Products Offers |
| Batch update one-time product offer states | POST | One-Time Products Offers |
| Cancel one-time product offer | POST | One-Time Products Offers |
| Deactivate one-time product offer | POST | One-Time Products Offers |
| List one-time product offers | GET | One-Time Products Offers |
| Activate base plan | POST | Subscriptions Base Plans |
| Batch migrate base plan prices | POST | Subscriptions Base Plans |
| Batch update base plan states | POST | Subscriptions Base Plans |
| Deactivate base plan | POST | Subscriptions Base Plans |
| Delete base plan | DELETE | Subscriptions Base Plans |
| Migrate base plan prices | POST | Subscriptions Base Plans |
| Activate subscription offer | POST | Subscriptions Base Plans Offers |
| Batch get subscription offers | POST | Subscriptions Base Plans Offers |
| Batch update subscription offers | POST | Subscriptions Base Plans Offers |
| Batch update subscription offer states | POST | Subscriptions Base Plans Offers |
| Create subscription offer | POST | Subscriptions Base Plans Offers |
| Deactivate subscription offer | POST | Subscriptions Base Plans Offers |
| Delete subscription offer | DELETE | Subscriptions Base Plans Offers |
| Get subscription offer | GET | Subscriptions Base Plans Offers |
| List subscription offers | GET | Subscriptions Base Plans Offers |
| Patch subscription offer | PATCH | Subscriptions Base Plans Offers |
## API Definition Endpoints
You can fetch the complete API specification for this provider:
**New Format (OpenAPI spec):**
```bash
curl 'https://backend.lowcodeapi.com/googleplay/openapi'
```
**Old Format (API definition):**
```bash
curl 'https://backend.lowcodeapi.com/googleplay/definition'
```
## Response Format
All responses are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider (object or array)
}
}
```