Skip to content

gplay onetimeproducts

Manage one-time products (monetization).

gplay onetimeproducts <subcommand> [flags]

Manage one-time products in the monetization system.

One-time products are non-subscription purchases that users buy once. This includes consumables (can be purchased again) and non-consumables.

List all one-time products.

gplay onetimeproducts list --package <name>
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

Get a one-time product.

gplay onetimeproducts 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 Product ID ``

Create a one-time product.

gplay onetimeproducts create --package <name> --product-id <id> --json <json>

Create a one-time product (or update if it already exists).

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.

The –package and –product-id flag values are applied to the request body, so they do not need to be repeated in the JSON.

Use –auto-convert-regional-prices with –base-price-json to let Google Play generate valid regionalPricingAndAvailabilityConfigs, newRegionsConfig, and regionsVersion from one base price. This replaces any regional pricing in the JSON with the billable regions returned by Google for the current regionVersion.

JSON format: { “listings”: [ { “languageCode”: “en-US”, “title”: “100 Coins”, “description”: “A pack of 100 coins” } ], “purchaseOptions”: [ { “purchaseOptionId”: “default”, “buyOption”: {}, “regionalPricingAndAvailabilityConfigs”: [ { “regionCode”: “US”, “availability”: “AVAILABLE”, “price”: { “currencyCode”: “USD”, “units”: “1”, “nanos”: 990000000 } } ] } ], “offerTags”: [ {“tag”: “coins”} ] }

Examples: gplay onetimeproducts create –package com.example.app –product-id coins_100 –json @product.json –auto-convert-regional-prices –base-price-json ‘{“currencyCode”:“USD”,“units”:“1”,“nanos”:990000000}’ gplay pricing regions-version –package com.example.app –price-json ‘{“currencyCode”:“USD”,“units”:“1”,“nanos”:990000000}’ –output table gplay onetimeproducts create –package com.example.app –product-id coins_100 –json @product.json –regions-version 2025/02

Flag Description Default
--auto-convert-regional-prices Generate regional pricing from –base-price-json false
--base-price-json Base Money JSON for –auto-convert-regional-prices (or @file) ``
--json OneTimeProduct JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false
--product-id Product ID ``
--product-tax-category-code Product tax category code for price conversion ``
--regions-version Regions version for price migration ``

Patch a one-time product.

gplay onetimeproducts patch --package <name> --product-id <id> --json <json>

Update specific fields of a one-time product.

If –update-mask is not provided, it is automatically derived from the JSON keys.

Mutable fields: listings, offerTags, purchaseOptions, restrictedPaymentCountries, taxAndComplianceSettings.

JSON format (partial update): { “listings”: [ { “languageCode”: “en-US”, “title”: “200 Coins”, “description”: “A pack of 200 coins” } ] }

Examples: gplay onetimeproducts patch –package com.example.app –product-id coins_100 –json @patch.json gplay onetimeproducts patch –package com.example.app –product-id coins_100 –json ‘{“listings”:[…]}’ –update-mask listings gplay onetimeproducts patch –package com.example.app –product-id coins_100 –json @product.json –regions-version 2025/02 –allow-missing

Flag Description Default
--allow-missing Create if not exists false
--json OneTimeProduct JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false
--product-id Product ID ``
--regions-version Regions version for price migration ``
--update-mask Fields to update (comma-separated) ``

Delete a one-time product.

gplay onetimeproducts 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 Product ID ``

Get multiple one-time products.

gplay onetimeproducts 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 product IDs ``

Create or update multiple one-time products.

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

Create or update multiple one-time products in a single request.

JSON format (BatchUpdateOneTimeProductsRequest): { “requests”: [ { “oneTimeProduct”: { “packageName”: “com.example.app”, “productId”: “coins_100”, “listings”: [ { “languageCode”: “en-US”, “title”: “100 Coins”, “description”: “A pack of 100 coins” } ], “purchaseOptions”: [ { “purchaseOptionId”: “default”, “buyOption”: {}, “regionalPricingAndAvailabilityConfigs”: [ { “regionCode”: “US”, “availability”: “AVAILABLE”, “price”: { “currencyCode”: “USD”, “units”: “1”, “nanos”: 990000000 } } ] } ] }, “updateMask”: “listings,purchaseOptions”, “allowMissing”: true, “regionsVersion”: {“version”: “2025/02”} } ] }

Examples: gplay onetimeproducts batch-update –package com.example.app –json @batch.json gplay onetimeproducts batch-update –package com.example.app –json ‘{“requests”:[…]}’

Flag Description Default
--json BatchUpdateRequest JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false

Delete multiple one-time products.

gplay onetimeproducts batch-delete --package <name> --json <json> --confirm

Delete multiple one-time products in a single request.

Requires –confirm for safety.

JSON format (BatchDeleteOneTimeProductsRequest): { “requests”: [ {“packageName”: “com.example.app”, “productId”: “coins_100”}, {“packageName”: “com.example.app”, “productId”: “coins_500”} ] }

Examples: gplay onetimeproducts batch-delete –package com.example.app –json @delete.json –confirm gplay onetimeproducts batch-delete –package com.example.app –json ‘{“requests”:[…]}’ –confirm

Flag Description Default
--confirm Confirm deletion false
--json BatchDeleteRequest JSON (or @file) ``
--output Output format: json (default), table, markdown json
--package Package name (applicationId) ``
--pretty Pretty-print JSON output false