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.7k
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.6k
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
858
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
636
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
379
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
479
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
403
Apr ’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
772
Dec ’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
571
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
631
May ’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
357
Aug ’25
Recommended way to detect when a user has joined your team via App Store Connect API?
I'm using App Store Connect API to automate onboarding/off-boarding user invitations for my team members when they start working on my app. Once devs join the team, I'd like to invite them to the specific app's beta test group. This requires some additional work after the user has joined the team because unlike visibleApps, there's no way to initially indicate the beta test groups that a user should have access to. One challenge I'm finding is that people don't immediately join the team on time so polling feels a bit excessive/wasteful. Is there some recommended mechanism for adding users to the internal test flight group, or is there a way to trigger a webhook when the list of users is updated. I noticed that there's a new /v1/marketplaceWebhooks API so I imagine this is the recommended format for registering callbacks. Any assistance here would be greatly appreciated.
1
16
549
Jun ’25
App Store Connect analytics reports return 500 API error
Call to analytics reports API randomly returns 500, sometimes more than 5 times in a row. Example URL I used: https://api.appstoreconnect.apple.com/v1/analyticsReportInstances/{report_instance_id}/segments. I have noticed that getting instance first by calling https://api.appstoreconnect.apple.com/v1/analyticsReportInstances/{report_instance_id} and then immediately after getting segments: https://api.appstoreconnect.apple.com/v1/analyticsReportInstances/{report_instance_id}/segments sometimes helps. Issue started at around March 27th 2025.
2
1
159
Apr ’25
Create app in Appstore using AppStoreConnect API is giving an error.
Hello Apple Developer Team, I've followed the AppStoreConnect API documentation and created the following: I've created a API Key in App store > Integrations > Teams key, gave the role as admin. Created a valid JWT token When fetching the GET v1/apps, I can see the list of apps. Also I was able to make GET v1/users as well successfully. I've the valid bundle Id and capabilities enabled in the developer portal. Facing an issue while creating an app in App Store using AppStoreConnect API using POST call: This is my ruby script: response = api_request( method: :post, path: "/v1/apps", token: token, body: { data: { type: 'apps', attributes: { name: APP_NAME, primaryLocale: LOCALE, sku: "SKU#{Time.now.to_i}", bundleId: BUNDLE_ID, platform: 'IOS' } } } ) It gives me below error: { "errors": [ { "id": "09b465fc-316f-47b4-9bc3-9c340cb966aa", "status": "403", "code": "FORBIDDEN_ERROR", "title": "The given operation is not allowed", "detail": "The resource 'apps' does not allow 'CREATE'. Allowed operations are: GET_COLLECTION, GET_INSTANCE, UPDATE" } ] } Did anyone was able to successfully create the app in App Store via AppStoreConnect API? Could you please help me identify the root cause for the above issue and provide some inputs so that I could work on resolving them and move forward in the deployment process. Appreciate your help in reviewing this. Thank you, Santosh
0
0
228
Apr ’25
How to receive backend notifications for consumable purchases in production?
Hi everyone, I'm implementing the server-to-server notifications for in-app purchases. According to the official documentation, the ONE_TIME_CHARGE notification is only available in the sandbox environment: "The ONE_TIME_CHARGE notification is currently available only in the sandbox environment." So my question is: what is the correct flow to receive a backend notification when a user purchases a consumable product in the production environment? I'm looking for a reliable way to know, on the server side, when a user has made a consumable purchase. Thanks in advance to anyone who can help!
0
1
121
Apr ’25
Can't create Api key for API App Store Connect
1 Steps to reproduce the issue Login in Account/ Go to https://appstoreconnect.apple.com/. Open users and permission. Open integration tab. Select API App Store Connect. Click Team Keys. Click Generate API Key. Input name "MyTracker", role: Admin. Catch 401 status from Api and reload page. 2 Approximate date and time the error occurred (including the time zone) Errors were on: Tue, 08 Apr 2025 06:46:20 GMT Tue, 08 Apr 2025 06:16 GMT 3 Curl example curl 'https://appstoreconnect.apple.com/iris/v1/apiKeys' \ -H 'accept: application/vnd.api+json, application/json, text/csv' \ -H 'accept-language: ru,en;q=0.9' \ -H 'content-type: application/json' \ -H 'cookie: s_fid=6541AF9921104763-34AED62C094B846F; s_vi=[CS]v1|33F13BA8D23DEE97-4000106C0143A1DE[CE]; geo=FR; s_cc=true; s_sq=%5B%5BB%5D%5D; dslang=RU-RU; site=RUS; myacinfo=DAWTKNV323952cf8084a204fb20ab2508441a07d02d32f8cc74eda7d840cbff380867b48ae61921e5fb806faa4770c7d1e65515527094328232e18ce49ddca803e8229f778c921e2d83762d354b4902f941bae81b0e1f738b89100ca0e82a1901de7585abdb32c8c980be6b7a47d4dde8f8bda6c5d03bf99ed849a690050715cab6829c2bc116b2588dca6feae7d042f27dea63722388d6272430c3b987f297740a531df86c75086e6e0960340c3d5fb9a0b90da907a996f1d0710e1f4215ab62bea759468d26ecd1177667fa7d05e14d84b1f4e66048c66777c1d2c3fb7a9f7ab07bdad8452f1e56f1d5b4e365da415001aa60cdeb08c68fe5e7125284bae547cc1f27315459f61826d11232844810780d327fceb5db6768631ac678471584b6b59f69c3128400dd1a3db929b3e5e390e431623d0c77d31d7d44b49ee8d08dec56a83868f36629134b4b4806591eda69dcb6939cb0a54370f05d11769c9283a3b0566a23d52f82bfc11544d863a8a07ed0a4f2d59db20c9bfe40217f98deb42ca13e9c85aba0a16b9b8a3141a783cdf266729db12ce4fcd1f17dc1d7b16b836dab9081704b3ac0dc5ceac7851e9d4ff2c68bb2cc83e55b90cd0133ffc8565f2293e3630d8830d2871b4ab84b0043c8dda6edffc38375cb458ee9634e0a5fe3078f87d5875e0897b9a3b5804cc8d4760ffd20ffe87519172ea1a4da0a98de891602c9fcf97bf815ec291d84f8a695ce55c9e3f01ebc2585a47V3; dc=mr; itcdq=1; itctx=eyJjcCI6IjY5YTZkZThmLTUyNzAtNDdlMy1lMDUzLTViOGM3YzExYTRkMSIsImRzIjo4MjYxNTE4MzcsImV4IjoiMjAyNS00LTMgMTM6NTI6MjUifQ|68514fe2u1t0bkchgl0b4k23l6|D4t-773HLB5TsnD_wkdpMbohlYo; dqsid=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NDM2NTk1NDUsImp0aSI6ImVUUXVWQkNDVXRvUmlWSVBjNjA1WHcifQ.wGWdmFV35or5YDdjPKBbiPSuUFzUmTgK-wpY3sEEUes; wosid=ukMqpuv39tKgefzCK1YAC0; woinst=227078' \ -H 'origin: https://appstoreconnect.apple.com' \ -H 'priority: u=1, i' \ -H 'referer: https://appstoreconnect.apple.com/access/integrations/api' \ -H 'sec-ch-ua: "Chromium";v="130", "YaBrowser";v="24.12", "Not?A_Brand";v="99", "Yowser";v="2.5"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "Linux"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 YaBrowser/24.12.0.0 Safari/537.36' \ -H 'x-csrf-itc: [asc-ui]' \ --data-raw '{"data":{"type":"apiKeys","attributes":{"allAppsVisible":true,"keyType":"PUBLIC_API","nickname":"MyTracker","roles":["ADMIN"]}}}' 4 Username of each user experiencing the issue username: UNIT6.ru @ apple's account unit6ru@icloud.com 5 Web browsers that you were able to reproduce the issue in Google Chrome 6 Web browser version numbers version 134.0.6998.179 (Official build), (64 bit)
0
1
279
Apr ’25
Requesting Code-Level Support: Node.js Script to Fetch US Education Apps with "Exam Prep" by Revenue
Hi Apple Developer Support, I’m working on a Node.js script to fetch all apps listed under the Education category and Reference subcategory from the US App Store, where the app name includes "exam prep". My goal is to list these apps in descending order of their earned revenue (including both paid apps and those with subscriptions). To proceed, I’m looking for guidance or code-level support on: Accessing App Store metadata programmatically via Apple-approved APIs. Filtering apps by category, subcategory, and keywords in the app name. Sorting the result set by revenue (paid and subscription earnings). Is there any recommended API or service (official or via App Store Connect) that I should be using to achieve this? Appreciate any direction, documentation, or sample code that can help. Thanks in advance!
0
0
139
Apr ’25
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
Replies
5
Boosts
2
Views
2.7k
Activity
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?
Replies
4
Boosts
0
Views
1.6k
Activity
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?
Replies
9
Boosts
6
Views
1.9k
Activity
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.
Replies
2
Boosts
0
Views
858
Activity
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.
Replies
4
Boosts
1
Views
1.5k
Activity
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".
Replies
1
Boosts
0
Views
636
Activity
Aug ’25
When will ONE_TIME_CHARGE notification type become available for production?
Sever notifications v1 is already deprecated and we are supposed to use the new v2 server notifications and yet arguably the most important notification type is not available for production.
Replies
7
Boosts
8
Views
1.6k
Activity
May ’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" ]
Replies
1
Boosts
0
Views
379
Activity
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!
Replies
2
Boosts
1
Views
479
Activity
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?
Replies
1
Boosts
0
Views
403
Activity
Apr ’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.
Replies
3
Boosts
1
Views
772
Activity
Dec ’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!
Replies
1
Boosts
0
Views
571
Activity
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!
Replies
1
Boosts
1
Views
631
Activity
May ’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.
Replies
2
Boosts
1
Views
357
Activity
Aug ’25
Recommended way to detect when a user has joined your team via App Store Connect API?
I'm using App Store Connect API to automate onboarding/off-boarding user invitations for my team members when they start working on my app. Once devs join the team, I'd like to invite them to the specific app's beta test group. This requires some additional work after the user has joined the team because unlike visibleApps, there's no way to initially indicate the beta test groups that a user should have access to. One challenge I'm finding is that people don't immediately join the team on time so polling feels a bit excessive/wasteful. Is there some recommended mechanism for adding users to the internal test flight group, or is there a way to trigger a webhook when the list of users is updated. I noticed that there's a new /v1/marketplaceWebhooks API so I imagine this is the recommended format for registering callbacks. Any assistance here would be greatly appreciated.
Replies
1
Boosts
16
Views
549
Activity
Jun ’25
App Store Connect analytics reports return 500 API error
Call to analytics reports API randomly returns 500, sometimes more than 5 times in a row. Example URL I used: https://api.appstoreconnect.apple.com/v1/analyticsReportInstances/{report_instance_id}/segments. I have noticed that getting instance first by calling https://api.appstoreconnect.apple.com/v1/analyticsReportInstances/{report_instance_id} and then immediately after getting segments: https://api.appstoreconnect.apple.com/v1/analyticsReportInstances/{report_instance_id}/segments sometimes helps. Issue started at around March 27th 2025.
Replies
2
Boosts
1
Views
159
Activity
Apr ’25
Create app in Appstore using AppStoreConnect API is giving an error.
Hello Apple Developer Team, I've followed the AppStoreConnect API documentation and created the following: I've created a API Key in App store > Integrations > Teams key, gave the role as admin. Created a valid JWT token When fetching the GET v1/apps, I can see the list of apps. Also I was able to make GET v1/users as well successfully. I've the valid bundle Id and capabilities enabled in the developer portal. Facing an issue while creating an app in App Store using AppStoreConnect API using POST call: This is my ruby script: response = api_request( method: :post, path: "/v1/apps", token: token, body: { data: { type: 'apps', attributes: { name: APP_NAME, primaryLocale: LOCALE, sku: "SKU#{Time.now.to_i}", bundleId: BUNDLE_ID, platform: 'IOS' } } } ) It gives me below error: { "errors": [ { "id": "09b465fc-316f-47b4-9bc3-9c340cb966aa", "status": "403", "code": "FORBIDDEN_ERROR", "title": "The given operation is not allowed", "detail": "The resource 'apps' does not allow 'CREATE'. Allowed operations are: GET_COLLECTION, GET_INSTANCE, UPDATE" } ] } Did anyone was able to successfully create the app in App Store via AppStoreConnect API? Could you please help me identify the root cause for the above issue and provide some inputs so that I could work on resolving them and move forward in the deployment process. Appreciate your help in reviewing this. Thank you, Santosh
Replies
0
Boosts
0
Views
228
Activity
Apr ’25
How to receive backend notifications for consumable purchases in production?
Hi everyone, I'm implementing the server-to-server notifications for in-app purchases. According to the official documentation, the ONE_TIME_CHARGE notification is only available in the sandbox environment: "The ONE_TIME_CHARGE notification is currently available only in the sandbox environment." So my question is: what is the correct flow to receive a backend notification when a user purchases a consumable product in the production environment? I'm looking for a reliable way to know, on the server side, when a user has made a consumable purchase. Thanks in advance to anyone who can help!
Replies
0
Boosts
1
Views
121
Activity
Apr ’25
Can't create Api key for API App Store Connect
1 Steps to reproduce the issue Login in Account/ Go to https://appstoreconnect.apple.com/. Open users and permission. Open integration tab. Select API App Store Connect. Click Team Keys. Click Generate API Key. Input name "MyTracker", role: Admin. Catch 401 status from Api and reload page. 2 Approximate date and time the error occurred (including the time zone) Errors were on: Tue, 08 Apr 2025 06:46:20 GMT Tue, 08 Apr 2025 06:16 GMT 3 Curl example curl 'https://appstoreconnect.apple.com/iris/v1/apiKeys' \ -H 'accept: application/vnd.api+json, application/json, text/csv' \ -H 'accept-language: ru,en;q=0.9' \ -H 'content-type: application/json' \ -H 'cookie: s_fid=6541AF9921104763-34AED62C094B846F; s_vi=[CS]v1|33F13BA8D23DEE97-4000106C0143A1DE[CE]; geo=FR; s_cc=true; s_sq=%5B%5BB%5D%5D; dslang=RU-RU; site=RUS; myacinfo=DAWTKNV323952cf8084a204fb20ab2508441a07d02d32f8cc74eda7d840cbff380867b48ae61921e5fb806faa4770c7d1e65515527094328232e18ce49ddca803e8229f778c921e2d83762d354b4902f941bae81b0e1f738b89100ca0e82a1901de7585abdb32c8c980be6b7a47d4dde8f8bda6c5d03bf99ed849a690050715cab6829c2bc116b2588dca6feae7d042f27dea63722388d6272430c3b987f297740a531df86c75086e6e0960340c3d5fb9a0b90da907a996f1d0710e1f4215ab62bea759468d26ecd1177667fa7d05e14d84b1f4e66048c66777c1d2c3fb7a9f7ab07bdad8452f1e56f1d5b4e365da415001aa60cdeb08c68fe5e7125284bae547cc1f27315459f61826d11232844810780d327fceb5db6768631ac678471584b6b59f69c3128400dd1a3db929b3e5e390e431623d0c77d31d7d44b49ee8d08dec56a83868f36629134b4b4806591eda69dcb6939cb0a54370f05d11769c9283a3b0566a23d52f82bfc11544d863a8a07ed0a4f2d59db20c9bfe40217f98deb42ca13e9c85aba0a16b9b8a3141a783cdf266729db12ce4fcd1f17dc1d7b16b836dab9081704b3ac0dc5ceac7851e9d4ff2c68bb2cc83e55b90cd0133ffc8565f2293e3630d8830d2871b4ab84b0043c8dda6edffc38375cb458ee9634e0a5fe3078f87d5875e0897b9a3b5804cc8d4760ffd20ffe87519172ea1a4da0a98de891602c9fcf97bf815ec291d84f8a695ce55c9e3f01ebc2585a47V3; dc=mr; itcdq=1; itctx=eyJjcCI6IjY5YTZkZThmLTUyNzAtNDdlMy1lMDUzLTViOGM3YzExYTRkMSIsImRzIjo4MjYxNTE4MzcsImV4IjoiMjAyNS00LTMgMTM6NTI6MjUifQ|68514fe2u1t0bkchgl0b4k23l6|D4t-773HLB5TsnD_wkdpMbohlYo; dqsid=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NDM2NTk1NDUsImp0aSI6ImVUUXVWQkNDVXRvUmlWSVBjNjA1WHcifQ.wGWdmFV35or5YDdjPKBbiPSuUFzUmTgK-wpY3sEEUes; wosid=ukMqpuv39tKgefzCK1YAC0; woinst=227078' \ -H 'origin: https://appstoreconnect.apple.com' \ -H 'priority: u=1, i' \ -H 'referer: https://appstoreconnect.apple.com/access/integrations/api' \ -H 'sec-ch-ua: "Chromium";v="130", "YaBrowser";v="24.12", "Not?A_Brand";v="99", "Yowser";v="2.5"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "Linux"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 YaBrowser/24.12.0.0 Safari/537.36' \ -H 'x-csrf-itc: [asc-ui]' \ --data-raw '{"data":{"type":"apiKeys","attributes":{"allAppsVisible":true,"keyType":"PUBLIC_API","nickname":"MyTracker","roles":["ADMIN"]}}}' 4 Username of each user experiencing the issue username: UNIT6.ru @ apple's account unit6ru@icloud.com 5 Web browsers that you were able to reproduce the issue in Google Chrome 6 Web browser version numbers version 134.0.6998.179 (Official build), (64 bit)
Replies
0
Boosts
1
Views
279
Activity
Apr ’25
Requesting Code-Level Support: Node.js Script to Fetch US Education Apps with "Exam Prep" by Revenue
Hi Apple Developer Support, I’m working on a Node.js script to fetch all apps listed under the Education category and Reference subcategory from the US App Store, where the app name includes "exam prep". My goal is to list these apps in descending order of their earned revenue (including both paid apps and those with subscriptions). To proceed, I’m looking for guidance or code-level support on: Accessing App Store metadata programmatically via Apple-approved APIs. Filtering apps by category, subcategory, and keywords in the app name. Sorting the result set by revenue (paid and subscription earnings). Is there any recommended API or service (official or via App Store Connect) that I should be using to achieve this? Appreciate any direction, documentation, or sample code that can help. Thanks in advance!
Replies
0
Boosts
0
Views
139
Activity
Apr ’25