Skip to content

gplay iap

Manage in-app products (managed products).

gplay iap <subcommand> [flags]

Manage in-app products including consumables and non-consumables.

Note: This command manages “managed products” (one-time purchases). For subscriptions, use the “subscriptions” command instead.

List all in-app products.

gplay iap list --package <name> [--max-results <n>] [--paginate]
Flag Description Default
--max-results Maximum number of results 100
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--paginate Fetch all pages false
--pretty Pretty-print JSON output false

Get an in-app product.

gplay iap get --package <name> --sku <sku>
Flag Description Default
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false
--sku Product SKU/ID ``

Create an in-app product.

gplay iap create --package <name> --json <json>

Create a new in-app product.

When –auto-convert-prices is true, Google Play fills in missing regional prices from defaultPrice. It does not rewrite explicit entries in prices that use the wrong currency for their region.

JSON format: { “sku”: “premium_upgrade”, “status”: “active”, “purchaseType”: “managedUser”, “defaultPrice”: { “priceMicros”: “990000”, “currency”: “USD” }, “listings”: { “en-US”: { “title”: “Premium Upgrade”, “description”: “Unlock all premium features” } } }

purchaseType can be:

  • managedUser: One-time purchase
  • subscription: Recurring subscription (use subscriptions command instead)
Flag Description Default
--auto-convert-prices Auto-convert missing prices to local currencies true
--json InAppProduct JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false

Update an in-app product.

gplay iap update --package <name> --sku <sku> --json <json>

Update an in-app product.

When –auto-convert-prices is true, Google Play fills in missing regional prices from defaultPrice. It does not rewrite explicit entries in prices that use the wrong currency for their region.

JSON format: { “defaultPrice”: { “priceMicros”: “4990000”, “currency”: “USD” }, “listings”: { “en-US”: { “title”: “Premium Upgrade”, “description”: “Unlock all premium features” } } }

Note: Uses legacy pricing format (priceMicros/currency). The –sku flag identifies which product to update. Use –allow-missing to create the product if it doesn’t exist.

Flag Description Default
--allow-missing Create if not exists false
--auto-convert-prices Auto-convert missing prices to local currencies true
--json InAppProduct JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false
--sku Product SKU/ID ``

Patch an in-app product.

gplay iap patch --package <name> --sku <sku> --json <json>

Patch an in-app product using inappproducts.patch.

JSON format: { “status”: “active”, “listings”: { “en-US”: { “title”: “Premium Upgrade” } } }

Flag Description Default
--auto-convert-prices Auto-convert missing prices to local currencies true
--json InAppProduct JSON patch (or @file) ``
--latency-tolerance Product update latency tolerance ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false
--sku Product SKU/ID ``

Delete an in-app product.

gplay iap delete --package <name> --sku <sku> --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
--sku Product SKU/ID ``

Get multiple in-app products.

gplay iap batch-get --package <name> --skus <sku1,sku2,...>
Flag Description Default
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false
--skus Comma-separated list of SKUs ``

Update multiple in-app products.

gplay iap batch-update --package <name> --json <json>

Create or update multiple in-app products in a single request.

The –json flag accepts an array of InAppProduct objects. Each product is wrapped in an InappproductsUpdateRequest internally.

JSON format: [ { “sku”: “coins_100”, “status”: “active”, “purchaseType”: “managedUser”, “defaultPrice”: { “priceMicros”: “990000”, “currency”: “USD” }, “listings”: { “en-US”: { “title”: “100 Coins”, “description”: “A pack of 100 coins” } } }, { “sku”: “coins_500”, “status”: “active”, “purchaseType”: “managedUser”, “defaultPrice”: { “priceMicros”: “3990000”, “currency”: “USD” }, “listings”: { “en-US”: { “title”: “500 Coins”, “description”: “A pack of 500 coins” } } } ]

Up to 100 products per request. Use –allow-missing to create products that don’t exist yet.

Flag Description Default
--allow-missing Create if not exists false
--auto-convert-prices Auto-convert missing prices to local currencies true
--json Array of InAppProducts JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false

Delete multiple in-app products.

gplay iap batch-delete --package <name> --skus <sku1,sku2,...> --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
--skus Comma-separated list of SKUs ``