Skip to main content

Product Editor CSV format

Columns and row types for Product Editor App Store and Play Store files

AIAsk AIChatGPTClaude

Download a file from Product Editor and treat that export as the template. This page explains what each row and column means.

To see the full column layout without generating an export first, download a filled-in example:

These samples are examples of the format, not a catalog to upload. Identifiers, prices, and territories must match the app you are editing.

Edit one store per file. App Store exports do not include Play Store columns, and Play Store exports do not include App Store columns. Mixing stores in one upload is not supported.

How rows are grouped

Every row belongs to a product identified by store + store_identifier.

row_typeWhat it describes
productProduct-level fields: type, title, duration, store-specific settings
priceOne territory’s price and availability
localizationOne locale’s name and description
offerA free trial or Play Store offer

Leave a cell blank or unchanged to keep the current store value. Amounts are ordinary decimal prices (9.99), not micros.

store_identifier is the store product ID:

  • App Store: the product ID (for example rc_pro_monthly)
  • Play Store: subscriptionId:basePlanId (for example premium:monthly)

Example

A minimal App Store price update (other columns omitted for readability):

row_typestorestore_identifierproduct_typedurationterritoryamountcurrencyavailable
productapp_storerc_pro_monthlysubscriptionP1M
priceapp_storerc_pro_monthlyUnited States9.99USDtrue

Territories in the export use country names (United States, Germany). You can also use ISO 2-letter codes (US, DE) on upload.

Shared columns

These appear for both App Store and Play Store files.

ColumnUsed onDescription
row_typeallproduct, price, localization, or offer
storeallapp_store or play_store
store_identifierallStore product ID (see above)
product_typeproductFor example subscription, consumable, non_consumable
display_nameproductName in the RevenueCat dashboard
titleproductStore title
durationproductBilling period as ISO 8601 duration (P1W, P1M, P3M, P6M, P1Y)
territoryprice, some offer rowsCountry for this price or offer availability
amountpricePrice in the territory’s currency
currencypriceISO currency code (for example USD, EUR)
start_dateprice, App Store offerWhen the price or App Store trial starts (YYYY-MM-DD). Empty starts an App Store trial today. Draft prices can omit it. Approved App Store subscription price changes need a future date.
availableprice, some offer rowstrue or false. Whether the product (or offer) is available in that territory
available_in_new_territoriesproducttrue or false. Sell in territories Apple or Google add later
localelocalizationLocale code (for example en-US)
localized_namelocalizationCustomer-facing name for that locale
localized_descriptionlocalizationCustomer-facing description for that locale
trial_offer_durationofferTrial length as ISO 8601 duration (for example P7D, P1M). Used for App Store free trials and Play Store trial offers.

start_date is the only date column. Exports prefix the value with ' (for example '2026-09-01) so Excel keeps it as text. Play Store offers do not use start_date.

App Store columns

Present only on App Store exports.

ColumnUsed onDescription
app_store_subscription_group_nameproductSubscription group reference name in App Store Connect

App Store offer rows use trial_offer_duration. Leave start_date empty to start the trial today. Product names must stay within Apple’s limits (typically 30 characters for the display name and 45 for the description) or App Store Connect will reject the change.

Play Store columns

Present only on Play Store exports. Play Store CSV export includes subscriptions only.

ColumnUsed onDescription
play_store_offer_idofferOffer ID in Play Console. Required on offer rows
play_store_offer_other_regions_availableofferWhether the offer is available in other regions
play_store_base_plan_typeproductauto_renewing, prepaid, or installments
play_store_base_plan_offer_tagsproductOffer tags for the base plan
play_store_auto_renewing_grace_period_durationproductGrace period for auto-renewing base plans
play_store_auto_renewing_account_hold_durationproductAccount hold duration
play_store_auto_renewing_resubscribe_stateproductResubscribe behavior
play_store_auto_renewing_proration_modeproductHow upgrades and downgrades are prorated
play_store_auto_renewing_legacy_compatibleproductWhether the base plan is backwards compatible
play_store_auto_renewing_legacy_compatible_subscription_offer_idproductLegacy-compatible offer ID
play_store_prepaid_time_extensionproductPrepaid time extension
play_store_installments_committed_payments_countproductNumber of committed installment payments
play_store_installments_renewal_typeproductInstallment renewal type
play_store_installments_grace_period_durationproductInstallment grace period
play_store_installments_account_hold_durationproductInstallment account hold
play_store_installments_resubscribe_stateproductInstallment resubscribe behavior
play_store_installments_proration_modeproductInstallment proration
play_store_other_regions_available_in_new_territoriesproductOther-regions availability for new territories
play_store_other_regions_usd_amountproductUSD price used for other regions
play_store_other_regions_usd_currencyproductCurrency for the USD other-regions price (USD)
play_store_other_regions_eur_amountproductEUR price used for other regions
play_store_other_regions_eur_currencyproductCurrency for the EUR other-regions price (EUR)

Only fill the Play columns that apply to the play_store_base_plan_type (auto-renewing, prepaid, or installments). Leave the rest blank. Play Store offer rows need play_store_offer_id and trial_offer_duration.

Limits

  • At most 50 products per export or import
  • One app and one store per file
  • Play Store: subscriptions only

Return to Configure products with Product Editor for download, review, and commit steps.

Was this page helpful?