App Store Connect API

RSS for tag

The App Store Connect API helps you automate tasks usually done on the Apple Developer website and App Store Connect.

App Store Connect API Documentation

Posts under App Store Connect API subtopic

Post

Replies

Boosts

Views

Activity

How to retrieve the App Icon?
I need to get the app icon from the AppStore Connect API in order to display a list of my apps. However there seems to be no way. I See in the appstoreconnect.apple.com website that the icons are there and available, there is even a function where you can click on it and get the high res version: https://appstoreconnect.apple.com/apps/1504874998/distribution/ios/version/deliverable (this link is of course not available from the outside) I tried builds/{id}/icons which always returns nothing and found an iconAssetToken object in the builds array, but the link is weirdly formatted and leads to nothing. Hope someone can help, I'm fairly new to the API and the usage is quite odd for me so far. Best, Nils
5
2
2.6k
Oct ’25
Data gaps on App Store Analytics API reports
Hey all, It's been now a few weeks since we started to help clients connect to their App Store Analytics API. I'm starting to notice that very often we'll see things like: Small data gaps. Eg. I have data on June 1, no data on June 2-4, and then data from June 5 to now Big data gaps. Eg. I'd have data on Jan 2024, but not on Feb-Mar 2024, then there's data again from April 2024 onwards. The actual files from Apple are like that we're not doing any treatments whatsoever. That's happening on both ONGOING and ONE_TIME_SNAPSHOT I also opened a Customer Support case and sent the files over 10 days ago, but no definitive answer so far. Are you also seeing gaps like this on your data? Any tips/recommendations?
4
0
1.5k
Dec ’25
Analytics Reports API response only returns empty data array
I am following the Downloading Analytics Reports guide which consists of five steps: request the ONGOING report generation for the app once list all analytics report requests for the app list all analytics reports based on the analytics report request id :x: list all analytics report instances based on the analytics report id list all segments of the analytics report instance to get the download url I can only complete the third step which returns a list of all available reports. However when I continue with step four, the request for the analytics report instances returns with a response code 200 but the data array is always empty: I am using the Home Screen Widget Installs report but this is also happening for other reports Also changing or omitting the filter doesn't change anything { "data": [], "links": { "self": "https://api.appstoreconnect.apple.com/v1/analyticsReports/{reportId}/instances?filter%5Bgranularity%5D=DAILY" }, "meta": { "paging": { "total": 0, "limit": 50 } } } What could be the reason that the data array is empty and how can I fix it because there is no error message?
9
6
1.9k
Oct ’25
App Store Notification
Hello, I am developing App Store Server to Server Notifications. (The app has already been deployed and is in operation.) Test notifications in both the Sandbox and Production environments have been working correctly. Additionally, I tested in-app purchases using a Sandbox account and confirmed that the server notifications are received. However, when an actual purchase is made in the live app, the server notifications are not received. Please provide the possible causes and solutions for this issue.
2
0
843
May ’25
Unable to recreate a ONE_TIME_SNAPSHOT analytics report
Previously created a one time snapshot report that was later deleted. Trying to recreate it but keeping getting a 409. Been already a week since it was deleted. Error message { "errors" : [ { "id" : "b0d8d738-1744-463d-bdcf-a48fbfa5d715", "status" : "409", "code" : "STATE_ERROR", "title" : "The request cannot be fulfilled because of the state of another resource.", "detail" : "You already have such an entity" } ] } Reports request only returns the ONGOING reports link no ONE_TIME_SNAPSHOT . Wonder if it takes time although unlikely or might it be a cache or similar causing the problem.
4
1
1.5k
Jul ’25
Promotional Offer ID column is empty in Subscriber report for redeemed offer code
When redeeming a custom offer code, I'm not able to see the actual offer code ID in the Subscriber report - only the subscription offer name is present. I'm going off of the documentation for the Promotional Offer ID column: A code that you create for customers to enter and redeem the subscription offer. https://developer.apple.com/help/app-store-connect/reference/subscriber-report Is the documentation wrong? How are we supposed to measure the performance of our offer codes beyond the initial redemption? For example, with the offer name I can see how my "Holiday Promos" offer is doing but can't see the actual performance of "BLACKFRIDAY30" vs "MOTHERSDAY30".
1
0
617
Aug ’25
JWT Fails with Individual Key on App Store Server API
We want to use the App Store Server API for in-app purchase validation. Due to circumstances, we cannot use the team-based private key (team key) and must use an individual authentication key. However, the JWT authentication keeps failing when using the individual key. Could there be an issue with our code? $jwtHeaderArray = [ 'alg' => 'ES256', 'kid' => $this->KID_ID, 'typ' => 'JWT' ]; $jwtBodyArray = [ 'sub' => 'user', 'aud' => $this->ACCESS_TOKEN_AUD, 'iat' => time(), 'exp' => time() + 3600, "scope" => [ "GET /inApps/v1/transactions" ]
1
0
373
Apr ’25
ConsumptionRequest fields
As part of ConsumptionRequest fields there's a bit of unclarity. In my case I am only concerned with subscriptions, as they give some premium features in the app. The fields and the questions are the following: playTime: is this the time used in the app in total or just the time the app has been used while using the subscription? consumptionStatus: does this relate only to the user using the premium features he/she paid for? or the fact that the user had access to those features only? Thanks!
2
1
458
Oct ’25
Get the list of distribution certificates from app connect api
I'm trying to use the App Store Connect API to get the list of expired certificates. When I make the web service call: https://api.appstoreconnect.apple.com/v1/certificates I'm able to get the list of developer certificate. The distribution certificates are not included in the list. According to the docs, I should all of them in the result set. Is there any thing special that needs to be added the web service call to have the distribution certs included in the result set?
1
0
383
Apr ’25
API calls to get screenshots not working.
Hi am new to App Store Connect api calls. First tried all apps url and it works(let url = URL(string: "https://api.appstoreconnect.apple.com/v1/apps")! ) But I want to get screenshots for an app. and it gives an error. JWT Payload: { aud = "appstoreconnect-v1"; exp = "761634503.157082"; iat = "761633363.157082"; iss = "69a6de6e-6715-47e3-e053-5b8c7c11a4d1"; scope = ( "GET /v1/apps/{appId}/appScreenshotSets", "GET /v1/apps" ); } let url = URL(string: "https://api.appstoreconnect.apple.com/v1/apps/\(appId)/appScreenshotSets")! HTTP Status Code: 400 ["errors": <__NSSingleObjectArrayI 0x600000010320>( { code = "ENTITY_INVALID"; detail = "Invalid scope GET /v1/apps/{appId}/appScreenshotSets"; id = T6VMMMF3V4NGO7Z3AO4AHOU2QI; links = ""; status = 400; title = "JSON processing failed"; } ) ]
1
0
370
Feb ’25
metadata file in .itmsp file (Transporter)
I am attempting to upload an application to the app store. The selected method was using Transporter through terminal commands. In this sense, I keep receiving a metadata error which is as follows : Command (Assume values are filled in) /usr/local/itms/bin/iTMSTransporter -m upload \ -u "MY_EMAIL" \ -p "YOUR_APP_SPECIFIC_PASSWORD" \ -f "/Users/isseyyohannes/Desktop/ALGORA_Performance.itmsp" \ --asc-provider "GL5BCCW69X" -v detailed I receive the following error Package Summary: 1 package(s) were not uploaded because they had problems: /Users/isseyyohannes/Desktop/ALGORA_Performance.itmsp - Error Messages: ERROR ITMS-3000: "Line 9 column 25: element "data_file" incomplete; missing required elements "checksum" and "size" at XPath /package/software_assets/asset/data_file" ERROR ITMS-3000: "Line 12 column 24: element "software_metadata" not allowed here; expected the element end-tag or element "metadata_token" at XPath /package/software_metadata" ERROR ITMS-3000: "Line 13 column 19: element "software" not allowed here; expected the element end-tag or element "game_center", "in_app_purchases", "products", "read_only_info" or "versions" at XPath /package/software_metadata/software" ERROR ITMS-3000: "Line 16 column 28: element "bundle_id" not allowed anywhere; expected element "read_only_value" at XPath /package/software_metadata/software/read_only_info/bundle_id" ERROR ITMS-3000: "Line 17 column 30: element "app_version" not allowed anywhere; expected element "read_only_value" at XPath /package/software_metadata/software/read_only_info/app_version" ERROR ITMS-3000: "Line 18 column 33: element "product_family" not allowed anywhere; expected element "read_only_value" at XPath /package/software_metadata/software/read_only_info/product_family" ERROR ITMS-3000: "Line 19 column 30: element "read_only_info" incomplete; missing required element "read_only_value"" ERROR ITMS-3000: "Line 20 column 20: element "software" incomplete; expected element "software_assets" or "software_metadata"" ERROR ITMS-3000: "Package "null" failed schema validation." [2025-02-19 15:45:07 EST] <main> DBG-X: Returning 1 Essentially just a bunch of warnings about my metadata file which I edited manually to read the following <?xml version="1.0" encoding="UTF-8"?> <package version="software5.10" xmlns="http://apple.com/itunes/importer"> <provider>GL5BCCW69X</provider> <team_id>GL5BCCW69X</team_id> <software_assets> <asset type="bundle"> <data_file> <file_name>ALGORA_Performance.pkg</file_name> <checksum type="sha1">7acb9fcb19eb203bdc6038f88d06a67386900b28</checksum> <size>75619323</size> </data_file> </asset> <software_metadata> <software> <vendor_id>93274081</vendor_id> <read_only_info> <read_only_value key="bundle_id">com.algora.ALGORA-Performance</read_only_value> <read_only_value key="app_version">0.0.0</read_only_value> <read_only_value key="product_family">macOS</read_only_value> </read_only_info> </software> </software_metadata> </software_assets> </package> Last note is that I manually created the metadata.xml file and moved it via local terminal for fear of having to use XCode which I am not familiar with. ANY HELP IS APPRECIATED
1
0
530
Feb ’25
How to build reliable Analytics integration via API?
Hey there, I'm building a service that requires receiving accurate app downloads and sales/proceeds data along with the campaign name. From reading the documentation it looks to be fairly understandable, but in practice it is not that straightforward. For example, I received the first one-time-snapshot detailed report for the App Store Purchases, and it contains partial data for several days. Shouldn't that be a full report of everything in analytics for like last year or so? Should I expect it to be updated and extended in the coming days? For the ongoing detailed report, I have not received anything yet, but I'm afraid it might have partial data as well. I will report here as well.
3
1
719
Dec ’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
372
Feb ’25
Empty "App Store Purchases Detailed" Analytics Report
Hey there, I'm building a service that requires receiving accurate sales/proceeds data along with the campaign name. From reading the documentation it looks to be fairly understandable, but in practice it is not. I have been testing this for almost a week, and I never got "Detailed Report" for "App Store Purchases Detailed" analytics report. The same report for "App Downloads Detailed" is arriving normally, but not to for the purchases. I tested for two different apps where I have around 200 daily installs and 30 purchases on each. I would love to get any thoughts on this from an Apple engineer!
1
0
490
Dec ’25
ONE_TIME_CHARGE notification type in Production
Hello, We've integrated App Store Server Notifications V2 in our system. We are heavily relying on the ONE_TIME_CHARGE notification type to handle Consumable purchases, but this notification type is available only for Sandbox. And this is for a while now - starting with June 10th 2024 ( https://developer.apple.com/documentation/appstoreservernotifications/app-store-server-notifications-changelog#June-10-2024 ). Can you please provide a timeline for when the ONE_TIME_CHARGE notification type will be available in Production ? Thank you!
1
1
614
May ’25
Finance Report API - no data
I'm querying the Finance Report api to get a January report for my app, yet no data is present. It's now March 3rd, and executing the following query results in a 404. url_financial = ( "https://api.appstoreconnect.apple.com/v1/financeReports" "?filter[regionCode]=ZZ" "&filter[reportDate]=2025-05" "&filter[reportType]=FINANCE_DETAIL" "&filter[vendorNumber]=redacted" ) If I change the report date to 2024-04, I get December, yet January is still unavailable. I understand that Apple's fiscal calendar does not follow the Gregorian calendar, however I'd expect that in March I could query the next period after December. Is this normal?
1
0
367
Mar ’25
Fetching app version release dates with App Store Connect API
What App Store Connect API endpoint(s) do I need to use to get the release dates of an app's various app versions? On App Store Connect itself, I can navigate to a given app and select "History", on the left side under General. See screenshot: In the screenshot, you can clearly see that version 1.9 became Ready for Distribution on Nov 12, 2024 at 3:28 AM, and that version 1.10 became Ready for Distribution on February 18, 2025 at 8:10 AM. However, I haven't been able to find to get any of these detailed status history via the App Store Connect API. Specifically I'm looking for release, or "go live", dates for the various versions of a given app. I'd have expected one of these API endpoints, or some combination thereof, to include this information in some way, but I'm just not finding it: GET https://api.appstoreconnect.apple.com/v1/apps/{id}/appStoreVersions GET https://api.appstoreconnect.apple.com/v1/appStoreVersions/{id} GET https://api.appstoreconnect.apple.com/v1/apps/{id}/builds GET https://api.appstoreconnect.apple.com/v1/apps/{id}/reviewSubmissions I've submitted FB16730940 and also via TSI.
2
1
337
Aug ’25