Base territory for app, in-app purchase

Hello!

I'm using the App Store Connect API to get some pricing information for my apps and in-app purchases. If I'm understand correctly, I first need to get the base territory and then get pricing schedules for that territory, and the process looks to be the same across both App information and In-App Purchase information, even though those each use different API endpoints.

My question is about Base Territory. I thought that was a thing that's the same across an entire App Store Connect team, but I see these two APIs:

(1) Read the base territory for an app's price schedule

and

(2) Read the selected base territory for an in-app purchase price schedule

The fact that both of these exist implies that IAPs can have a different base territory than the app itself, and that different apps can have different base territories, or even that different IAPs in the same app could have different base territories. Is that actually true?

Or, do both APIs exist for convenience - so that if you're dealing with an IAP you can use that API instead of the app API, for example?

The reason I'm asking is that I'd like to be as efficient as possible with API calls.

Right now, in order to get prices for all apps in my account and all IAPs, I believe I need to call:

To fetch all pricing information:

  1. /v1/apps - Get list of all apps

  2. For each app:

    • /v1/appPriceSchedules/{appId}/baseTerritory - Get base territory
    • /v1/appPriceSchedules/{appId}/manualPrices?filter[territory]={territoryId} - Get prices for base territory
    • /v1/apps/{appId}/inAppPurchasesV2?include=iapPriceSchedule - Get IAPs
    • /v1/apps/{appId}/subscriptionGroups?include=subscriptions - Get auto-renewable subscriptions
  3. For each IAP: If type is NOT non-renewing subscription:

    • /v1/inAppPurchasePriceSchedules/{iapId}/baseTerritory - Get base territory
    • /v1/inAppPurchasePriceSchedules/{iapId}/manualPrices?filter[territory]={territoryId} - Get prices

    If type IS non-renewing subscription OR auto-renewable subscription:

    • /v1/subscriptions/{iapId}/prices?filter[territory]={territoryId} - Get subscription prices

This is getting what we want, but hat's a LOT of API calls. Are there steps here we can shortcut or cut out? I'm looking for the current, manually-set prices for everything.

Thanks very much!

Answered by endecotp in 823598022

The fact that both of these exist implies that IAPs can have a different base territory than the app itself, and that different apps can have different base territories, or even that different IAPs in the same app could have different base territories. Is that actually true?

Yes. For example, I have an US-focused app and a UK-focusd app. I set the base territories to US and UK respectively, so that the pricing is stable in the places where most of the users are. (I've not tried to do this for IAPs, but the same logic applies.)

Accepted Answer

The fact that both of these exist implies that IAPs can have a different base territory than the app itself, and that different apps can have different base territories, or even that different IAPs in the same app could have different base territories. Is that actually true?

Yes. For example, I have an US-focused app and a UK-focusd app. I set the base territories to US and UK respectively, so that the pricing is stable in the places where most of the users are. (I've not tried to do this for IAPs, but the same logic applies.)

Base territory for app, in-app purchase
 
 
Q