Products and product offers commands

These Adapty CLI commands manage products, map them to their App Store and Google Play product IDs, and link store offers to them.

Products

adapty products list

List all products for an app.

adapty products list --app <app-id>
FlagRequiredDescription
--appYesApp ID (UUID)

Accepts pagination flags.

adapty products get

Get details for a specific product.

adapty products get --app <app-id> <product-id>
ArgumentDescription
product-idProduct ID (UUID)
FlagRequiredDescription
--appYesApp ID (UUID)

adapty products create

Create a new product.

Important

The store product and price IDs cannot be changed after creation. To use different store IDs, create a new product.

adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
FlagRequiredDescription
--appYesApp ID (UUID)
--titleYesProduct title
--access-level-idYesAccess level ID (UUID) this product unlocks
--periodYesSubscription period: weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime
--ios-product-idAt least one store requiredProduct ID from App Store Connect
--android-product-idAt least one store requiredProduct ID from Google Play Console
--android-base-plan-idRequired with --android-product-id unless --period lifetimeBase plan ID from Google Play Console
--stripe-product-idAt least one store requiredProduct ID from Stripe
--stripe-price-idRequired with --stripe-product-idPrice ID from Stripe
--paddle-product-idAt least one store requiredProduct ID from Paddle
--paddle-price-idRequired with --paddle-product-idPrice ID from Paddle

Every product needs at least one store: --ios-product-id, --android-product-id, --stripe-product-id, or --paddle-product-id. A single product can carry IDs for several stores at once.

To sell a product on the web through Stripe or Paddle, connect the payment provider to Adapty first: see Stripe and Paddle. For each of these stores, pass the product ID and the price ID together. The command fails if you pass only one of the pair.

adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx

A web-only product is valid: you can create a product with Stripe or Paddle IDs and no App Store or Google Play IDs.

adapty products update

Update an existing product.

Store product and price IDs cannot be changed after creation and are not available in this command. To use different store IDs, create a new product.

adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
ArgumentDescription
product-idProduct ID (UUID)
FlagRequiredDescription
--appYesApp ID (UUID)
--titleNoProduct title
--access-level-idNoAccess level ID (UUID) this product unlocks

Product offers

Link the offers you created in App Store Connect or Google Play Console to an Adapty product, so Adapty can apply them. For what each offer type does and how to create the offer in the store, see Add offers to Adapty.

Add these offers:

  • App Store promotional and win-back offers.
  • All Google Play offers, free trials included. Google Play has no introductory offer type, so a trial is an offer on a base plan, and it applies only after you link it in Adapty.

Don’t add App Store introductory offers: they apply automatically to eligible users.

A linked offer still has to be selected for the product in a flow or a paywall before users see it. To select it in a paywall, use the Adapty dashboard: see Display offer.

adapty products list and adapty products get show how many offers are linked to each product in offers_count. The count includes only offers linked in Adapty, not the offers that exist in the stores.

adapty product-offers list

List all offers linked to a product.

adapty product-offers list --app <app-id> --product <product-id>
FlagRequiredDescription
--appYesApp ID (UUID)
--productYesProduct ID (UUID)

Returns every offer on one page and doesn’t accept pagination flags.

adapty product-offers get

Get details for a specific offer.

adapty product-offers get --app <app-id> <offer-id>
ArgumentDescription
offer-idOffer ID (UUID)
FlagRequiredDescription
--appYesApp ID (UUID)

adapty product-offers create

Link a store offer to a product.

adapty product-offers create --app <app-id> --product <product-id> --title "Spring" --type promotional --ios-offer-id spring_ios --android-offer-id spring-android
FlagRequiredDescription
--appYesApp ID (UUID)
--productYesProduct ID (UUID)
--titleYesOffer name, shown only in the Adapty dashboard
--typeYesOffer type: promotional or win_back
--ios-offer-idAt least one store requiredOffer ID from App Store Connect
--android-offer-idAt least one store requiredOffer ID from Google Play Console

Win-back offers are App Store only, so --type win_back takes only --ios-offer-id. For any Google Play offer, a free trial included, use --type promotional.

adapty product-offers create --app <app-id> --product <product-id> --title "Come back" --type win_back --ios-offer-id winback_ios

adapty product-offers update

Update an existing offer.

adapty product-offers update --app <app-id> <offer-id> --title "Spring 2"
ArgumentDescription
offer-idOffer ID (UUID)
FlagRequiredDescription
--appYesApp ID (UUID)
--titleNoOffer name
--typeNoOffer type: promotional or win_back. To change an offer to win_back, also remove its Google Play side with --clear-android-offer-id
--ios-offer-idNoNew App Store offer ID
--android-offer-idNoNew Google Play offer ID
--clear-ios-offer-idNoRemove the App Store side of the offer
--clear-android-offer-idNoRemove the Google Play side of the offer

At least one flag besides --app is required. Fields you leave out keep their current values. Every offer keeps at least one store offer ID, so the command fails if it would remove the last one.

Warning

The command reads the offer and saves it whole. If someone edits the same offer in the Adapty dashboard between that read and the save, their change is overwritten.

Introductory offers can’t be updated. An offer that has a store other than the App Store or Google Play can’t be updated from the CLI either: edit it in the Adapty dashboard.

To delete an offer, use the Adapty dashboard. The CLI has no delete command.

What’s next