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

Post

Replies

Boosts

Views

Activity

"Request Access to the App Store Connect API" dialog box is broken
I'm trying to set up Keys for the App Store Connect API. The website first makes you acknowledge a 'terms and conditions' type dialog, but the dialog seems to be broken. The submit button spins forever and the browser console shows an error. I've tried on all the browsers, desktop and mobile, and it's the same behavior. Can someone help me get past this dialog box so I can access the Keys section of the site?
15
6
965
Oct ’23
All attempts to upload .ipa via iTMSTransporter failing with error in validateAssets method (1272)
We publish many apps using our CI/CD system that makes use of the App Store Connect API and iTMSTransporter. Since around 9:00am on 19 Oct 2023 (Melbourne/Australia time UTC+10), all our attempts to upload our .ipa files using iTMSTransporter began failing. The specific command line invocation is: /usr/local/itms/bin/iTMSTransporter -m upload -v eXtreme -f "/path/to/Bundle.itmsp" -jwt {jwt-here} The error is occurring in the midst of the upload with the error message: Apple's web service operation return value: [2023-10-20 09:35:09 AEDT] <main> DBG-X: parameter Errors = [An error occurred while trying to call the requested method validateAssets. (1272)] [2023-10-20 09:35:09 AEDT] <main> DBG-X: parameter RestartClient = false [2023-10-20 09:35:09 AEDT] <main> DBG-X: parameter ErrorCode = 1272 [2023-10-20 09:35:09 AEDT] <main> DBG-X: parameter ErrorMessage = An error occurred while trying to call the requested method validateAssets. (1272) [2023-10-20 09:35:09 AEDT] <main> DBG-X: parameter Success = false [2023-10-20 09:35:09 AEDT] <main> ERROR: An error occurred while trying to call the requested method validateAssets. (1272) [2023-10-20 09:35:09 AEDT] <main> DBG-X: The error code is: 1272 Is anyone else experiencing this issue? Is there any kind of work around or something we need to change? Some other notes: The same .ipa files can be successfully uploaded manually using Transporter This is affecting apps built against both XCode 14 and XCode 15 There was an outage shown on Apple's system status for a few hours that overlaps with this period, but Apple claim it was resolved 22 hours ago 🙃
2
0
500
Oct ’23
Updating contentRightsDeclaration now returns FORBIDDEN_ERROR
Recently I've started receiving a "FORBIDDEN_ERROR" error when submitting a PATCH to "/v1/apps/xxxx". The data below is what is being sent: { "data": { "type": "apps", "id": "xxxx", "attributes": { "contentRightsDeclaration": "DOES_NOT_USE_THIRD_PARTY_CONTENT" } } } This used to work (for over a year) fine. We also update several other things (Category, Age Rating, Available Territories etc) and they still work as expected; this is the only type that has started (about a month or so ago) to behave this way. I also generated a new API key with full Admin privileges but the issue still occurs. The specific error returned is: { "errors" : [ { "id" : "1cfb7772-940c-46d5-bfe5-a97bbe314", "status" : "403", "code" : "FORBIDDEN_ERROR", "title" : "This request is forbidden for security reasons", "detail" : "The API key in use does not allow this request" } ] } Any ideas how to fix this or what's going on? Thanks in advance.
2
0
590
Oct ’23
JWT token is getting rejected with error "Provide a properly configured and signed bearer token, and make sure that it has not expired."
I am trying to make an api call using a JWT token generated using App store connect api key. The token is rejected with the following error: "errors": [ { "status": "401", "code": "NOT_AUTHORIZED", "title": "Authentication credentials are missing or invalid.", "detail": "Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests https://developer.apple.com/go/?id=api-generating-tokens" } ] My header and payload are as follow: Header { "alg": "ES256", "kid": "<MY_KEY_ID>", "typ": "JWT" } Payload { "iss": "<MY_ISSUER_ID>", "aud": "appstoreconnect-v1", "iat": 1698333493, "exp": 1698333793 } I am unable to find what is wrong with my token. Can someone help me with this?
1
0
573
Oct ’23
App store connect API returns 401
Hello, following the practices use on: https://developer.apple.com/documentation/appstoreconnectapi/generating_tokens_for_api_requests I used Python, and uses pyjwt and request library in attempt of making requests I created my jwt header and payload like this jwt_header = { "alg": "ES256", "kid": MY_KEY_ID, "typ": "JWT" } jwt_payload = { "iss": MY_ISSUER_NUMBER, "iat": time_now, "exp": time_10_min, "aud": "appstoreconnect-v1" } and jwt can encode successfully without error jwt_token = jwt.encode(jwt_payload, MY_SECRET_KEY, algorithm="ES256", headers= jwt_header) but really when I try to make a get request with get_app_id_endpoint = "https://api.appstoreconnect.apple.com/v1/apps" headers = { 'Authorization': f'Bearer {jwt_token}', 'Content-Type': 'application/json' } response = requests.get(get_app_id_endpoint, headers=headers) it always gets a 401 response. Is there anything that need to be changed here? I have tried sosme of the solutions found online such as take out "alg" field in jwt_header take out "iat" field in jwt_payload cast time_now and time_10_min (UNIX epoch time) to integer take out Content-Type filed in headers but issue remains, what could I possible do here to get over it?
5
2
751
Oct ’23
[App Store Connect API] Failed to list sandbox testers and clear purchase history by 403 forbidden error
When attempting to list sandbox testers and clear purchase history through the App Store Connect API, the API Server returns a 403 forbidden error. I have set a correct token in the Authorization header, allowing me to list apps, users and bundleIds. Furthermore, I was able to list sandbox testers and clear purchase history successfully until two weeks ago. OK https://api.appstoreconnect.apple.com/v1/apps https://api.appstoreconnect.apple.com/v1/users https://api.appstoreconnect.apple.com/v1/bundleIds NG https://developer.apple.com/documentation/appstoreconnectapi/list_sandbox_testers https://developer.apple.com/documentation/appstoreconnectapi/clear_purchase_history_for_a_sandbox_tester use expired token { "errors": [ { "status": "401", "code": "NOT_AUTHORIZED", "title": "Authentication credentials are missing or invalid.", "detail": "Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests https://developer.apple.com/go/?id=api-generating-tokens" } ] } use not expired token { "servlet": "jersey", "message": "Forbidden", "url": "/iris/v2/sandboxTesters", "status": "403" }
1
1
521
Nov ’23
How to set desired price-points efficiently (API is sub-optimal and slow!)?
Hi, I am setting manual price-points for in-app purchases using API. Currently the procedure is extremly slow because to set the desired price-point like $4.99 I have to find it's ID, so I have to pull all price points for the specified territory to find price-point ID. What makes things even worser price-points can't be shared between in-app purchases, I mean the price-point of $4.99 in USA has different IDs for different in-app purchases. So changing prices for all in-app purchases and 50 countries takes a lot of time because each request is 2+ seconds. Besides from time to time the API returns 500 Internal Server Error :( Did I overlook something?
0
0
274
Nov ’23
Apple iTunes API, the financial report contains added information beyond the basic csv structure.
Hi, I'm downloading finance report from the Apple iTunes API (this one: https://developer.apple.com/documentation/appstoreconnectapi/download_finance_reports). I have two questions. Is there any way to choose between single file and multiple files download? I'm always getting one file, but in the documentation, there is a mention about the multiple files option. Therefore I would like to know if I can opt for the multiple files download and how? In the end of the downloaded file, there is some additional information like total rows count and totals for each of the currencies in that report. That is, however, not the case for e. g. the Sales reports. Why is the finance report different than the sales reports in this? Is there some option to skip the additional information?
0
0
279
Nov ’23
Delete Beta Tester API - Bug
Hi Apple team, I am using the appstore connect API for adding and deleting Beta testers. The Add tester API to Beta Group is creating a new resource ID - All good The Delete tester API to Beta Group - All good ISSUE: The List Beta Testers filter by email returns multiple testers entries and not just single resource. This list will keep increasing and having resources created with empty apps and groups. Ask: How can we remove the multiple entries from the list beta testers API as if i try using Delete Beta Testers API its returning 204 (No contents) and not (202 Accepted). Due to this the list goes huge for each add and remove in list user for single email. Any solution how to remove multiple resource entries.
1
2
284
Nov ’23
upload App Screenshots 409
request URL:https://api.appstoreconnect.apple.com/v1/appScreenshots request body: { "data": { "type": "appScreenshots", "attributes": { "fileSize": 11097, "fileName": "my_screenshot.png" }, "relationships": { "appScreenshotSet": { "data": { "type": "appScreenshotSets", "id": "54594240-5c4c-4a0f-add1-b4cb7e52d166" } } } } } response: { "errors": [ { "id": "9523fce2-5ca3-407e-8829-fd57f2011caa", "status": "409", "code": "ENTITY_ERROR.RELATIONSHIP.INVALID", "title": "The provided entity includes a relationship with an invalid value", "detail": "appScreenshotSets doesn't exist!!", "source": { "pointer": "/data/relationships/appScreenshotSet" } } ] }
1
1
319
Nov ’23
I want to obtain information about the app, but when calling the interface to request 401, the jwt token is set
request url :ttps://appstoreconnect.apple.com/iris/v1/apps/xxxxxx?include=appStoreVersions&limit[appStoreVersions]=7 response: { "errors": [{ "status": "401", "code": "NOT_AUTHORIZED", "title": "Authentication credentials are missing or invalid.", "detail": "No valid credentials found in the request." }] }
0
0
260
Nov ’23
about make an assert Reservatation
interface response is below "attributes" : { "fileSize" : 11097, "fileName" : "my_screenshot.png", "sourceFileChecksum" : null, "imageAsset" : null, "assetToken" : "PurpleSource62/v4/c4/c6/5f/c4c65fe0-b616-0454-d71b-7771b95f74f1/4d62262c-4ec1-4d89-b82c-c7b7a402e866_null_54594240-5c4c-4a0f-add1-b4cb7e52d166_my_screenshot.png", "assetType" : "SCREENSHOT", "uploadOperations" : [ { "method" : "PUT", "url" : "https://store-030.blobstore.apple.com/itms6-assets-massilia-030001/PurpleSource62%2Fv4%2Fc4%2Fc6%2F5f%2Fc4c65fe0-b616-0454-d71b-7771b95f74f1%2FgzsRhfc7iZIvrJoG3mdTlRGfH-Hu1JJBY_Y82m_QlKU_U003d-1587670858469?uploadId=5ae7a610-859a-11ea-adb0-d8c497b45469&Signature=nL9SQyAh4l1tEwoWQhiflX270Zs%3D&AWSAccessKeyId=MKIA4IEXBU1OGIOUHE96&partNumber=1&Expires=1588275658", "length" : 11097, "offset" : 0, "requestHeaders" : [ { "name" : "Content-Type", "value" : "image/png" } ] } problem is how to upload
0
0
240
Nov ’23
List All In-App Purchases route timing out
Over the last 48 hours (Since Dec 4th) for me, the List All In-App Purchases route is timing out for several different apps. Either the initial request times-out or the paging next token request times out. https://api.appstoreconnect.apple.com/v1/apps/{id}/inAppPurchasesV2 https://developer.apple.com/documentation/appstoreconnectapi/list_all_in-app_purchases_for_an_app Other routes like listing apps seem to work. https://api.appstoreconnect.apple.com/v1/apps The developer status page does not list any outages. https://developer.apple.com/system-status/ Where is the correct place to report issues with AppStore Connect API services?
0
0
355
Dec ’23
Internal Server Error 500 at AppStoreConnect API end-point https://api.appstoreconnect.apple.com/v1/appPricePoints
This started last night for us - we are getting Internal Server Error 500 when making the request (appropriately authenticated): https://api.appstoreconnect.apple.com/v1/appPricePoints?limit=200&include=priceTier,territory&filter[territory]=USA&filter[priceTier]=12 We are getting error: { "errors": [{ "status": "500", "code": "UNEXPECTED_ERROR", "title": "An unexpected error occurred.", "detail": "An unexpected error occurred on the server side. If this issue continues, contact us at https://developer.apple.com/contact/." }] } Anyone else experiences this?
1
0
347
Dec ’23
Missing "price" and "currency" in "Get Transaction History" response
Hello, I am using the Get Transaction History endpoint in our application back end and I've noticed that "price" and "currency" are no longer in the response payload. I did not see this change in the Apple App Store Server API Changelog and was wondering if this is due to a pending change or an error on Apple's server-side? I've added handling into my application to not utilize those items in the payload but it would be nice to have them if they are going to return.
4
16
679
Dec ’23
When calling AppConnect API, it says to me that "This request requires an in-effect agreement that has not been signed or has expired."
when calling APPConnectAPI, It says to me that "This request requires an in-effect agreement that has not been signed or has expired." But when I go to https://appstoreconnect.apple.com/agreements/#/, There is no agreements I can agree. {"status": 403, "msg": "", "data": {"errors": [{"id": "6V4Q4XMVTZIH2URMLCQ5BPD4FU", "status": "403", "code": "FORBIDDEN.REQUIRED_AGREEMENTS_MISSING_OR_EXPIRED", "title": "A required agreement is missing or has expired.", "detail": "This request requires an in-effect agreement that has not been signed or has expired.", "links": {"see": "/agreements"}}]}} API address: https://api.appstoreconnect.apple.com/v1/certificates
2
1
2.2k
Jan ’24