API Coverage Map
Maps every Google Play Developer API endpoint that GPC implements to a CLI command.
GPC interacts with four separate Google APIs:
| API | Base URL | Purpose |
|---|---|---|
| Android Publisher API v3 | androidpublisher.googleapis.com | Publishing, monetization, reviews, purchases, users |
| Play Developer Reporting API v1beta1 | playdeveloperreporting.googleapis.com | Vitals, crash rates, ANR, performance metrics |
| Play Custom App Publishing API v1 | playcustomapp.googleapis.com | Managed Google Play private app publishing |
| Games Configuration API v1configuration | gamesconfiguration.googleapis.com | Play Games achievement and leaderboard configuration |
Edits
The Edits resource is the transactional wrapper for most write operations. Edits are managed internally; users never interact with them directly.
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.insert | POST | (internal, auto-managed) |
edits.get | GET | (internal) |
edits.commit | POST | (internal, auto on success) |
edits.validate | POST | (internal, pre-commit check) |
edits.delete | DELETE | (internal, auto on failure) |
Edits: Bundles
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.bundles.list | GET | gpc releases list --type bundle |
edits.bundles.upload | POST | gpc releases upload <file.aab> |
Edits: APKs
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.apks.list | GET | gpc releases list --type apk |
edits.apks.upload | POST | gpc releases upload <file.apk> |
edits.apks.addExternallyHosted | POST | (via SDK) |
Edits: Tracks
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.tracks.list | GET | gpc tracks list |
edits.tracks.get | GET | gpc tracks get <track> |
edits.tracks.update | PUT | gpc tracks update <track> |
edits.tracks.patch | PATCH | gpc tracks update <track> --patch |
edits.tracks.create | POST | gpc tracks create <name> |
Release Lifecycle
| API Endpoint | Method | GPC Command |
|---|---|---|
applications.tracks.releases.list | GET | gpc releases list --lifecycle |
Edits: Deobfuscation Files
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.deobfuscationfiles.upload | POST | gpc releases upload --mapping <file> |
Edits: Expansion Files
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.expansionfiles.get | GET | (via SDK) |
edits.expansionfiles.update | PUT | (via SDK) |
edits.expansionfiles.patch | PATCH | (via SDK) |
edits.expansionfiles.upload | POST | (via SDK) |
Edits: Listings
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.listings.list | GET | gpc listings get (all languages) |
edits.listings.get | GET | gpc listings get --lang <lang> |
edits.listings.update | PUT | gpc listings update --lang <lang> |
edits.listings.delete | DELETE | gpc listings delete --lang <lang> |
edits.listings.deleteall | DELETE | gpc listings delete --all |
edits.listings.patch | PATCH | gpc listings update --lang <lang> --patch |
Edits: Images
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.images.list | GET | gpc listings images list |
edits.images.upload | POST | gpc listings images upload |
edits.images.delete | DELETE | gpc listings images delete |
edits.images.deleteall | DELETE | gpc listings images delete --all |
Edits: Details
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.details.get | GET | gpc apps info <package> |
edits.details.update | PUT | gpc apps update <package> |
edits.details.patch | PATCH | gpc apps update <package> --patch |
Edits: Country Availability
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.countryavailability.get | GET | gpc listings availability |
Edits: Testers
| API Endpoint | Method | GPC Command |
|---|---|---|
edits.testers.get | GET | gpc testers list --track <track> |
edits.testers.update | PUT | gpc testers add / remove |
edits.testers.patch | PATCH | gpc testers update |
Reviews
| API Endpoint | Method | GPC Command |
|---|---|---|
reviews.list | GET | gpc reviews list |
reviews.get | GET | gpc reviews get <id> |
reviews.reply | POST | gpc reviews reply <id> |
In-App Products
| API Endpoint | Method | GPC Command |
|---|---|---|
inappproducts.list | GET | gpc iap list |
inappproducts.get | GET | gpc iap get <sku> |
inappproducts.insert | POST | gpc iap create |
inappproducts.update | PUT | gpc iap update <sku> |
inappproducts.delete | DELETE | gpc iap delete <sku> |
inappproducts.patch | PATCH | gpc iap update <sku> --patch |
inappproducts.batchGet | POST | gpc iap batch-get |
inappproducts.batchUpdate | POST | gpc iap sync |
inappproducts.batchDelete | POST | gpc iap batch-delete |
Monetization: Subscriptions
| API Endpoint | Method | GPC Command |
|---|---|---|
monetization.subscriptions.list | GET | gpc subscriptions list |
monetization.subscriptions.get | GET | gpc subscriptions get <id> |
monetization.subscriptions.create | POST | gpc subscriptions create |
monetization.subscriptions.patch | PATCH | gpc subscriptions update <id> |
monetization.subscriptions.delete | DELETE | gpc subscriptions delete <id> |
monetization.subscriptions.batchGet | GET | gpc subscriptions batch-get |
monetization.subscriptions.batchUpdate | POST | gpc subscriptions batch-update |
Monetization: Base Plans
| API Endpoint | Method | GPC Command |
|---|---|---|
basePlans.activate | POST | gpc subscriptions base-plans activate |
basePlans.deactivate | POST | gpc subscriptions base-plans deactivate |
basePlans.delete | DELETE | gpc subscriptions base-plans delete |
basePlans.migratePrices | POST | gpc subscriptions base-plans migrate-prices |
basePlans.batchMigratePrices | POST | gpc subscriptions base-plans batch-migrate-prices |
Monetization: Subscription Offers
| API Endpoint | Method | GPC Command |
|---|---|---|
offers.list | GET | gpc subscriptions offers list |
offers.get | GET | gpc subscriptions offers get |
offers.create | POST | gpc subscriptions offers create |
offers.patch | PATCH | gpc subscriptions offers update |
offers.delete | DELETE | gpc subscriptions offers delete |
offers.activate | POST | gpc subscriptions offers activate |
offers.deactivate | POST | gpc subscriptions offers deactivate |
Purchases
| API Endpoint | Method | GPC Command |
|---|---|---|
purchases.products.get | GET | gpc purchases get <product-id> <token> |
purchases.products.acknowledge | POST | gpc purchases acknowledge <token> |
purchases.products.consume | POST | gpc purchases consume <token> |
purchases.subscriptions.get | GET | gpc purchases subscription get <token> |
purchases.subscriptions.acknowledge | POST | (via SDK) |
purchases.subscriptions.cancel | POST | gpc purchases subscription cancel <token> |
purchases.subscriptions.defer | POST | gpc purchases subscription defer <token> |
purchases.subscriptionsv2.get | GET | gpc purchases subscription get <token> --v2 |
purchases.subscriptionsv2.revoke | POST | gpc purchases subscription revoke <token> --v2 |
purchases.subscriptionsv2.cancel | POST | gpc purchases subscription cancel-v2 <token> |
purchases.subscriptionsv2.defer | POST | gpc purchases subscription defer-v2 <token> |
purchases.productsv2.get | GET | gpc purchases product get-v2 <id> <token> |
purchases.voidedpurchases.list | GET | gpc purchases voided list |
Orders
| API Endpoint | Method | GPC Command |
|---|---|---|
orders.get | GET | gpc purchases orders get <order-id> |
orders.batchGet | POST | gpc purchases orders batch-get --ids |
orders.refund | POST | gpc purchases orders refund <order-id> |
Monetization: Pricing
| API Endpoint | Method | GPC Command |
|---|---|---|
monetization.convertRegionPrices | POST | gpc pricing convert --from USD --amount 9.99 |
Users
Developer-account user management lives at a separate base URL (androidpublisher.googleapis.com/androidpublisher/v3/developers/{developerId}) and is exposed through UsersApiClient.
| API Endpoint | Method | GPC Command |
|---|---|---|
users.list | GET | gpc users list |
users.create | POST | gpc users invite |
users.patch | PATCH | gpc users update |
users.delete | DELETE | gpc users remove |
Grants
| API Endpoint | Method | GPC Command |
|---|---|---|
grants.list | GET | gpc grants list |
grants.create | POST | gpc grants create |
grants.patch | PATCH | gpc grants update |
grants.delete | DELETE | gpc grants delete |
Reports
Bulk reports are served from the Play-linked Cloud Storage bucket (pubsite_prod_<developerId>) via the GCS JSON API, not the Publisher API (v0.9.93+).
| API Endpoint | Method | GPC Command |
|---|---|---|
storage.objects.list | GET | gpc reports list |
storage.objects.get (financial) | GET | gpc reports download financial |
storage.objects.get (stats) | GET | gpc reports download stats |
Play Developer Reporting API: Vitals
| API Endpoint | Method | GPC Command |
|---|---|---|
crashRateMetricSet.query | POST | gpc vitals crashes |
anrRateMetricSet.query | POST | gpc vitals anr |
slowStartRateMetricSet.query | POST | gpc vitals startup |
slowRenderingRateMetricSet.query | POST | gpc vitals rendering |
excessiveWakeupRateMetricSet.query | POST | gpc vitals battery / gpc vitals wakeup |
stuckBackgroundWakelockRateMetricSet.query | POST | gpc vitals memory |
lmkRateMetricSet.query | POST | gpc vitals lmk |
errorCountMetricSet.query | POST | gpc vitals error-count |
anomalies.list | GET | gpc vitals anomalies |
errorIssues.search | GET | gpc vitals errors search |
errorReports.search | GET | gpc vitals errors reports (see Planned coverage) |
App Recovery Actions
| API Endpoint | Method | GPC Command |
|---|---|---|
appRecoveries.list | GET | gpc recovery list |
appRecoveries.create | POST | gpc recovery create |
appRecoveries.cancel | POST | gpc recovery cancel |
appRecoveries.deploy | POST | gpc recovery deploy |
appRecoveries.addTargeting | POST | gpc recovery add-targeting |
Data Safety
| API Endpoint | Method | GPC Command |
|---|---|---|
dataSafety.update | POST | gpc data-safety update |
External Transactions
| API Endpoint | Method | GPC Command |
|---|---|---|
externaltransactions.createExternalTransaction | POST | gpc ext-txn create |
externaltransactions.getExternalTransaction | GET | gpc ext-txn get |
externaltransactions.refundExternalTransaction | POST | gpc ext-txn refund |
Device Tiers
| API Endpoint | Method | GPC Command |
|---|---|---|
deviceTierConfigs.list | GET | gpc device-tiers list |
deviceTierConfigs.get | GET | gpc device-tiers get <config-id> |
deviceTierConfigs.create | POST | gpc device-tiers create --file |
Internal App Sharing
| API Endpoint | Method | GPC Command |
|---|---|---|
internalappsharing.artifacts.uploadbundle | POST | gpc internal-sharing upload <file> |
internalappsharing.artifacts.uploadapk | POST | gpc internal-sharing upload <file> |
Generated APKs
| API Endpoint | Method | GPC Command |
|---|---|---|
generatedapks.list | GET | gpc generated-apks list <version-code> |
generatedapks.download | GET | gpc generated-apks download <vc> <apk-id> |
System APKs
System APKs are bundled, unsigned variants produced for a specific version. Used by OEMs and enterprise deployments.
| API Endpoint | Method | GPC Command |
|---|---|---|
systemApks.list | GET | gpc system-apks list <version> |
systemApks.get | GET | gpc system-apks get <version> <id> |
systemApks.create | POST | gpc system-apks create <version> |
systemApks.download | GET | gpc system-apks download <id> |
One-Time Products
| API Endpoint | Method | GPC Command |
|---|---|---|
monetization.oneTimeProducts.list | GET | gpc otp list |
monetization.oneTimeProducts.get | GET | gpc otp get <id> |
monetization.onetimeproducts.patch | PATCH | gpc otp create (allowMissing), gpc otp update <id> |
monetization.oneTimeProducts.delete | DELETE | gpc otp delete <id> |
oneTimeProducts.offers.list | GET | gpc otp offers list |
oneTimeProducts.offers.activate | POST | gpc otp offers activate |
oneTimeProducts.offers.deactivate | POST | gpc otp offers deactivate |
oneTimeProducts.offers.cancel | POST | gpc otp offers cancel |
oneTimeProducts.offers.batchGet | POST | gpc otp offers batch-get, offers get |
oneTimeProducts.offers.batchUpdate | POST | gpc otp offers batch-update, offers create, offers update |
oneTimeProducts.offers.batchUpdateStates | POST | gpc otp offers batch-update-states |
oneTimeProducts.offers.batchDelete | POST | gpc otp offers batch-delete, offers delete |
oneTimeProducts.purchaseOptions.batchDelete | POST | gpc otp purchase-options batch-delete |
oneTimeProducts.purchaseOptions.batchUpdateStates | POST | gpc otp purchase-options batch-update-states |
Google Play publishes no single-offer get, create, patch, or delete route for one-time products -- only the batch endpoints above. gpc otp offers get|create|update|delete are therefore single-item batch requests, which is why they need --purchase-option <id>.
Managed Google Play (Play Custom App Publishing API)
Private app publishing for enterprise customers. Separate Google API (playcustomapp.googleapis.com). GPC is the first publishing CLI to support it. See the Enterprise publishing guide.
| API Endpoint | Method | GPC Command |
|---|---|---|
accounts.customApps.create | POST | gpc enterprise publish <bundle> or gpc enterprise create |
Coverage Summary
| Domain | Endpoints | API |
|---|---|---|
| Edits (internal transactional ops) | 5 | Publisher |
| Edits: Bundles + APKs | 5 | Publisher |
| Edits: Tracks + Release Lifecycle | 6 | Publisher |
| Edits: Deobfuscation + Expansion | 5 | Publisher |
| Edits: Listings + Images | 10 | Publisher |
| Edits: Details | 3 | Publisher |
| Edits: Country Availability | 1 | Publisher |
| Edits: Testers | 3 | Publisher |
| Reviews | 3 | Publisher |
| In-App Products | 9 | Publisher |
| Subscriptions + Base Plans + Offers | 19 | Publisher |
| Purchases | 13 | Publisher |
| Orders | 3 | Publisher |
| Monetization (pricing) | 1 | Publisher |
| Users + Grants | 8 | Publisher |
| Reports | 3 | Publisher |
| Vitals (metric sets + metadata) | 11 | Reporting |
| App Recovery | 5 | Publisher |
| Data Safety | 1 | Publisher |
| External Transactions | 3 | Publisher |
| Device Tiers | 3 | Publisher |
| Internal App Sharing | 2 | Publisher |
| Generated APKs | 2 | Publisher |
| System APKs | 4 | Publisher |
| One-Time Products + Offers | 14 | Publisher |
| Managed Google Play (Custom Apps) | 1 | Custom App |
| Play Games (Achievements + Leaderboards) | 10 | Games Config |
| Total API endpoints covered | ~230 |
The domain rows above are a grouped view, not a one-to-one enumeration, so they do not sum exactly to the headline figure. The ~230 total is GPC's tracked count of the individual endpoints it covers across its four Google Play APIs (Android Publisher v3, Play Developer Reporting v1beta1, Play Custom App Publishing v1, and Games Configuration v1configuration); a single grouped row can map to several underlying endpoints. Counts are approximate: some endpoints overload one Google URL (for example, reports.download serves both financial and stats buckets via query parameters).
Planned coverage
Tracked against the live discovery docs audited 2026-05-04:
androidpublisher v3, revision20260416: 134 / 137 methods covered (3 intentional gaps:monetization.subscriptions.archiveplus two hard-deprecated v1 subscription methods)playdeveloperreporting v1beta1, revision20260415: see gaps belowplaycustomapp v1, revision20260415: 1 / 1 methods coveredgames*APIs: see strategic direction below
Recent API field additions (shipped in GPC types)
These fields were added by Google in 2025-2026 and are already present in GPC's SubscriptionPurchaseV2 / SubscriptionPurchaseLineItem types:
| Field | Added | Notes |
|---|---|---|
SubscriptionPurchaseLineItem.latestSuccessfulOrderId | May 2025 | Replaces deprecated latestOrderId |
SubscriptionPurchaseLineItem.autoRenewingPlan.priceStepUpConsentDetails | Sep 2025 | Consent status + timestamp for price step-ups |
SubscriptionPurchaseLineItem.itemReplacement | Nov 2025 | Details about the item being replaced |
SubscriptionPurchaseV2.outOfAppPurchaseContext | Nov 2025 | Links resubscriptions from Play Store to expired subscriptions |
SubscriptionPurchaseLineItem.offerPhase | Jan 2026 | Current phase: free trial, intro price, base plan, prorated |
Orders.offerPhaseDetails | Nov 2025 | Detailed info on orders funding a prorated period |
RTDN event types
GPC's RTDN decoder covers all documented event types: 18 subscription (1-13, 17-20, 22), 2 OTP, plus voided-purchase and test-notification handlers.
Play Developer Reporting API: planned additions
| Endpoint | Use-case | Target |
|---|---|---|
apps.search | gpc apps list --source reporting: list service-account-visible apps via Reporting ACL | Future |
apps.fetchReleaseFilterOptions | Validate --version-code / --track filters, power shell completion for vitals queries | Future |
errorIssues.search (extended params) | Add orderBy, sampleErrorReportLimit, interval.* windowing to gpc vitals errors search | Future |
Fixed
gpc vitals errors reports now calls the correct GET /apps/{pkg}/errorReports:search endpoint with an errorIssueId filter.
Managed Google Play (playcustomapp): minor polish
| Item | Notes |
|---|---|
Accept BCP 47 hyphen form (en-US) | Currently only en_US is documented; both work, hyphen is canonical |
| Pre-validate 10 GiB upload cap | Clearer error than mid-stream upload failure |
No spec-driven changes needed: accounts.customApps.create is the entire API surface (1 method). Google has not added methods since v0.9.56 shipped (2026-04-11).
Games APIs
GPC v0.9.86 implements the full gamesconfiguration v1configuration API (10 endpoints) for publisher CRUD on achievement and leaderboard definitions:
| Resource | Methods (5 each) | Status |
|---|---|---|
achievementConfigurations | list, get, insert, update, delete | Done |
leaderboardConfigurations | list, get, insert, update, delete | Done |
The runtime games v1 API is preserved read-only under gpc games runtime for inspection. gpc games events was removed (runtime-only, no publisher equivalent).
gamesManagement v1management will not be expanded; it is a QA-reset surface outside GPC's publisher-CLI mission.
Deprecation watch
Formal deprecation wave (May 21, 2025)
Google formally deprecated these subscription APIs with shutdown scheduled for August 31, 2027 (extension available to November 1, 2027):
| Deprecated | Replacement | GPC status |
|---|---|---|
purchases.subscriptions.get | purchases.subscriptionsv2.get | Emits warning, redirects to v2 |
purchases.subscriptions.refund | orders.refund (via subscriptionsv2.get for order ID) | Removed; users directed to gpc purchases orders refund |
purchases.subscriptions.revoke | purchases.subscriptionsv2.revoke | v2 method available |
SubscriptionPurchaseV2.latestOrderId | SubscriptionPurchaseLineItem.latestSuccessfulOrderId | Types updated |
SUBSCRIPTION_PRICE_CHANGE_CONFIRMED RTDN | SUBSCRIPTION_PRICE_CHANGE_UPDATED | Both mapped in RTDN decoder |
Client libraries released after November 1, 2025 no longer include the deprecated methods. GPC's typed API client already prefers v2 surfaces.
Other deprecation signals
- Developer Verification API (2026 rollout): not yet present in
androidpublisher v3discovery as of revision20260416. Monitoring for a new discovery doc (likelyplaydeveloperverification-style) or Console-only feature. See Developer Verification guide for current posture. - Soft-deprecated (no formal deadline yet): Google's discovery doesn't flag these but their descriptions point callers at v2 equivalents:
purchases.subscriptions.{acknowledge, cancel, defer}→ prefersubscriptionsv2.*inappproducts.*(for subscriptions only) → prefermonetization.subscriptions.*
inappproductsfor one-time products: Google deprecated this endpoint for OTP management (shutdown August 2027). GPC routes throughmonetization.oneTimeProductsinternally and emits a warning on legacy IAP commands.
GPC currently emits deprecation warnings on purchases.subscriptions.get and legacy inappproducts IAP operations. Expanding warning coverage to the remaining soft-deprecated surfaces is a candidate for a future release.
