gplay subscriptions
gplay subscriptions
Section titled “gplay subscriptions”Manage subscription products.
gplay subscriptions <subcommand> [flags]Manage subscription products.
Subscriptions have a hierarchical structure:
- Subscription: The product itself
- Base Plan: A pricing tier within a subscription
- Offer: Promotional pricing on a base plan (trials, intro prices)
Use the “baseplans” and “offers” commands to manage those resources.
gplay subscriptions list
Section titled “gplay subscriptions list”List all subscriptions.
gplay subscriptions list --package <name> [--page-size <n>] [--show-archived]| Flag | Description | Default |
|---|---|---|
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--page-size |
Page size | 100 |
--paginate |
Fetch all pages | false |
--pretty |
Pretty-print JSON output | false |
--show-archived |
Include archived subscriptions | false |
gplay subscriptions get
Section titled “gplay subscriptions get”Get a subscription.
gplay subscriptions get --package <name> --product-id <id>| Flag | Description | Default |
|---|---|---|
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay subscriptions create
Section titled “gplay subscriptions create”Create a subscription.
gplay subscriptions create --package <name> --product-id <id> --json <json>Create a new subscription product.
The –regions-version flag is required when setting regional pricing. Use gplay pricing convert to get Google’s current regionVersion and region-specific converted prices.
Use –auto-convert-regional-prices with –base-price-json to let Google Play generate valid regionalConfigs and regionsVersion from one base price. This replaces any regionalConfigs in the JSON with the billable regions returned by Google for the current regionVersion.
JSON format: { “productId”: “premium_monthly”, “listings”: [ { “languageCode”: “en-US”, “title”: “Premium Monthly”, “benefits”: [“Feature 1”, “Feature 2”], “description”: “Get premium access” } ], “basePlans”: [ { “basePlanId”: “monthly”, “autoRenewingBasePlanType”: { “billingPeriodDuration”: “P1M”, “gracePeriodDuration”: “P7D”, “resubscribeState”: “RESUBSCRIBE_STATE_ACTIVE”, “prorationMode”: “SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE” }, “regionalConfigs”: [ { “regionCode”: “US”, “price”: { “currencyCode”: “USD”, “units”: “9”, “nanos”: 990000000 } } ] } ] }
Examples: gplay subscriptions create –package com.example.app –product-id premium_monthly –json @subscription.json –auto-convert-regional-prices –base-price-json ‘{“currencyCode”:“USD”,“units”:“9”,“nanos”:990000000}’ gplay pricing regions-version –package com.example.app –price-json ‘{“currencyCode”:“USD”,“units”:“9”,“nanos”:990000000}’ –output table
| Flag | Description | Default |
|---|---|---|
--auto-convert-regional-prices |
Generate regionalConfigs from –base-price-json | false |
--base-price-json |
Base Money JSON for –auto-convert-regional-prices (or @file) | `` |
--json |
Subscription JSON (or @file) | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
--product-tax-category-code |
Product tax category code for price conversion | `` |
--regions-version |
Regions version for price migration | `` |
gplay subscriptions update
Section titled “gplay subscriptions update”Update a subscription.
gplay subscriptions update --package <name> --product-id <id> --json <json>Update a subscription.
If –update-mask is not provided, it is automatically derived from the JSON keys. Mutable fields: basePlans, listings, restrictedPaymentCountries, taxAndComplianceSettings.
JSON format: { “listings”: [ { “languageCode”: “en-US”, “title”: “Premium Monthly (Updated)”, “description”: “Updated premium access” } ] }
If –allow-missing is set and the subscription does not exist, it will be created. In that case, –update-mask is ignored.
Examples: gplay subscriptions update –package com.example –product-id premium –json @subscription.json gplay subscriptions update –package com.example –product-id premium –json ‘{“listings”:[…]}’ –update-mask listings
| Flag | Description | Default |
|---|---|---|
--allow-missing |
Create if not exists | false |
--json |
Subscription JSON (or @file) | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
--regions-version |
Regions version for price migration | `` |
--update-mask |
Fields to update (comma-separated, e.g., listings) | `` |
gplay subscriptions delete
Section titled “gplay subscriptions delete”Delete a subscription (only if never had subscribers).
gplay subscriptions delete --package <name> --product-id <id> --confirm| Flag | Description | Default |
|---|---|---|
--confirm |
Confirm deletion | false |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay subscriptions archive
Section titled “gplay subscriptions archive”Archive a subscription (deprecate without deleting).
gplay subscriptions archive --package <name> --product-id <id>| Flag | Description | Default |
|---|---|---|
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-id |
Subscription product ID | `` |
gplay subscriptions batch-get
Section titled “gplay subscriptions batch-get”Get multiple subscriptions.
gplay subscriptions batch-get --package <name> --product-ids <ids>| Flag | Description | Default |
|---|---|---|
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |
--product-ids |
Comma-separated subscription product IDs | `` |
gplay subscriptions batch-update
Section titled “gplay subscriptions batch-update”Batch update multiple subscriptions.
gplay subscriptions batch-update --package <name> --json <json>Create or update multiple subscriptions in a single request.
JSON format: { “requests”: [ { “subscription”: { “packageName”: “com.example.app”, “productId”: “premium_monthly”, “listings”: [ { “languageCode”: “en-US”, “title”: “Premium Monthly”, “description”: “Get premium access” } ] }, “updateMask”: “listings”, “allowMissing”: true, “regionsVersion”: {“version”: “2025/02”} } ] }
| Flag | Description | Default |
|---|---|---|
--json |
BatchUpdateSubscriptionsRequest JSON (or @file) | `` |
--output |
Output format: json (default), table, markdown | json |
--package |
Package name (applicationId) | `` |
--pretty |
Pretty-print JSON output | false |