Post

Replies

Boosts

Views

Activity

App Store Connect API - Historical pricing for app, IAPs, subscriptions
Hello! I'm using the App Store Connect API and am trying to find out if there is a way to get historical pricing for apps, in-app purchases, and/or subscriptions? I see https://developer.apple.com/documentation/appstoreconnectapi/get-v1-apppriceschedules-_id_, as well as similar APIs for in-app purchases and subscriptions, but those don't appear to return (or give a way to return) anything historical. Thanks!
1
0
359
Feb ’25
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: /v1/apps - Get list of all apps 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 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!
1
0
446
Feb ’25
How to get base territory for subscriptions with App Store Connect API?
Hello all, In the App Store Connect API: Apps have /v1/appPriceSchedules/{id}/baseTerritory. IAPs have /v1/inAppPurchasePriceSchedules/{id}/baseTerritory. ...but: Auto-renewing subscriptions don't have a corresponding endpoint for getting the base territory However, the App Store Connect website does indeed require you to set a base territory when creating new auto-renewable subscriptions. Why's that? More importantly, what's the best way of determining what to use for a base territory? Thank you!!
0
0
298
Feb ’25
App Store Connect API - Can't modify subscription price that's close to its effective date
Hello, I'm using the App Store Connect API to check and modify subscription prices. I know there can be only 1 outstanding future price change for subscription pricing, so I check for any scheduled future price changes (after today's date) and then delete them before setting new ones. This works 95% of the time -- except in the last little bit before the date changes. For example, if it is 1 hour before midnight and tomorrow's date is when the scheduled price change goes into effect, when I try to delete, I'll get something like this: The request failed with response code 409 ENTITY_ERROR. There is a problem with the request entity. Cannot delete Subscription Price with id . Only future price changes can be deleted. If I look at the same subscription in App Store Connect, it will still show it as a future price change, and won't show the usual buttons to modify or delete it. However, in App Store Connect, I can still hit the "+" button to create a new price change and it will successfully delete and replace the pending price change, which will then appear with the usual Delete and Edit buttons. My first thought was that maybe it was a timezone issue, but if I go to put the new pricing into effect, that request fails with an error like this: "errors" : [ { "id" : "5a51c570-1f38-4fa0-b490-9fa979f4aecf", "status" : "409", "code" : "STATE_ERROR", "title" : "The request cannot be fulfilled because of the state of another resource.", "detail" : "Must delete future price change before creating a new price change." } ] So... my questions are: Is this expected behavior? How can App Store Connect replace the pending price change in the final hours but I can't do it with the API? As a workaround, is there a set amount of time before the price change goes into effect where the prices should no longer be editable? Thanks!
0
0
352
Feb ’25