AppStoreConnect API - How to set pricing

I am trying to use the AppStoreConnect API to set the price of an app. In the documentation (here) it suggests that it is possible to set the price using the API.

"To set a price for your app using App Store Connect API, create a relationship between the apps resource and appPrices"

However it links to the instructions on how to set a price using the AppStoreConnect web site.

Looking at the website it appears that the pricing is being set by sending a PATCH to the app record itself but on the API this results in a 405 (METHOD_NOT_ALLOWED)

Is it possible to set a price using the API, and if so what endpoint should I be sending to?

Replies

From the documentation,

Overview Use appPrices to retrieve the price tier that corresponds to your app’s App Store price and the date the price went into effect. This resource is read-only.  To set a price for your app using App Store Connect API, create a relationship between the apps resource and appPrices. For more information, see Set a price for your app.

Set a Price links to the use of AppStoreConnect page. I understand that API is just the AppstoreConnect interface, not a way to set the price programmatically.

  • That's what I'm seeing too, but I need a way to do it through the API. But thanks for the feedback

  • That's what I'm seeing in the API, but I need it to be through the API. The interface is now very restricted on how much I can schedule so it makes more sense at this point for me to be able to update pricing on demand and manage the schedule on my own server.

  • This is not an answer, it is just repeating what my question said. There are also a few follow up replies that could use some attention.

Add a Comment

I understand how to use the web interface, but I need to be able to do this programmatically.

According to: https://developer.apple.com/app-store-connect/api/ this should be possible.

Under Pricing and Availability it clearly states:

Set your app’s pricing and territory availability. Access reference information, such as a list of available App Store territories, app price tiers, and proceeds for currencies that the App Store supports.

So Is it possible to set a price using the API, and if so what endpoint should I be sending to?

I still feel like this is an important question as the documentation is not clear and it does not match the capabilities of the API.

More importantly the ability to adjust pricing on an app via the AppStoreConnect API would help small developers to manage their products. The web interface for AppStoreConnect is horribly slow, poorly architected and non-intuitive. An API interface would be a much more reasonable approach for dealing with pricing.

As a followup to my last reply about the AppStoreConnect web interface being poorly architected. I think it's important to point out that the Pricing and Availability portion of the site does not state the Current Price of the app. Kinda seems like a good place for it though.

It also seems that the API for fetching the price of an app has changed and it is now returning a 409 for what was a reliable request. Maybe that's related?

While trying to debug the above 409 response (which is an undocumented response) I discovered this:

https://developer.apple.com/documentation/appstoreconnectapi/add_a_scheduled_price_change_to_an_app

On this page it describes a way to add a price change to an app as a scheduled event. The documentation is incomplete however because it does not show a sample of the POST payload. Instead it links to the 'object' that is to be sent but that documentation is a rabbit hole of objects that are documented very poorly as well. An example payload would be a much better way to document this call.

However, on that page there is a large red box with a warning that says, "If you use this endpoint to add a scheduled price change to your app, you can’t use AppPriceInlineCreate to change your app’s price."

So YES there is a way to change your app's price in the API. You do so by using the poorly documented AppPriceInlineCreate object.

But the question remains, what is the endpoint for making this request, and what exactly is Value: appPrices which is a required part of AppPriceInlineCreate

You aren’t the first to post here about this API being over-complicated and poorly documented - though most have been asking about IAP pricing, rather than apps. (See the “App Store Connect API” forum tag for more posts.)

Personally, I’m hoping that there will be an easy-to-use utility on Github before I need to deal with this myself!

  • Thanks for the suggestion, I'll take a look.

    The most difficult thing I have hit in this API is the auth, mainly because there is no native (and simple) JWT builder in Swift. Would be nice to have that rolled into CryptoKit.

    Second most difficult thing is figuring out how many strings you have to pull to get the one piece of information you need. Maybe when we get to v5 they will clean it up.

Add a Comment

Still looking to hear from Apple on the documentation. I realize the changes are a month old but the documentation should have been part of the development process (DocC) so it's strange that only pieces of the public Docs have been updated. If I have missed something in the documentation, please let me know.

Can someone from Apple please let me know if this section of the API is currently in flux? It is amazing that the documentation is not keeping up and that I can't get an answer to (what I believed to be) a simple question.

I know I'm not the only one interested in an answer here, there are currently 387 people watching me shout into the void trying to find an answer.

For those watching this thread (463 of you), thank you for hanging in there. As you can see there is no clarification from Apple so far.

I would file a 'Feedback' but I've been told by a former Apple employee that unless it's filed internally it's largely ignored. That's why those of you with a rep are asked to provide the Feedback ID to the rep, so they can actually get eyes on it.

Apparently they treat the forums the same way. One ****** answer so far on this thread from Apple and then silence. Thank goodness for StackOverflow am I right?

So to recap:

• the API appears to be in flux.

• It's not clear if the API supports setting pricing for an app

• It seems that it is possible to schedule price changes for an app but that is not entirely clear either

• The AppPriceInlineCreate object appears to be the trick to setting a price, but there is no documentation on it's use that I have been able to find

• Documentation for AppPriceInlineCreate is really bad

• Apple's scheduled pricing changes happen on UTC time (in case you guys didn't know that one)

I'm 6 months into trying to solve this problem and 4 months of that is waiting for a coherent answer from Apple.

Well we just finished WWDC 2023 and there were some updates announced for the AppStore API and pricing but nothing related to setting individual prices, the documentation has not been updated and there is no additional information related to the AppPriceInlineCreate call or the AppPrices object is. There is also no information about what endpoint the AppPriceInlineCreate call should be sent to.

I know there were several session where we were told that Apple Developers actually read these threads and the Feedback forms that we submit but I have to say that I am not seeing any evidence of that.

@Claude31 I'm guessing your initial copy/paste of my question is the only answer I'm going to get on this entire 5 month long reply marathon. Or now that WWDC is over is there a chance that you might re-visit this thread, get up to speed and have a better answer?

I just discovered another feature of the API. The recently updated developer agreement blocks access to parts of the AppStoreConnect API until you accept it.

More specifically, the API continues to work as expected but for the portions affected by the agreement errors are returned. The response from the API for the affected endpoints does explain why the call was rejected, but the rejection response is not described in the documentation so you have to receive it to know what it is.

Kinda makes it hard to react when you can't anticipate the response.

Still no word from Apple on setting individual pricing. If anyone has suggestions I'm still looking for a solution.

Ok, how about this. Is there a way for me to report incomplete DocC in the online documentation or even ask questions? Sometimes the DocC content is vague and/or confusing and in other places (as noted above) it just doesn't exist.

I'm not going to file a 'Feedback Request' for a tool to report bad DocC to Apple, consider this my feedback and if this is a feature request please fill out the form for me and respond with the tracking number.

I'd also like to assist Apple's developers in improving their documentation by providing links to some helpful videos concerning DocC:

https://developer.apple.com/wwdc22/110369

https://developer.apple.com/wwdc23/10244

There is also a guy named Ethan that works at Apple that could help your developers to augment their documentation so I and the other 670+ developers looking for the answer to this question can find results without writing books of responses in hope of getting someone at Apple to respond.

Still no word from Apple on setting individual pricing. If anyone has suggestions I'm still looking for a solution.

I wrote up how I set IAP pricing here:

https://developer.apple.com/forums/thread/732527

You want to set the app's price, right? That's not the same, but maybe my notes will give you some clues.

Is there a way for me to report incomplete DocC in the online documentation

File a bug, ha ha.

or even ask questions?

You can ask here. Or Stack Overflow.

I really appreciate you sharing that link, I will take a look for sure.

I get that Stack Overflow is WAY better than here. (Obviously if you read this far) The point is that I can't find the solution on SO, and I can't find the solution in the docs even though there are hints of it.

To be honest it's just sad. And that's putting it nicely.

Thanks again for the link, I'll check it out. Like you said, that is IAP not store pricing but there might be a clue there.

Yeah, that's not quite the same. I wish it was though.

The request sent from the AppStoreConnect website to set store prices is a PATCH request and it sends the full schedule every time you add a single scheduled price change. (Instead of just sending the one change you create). That's why they've limited how far out you can schedule price changes, it takes too long for their servers to process the request if you go over a certain number of price changes in a single request.

It would be so much nicer if I could just schedule the changes on my end and send single requests saying "change the current price to X right now". It would be one change, it would be a single call and some date math on my end.