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 tag

207 Posts
Sort by:
Post not yet marked as solved
7 Replies
5.7k Views
Hi, My app is currently in review (wasn't approved yet). I'm using the Get Transaction History API with a sandbox user transaction ID. I successfully get results when using the sandbox url (https://api.storekit-sandbox.itunes.apple.com/inApps/v1/history/{originalTransactionId}) However, when using the production url (https://api.storekit.itunes.apple.com/inApps/v1/history/{originalTransactionId}) - I'm consistently getting 401 - unauthorized, which according to the doc means something is wrong with my JWT. Should I generate my JWT differently for sandbox vs production? If not, what else could cause this issue? Thanks,
Posted
by
Post not yet marked as solved
2 Replies
800 Views
Hi, Tried Connect API to pull Sales and Trends summary for week and here is difference in units numbers: From Connect API, seeing units as below summing to 2312 While seeing 1.28K units for same in dashboard as below. Looking for an explanation of this discrepancy and advice on which source to use for reliable data.
Posted
by
Post not yet marked as solved
5 Replies
1.8k Views
We have an Apple ID that has access to around 140 Apple Developer Accounts. When our automated build server was forced to update to iTMSTransporter version 3.0 our uploads stopped working for most accounts. We are setting -asc_provider parameter and have appropriate access to all the accounts. It appears to fail when looking up the provider public id given the asc_provider. I've found 2 accounts so far that it does work for and have not been able to figure out what the pattern is for this. Has anyone else run into this issue with this version of iTMSTransporter?
Posted
by
Post not yet marked as solved
1 Replies
1.9k Views
Hi Everyone, When you create Auto Renewable subscription price through App Store Connect site - you are able to set only 1 price (say for USA in USD) - and all the rest prices for 175 countries will set automatically. How to set same logic through using request with App Store Connect API? My current logic is: I'm using List All Price Points for a Subscription GET request to get all price points for specific subscriptionID (Docs: https://developer.apple.com/documentation/appstoreconnectapi/list_all_price_points_for_a_subscription) In the response I'm searching for specific price for USA (say $0.99) and getting it's price point ID Then using POST request to Create a Subscription Price Change (Docs: https://developer.apple.com/documentation/appstoreconnectapi/create_a_subscription_price_change) with pricePointID from the previous step. And it's setting the price indeed, BUT for USA only, so I'm not getting this automatically applied 175 countries list for free. Please let me know if there a way to set it automatically somehow, or should I manually calculate all 175 countries for myself somehow and to use 175 requests for each plan (I doubt it)
Posted
by
Post not yet marked as solved
1 Replies
647 Views
I'm uploading IAP Item review screenshots via the App Store Connect API. I create the request, then receive the upload operations. I perform the upload, making sure to populate the headers, and put the data in a buffer in the body of the PUT request. https://developer.apple.com/documentation/appstoreconnectapi/create_an_in-app_purchase_review_screenshot When that upload API call returns, it gives me back an empty buffer. Nothing I do seems to alter the buffer, including intentionally sending incorrect data as a test. Is this intended behavior? What does the empty buffer mean? https://developer.apple.com/documentation/appstoreconnectapi/commit_a_review_screenshot_for_an_in-app_purchase Then, without knowing whether my upload has succeeded, I try to commit the upload. That call always returns an unexpected internal server error. I suspect this is because the upload didn't actually succeed, and that the screenshot is still empty, but I have no way of knowing why. There's no documentation page for the actual upload API call, as far as I know. Here's the error. { status: '500', code: 'UNEXPECTED_ERROR', title: 'An unexpected error occurred.', detail: 'An unexpected error occurred on the server side. If this issuue continues, contact us at https://developer.apple.com/contact/.' } How do you upload IAP screenshots?
Posted
by
Post marked as solved
7 Replies
15k Views
While deploying the apps to app store connect, I am getting a mail from app store connect stating: ITMS-90725: SDK Version Issue - This app was built with the iOS 15.5 SDK. All iOS apps submitted to the App Store must be built with the iOS 15 SDK or later, included in Xcode 13 or later. For context, my minimum deployment version is set to 15.0 and building the apps with xcode 13.4 (ios 15.5). Can anyone please help me with this.
Posted
by
Post not yet marked as solved
4 Replies
1.2k Views
I'm contacting with a question regarding the in-app purchase price settings that use the App Store Connect API. Using App Store Connect API v2.3, we understand that we are supposed to be able to do the following: ・Change price for base country for in-app purchases ・Customize prices for in-app purchases https://developer.apple.com/documentation/appstoreconnectapi/add_a_scheduled_price_change_to_an_in-app_purchase Following this, we made a payload and tried to use it. ・Change price for base country for in-app purchases This worked without issue. ・Customize prices for in-app purchases This did not work. Regarding the customizaton of prices, is there any API available other than this one?: https://api.appstoreconnect.apple.com/v1/inAppPurchasePriceSchedules Any help you can provide on customizing in-app purchase prices would be much appreciated. For reference, here is the payload we tested: payload := { "data": { "type": "inAppPurchasePriceSchedules", "relationships": { "baseTerritory": { "data": { "type": "territories", "id": TERITORY_1(※), }, }, "inAppPurchase": { "data": { "type": "inAppPurchases", "id": ITEM_ID(※), }, }, "manualPrices": { "data": { { "type": "inAppPurchasePrices", "id": PRICE_POINT_ID_1(※), }, }, }, }, }, "included": { { "attributes": { "startDate": null, }, "relationships": { "inAppPurchasePricePoint": { "data": { "type": "inAppPurchasePricePoints", "id": PRICE_POINT_ID_2(※), }, }, "inAppPurchaseV2": { "data": { "type": "inAppPurchases", "id": ITEM_ID(※), }, }, }, "type": "inAppPurchasePrices", "id": PRICE_POINT_ID_3(※), }, { "type": "territories", "id": TERITORY_2(※), }, }, } We tested it in the following ways. Areas with (※) indicate changed values. Pattern 1: Success (set base country price) TERITORY_1: Base country code (e.g. USA ITEM_ID: In-app purchase item ID PRICE_POINT_ID_1-3: Base country price point (e.g. eyJzIjoiNjQ0NjQ3OTMwNSIsInQiOiJERVUiLCJwIjoiMTAzNTcifQ TERITORY_2: Base country code (e.g. USA Pattern 2: Failure (customize price outside of base country) TERITORY_1: Base country code (e.g. USA) ITEM_ID: In-app purchase item ID PRICE_POINT_ID_1: Base country price point (e.g. eyJzIjoiNjQ0NjQ3OTMwNSIsInQiOiJERVUiLCJwIjoiMTAzNTcifQ PRICE_POINT_ID_2: Price point to be customized in another country (e.g. axKaHdnaoADFGojkpfafQ3OTMwNSIsInQiOldaDfaeAEfBdageDlkP PRICE_POINT_ID_3: Price point to be customized in another country (e.g. axKaHdnaoADFGojkpfafQ3OTMwNSIsInQiOldaDfaeAEfBdageDlkP TERITORY_2: Country code to be customized (e.g. JPN Error message: { "errors" : [ { "id" : "e29b37ff-2159-4a15-b238-264ae96e9da1", "status" : "409", "code" : "ENTITY_ERROR.RELATIONSHIP.REQUIRED", "title" : "The provided entity is missing a required relationship", "detail" : "You must provide a value for the relationship 'inAppPurchasePricePoint' with this request", "source" : { "pointer" : "/included/0/relationships/inAppPurchasePricePoint" } } ] } Pattern 1 and 2 use the same payload, so we have set the "inAppPurchasePricePoint" in the relationship.
Posted
by
Post not yet marked as solved
1 Replies
431 Views
Hi, I have created a certificate using app store connect api. I got the response body. Now, what is the next step? Do I need to copy the csrContent and decode it and change it to .p12 file? Please help. Thank you
Posted
by
Post not yet marked as solved
1 Replies
954 Views
I read the following documentation: https://developer.apple.com/documentation/appstoreserverapi/get_refund_history/ But the originalTransactionId parameter is required. As far as I know, it is associated with a certain consumer, so whether this API can only check the refund order associated with a certain consumer, not the entire app I want to regularly query the refund orders in the entire app without App Store Server Notifications. Is this possible?
Posted
by
Post not yet marked as solved
3 Replies
1.9k Views
Hello, I'm getting the reviews for my App from this API Endpoint: https://api.appstoreconnect.apple.com/v1/apps/{id}/customerReviews as explained here https://developer.apple.com/documentation/appstoreconnectapi/list_all_customer_reviews_for_an_app The headline of the documentation says: List All Customer Reviews for an App However, the data I get back from the API does not contain all Reviews. By default I get around 50 reviews. If I use the parameter limit I can expand the response to max 200 Reviews. So, my questions: How do I get all reviews as claimed by the documentation?
Posted
by
Post not yet marked as solved
1 Replies
698 Views
I am trying to install app using the App Store Connect API but no success. I am using this api "https://api.appstoreconnect.apple.com/v1/installations" to install app on device but getting error { "errors": [ { "status": "404", "code": "NOT_FOUND", "title": "The specified resource does not exist", "detail": "The path provided does not match a defined resource type." } ] } Please let me know if i am missing something.
Posted
by
Post not yet marked as solved
1 Replies
422 Views
Hi all, Currently we are extracting App Store data (such as downloads) via FiveTran. We noticed that Apple disables our Apple ID since we use the connector. They don't have an explanation for it, but it could be that it violates their policy in a way. Does anyone has experience with this issue? And know how to avoid it (limiting the amount of API-calls or something) Thanks a lot!
Posted
by
Post not yet marked as solved
0 Replies
221 Views
I'm currently trying to automate the process of retrieving app-specific information such as the Server Notifications URL and the Sandbox Server URL via the App Store Connect API. From what I could gather from the official API documentation, there doesn't seem to be a way to fetch these URLs programmatically. Can anyone confirm if these pieces of information are accessible via the API currently or if there are plans to expose this in the future?
Posted
by
Post marked as solved
1 Replies
284 Views
We found out that we need to know the currency exchange rate used by Apple, and we tried to find this information using the Reporting API v1. Unfortunately, we couldn't find a clear way to get it from the documentation and other sources. We need your assistance and clarification on whether the Reporting API v1 can provide us with the currency exchange rate data or not.
Posted
by
Post not yet marked as solved
1 Replies
634 Views
Hello, I'm trying to upload assets using the app store connect api, I have successfully created a screenshot set, and created a screenshot reservation and got back the following response: "data": { "type": "appScreenshots", "id": "...", "attributes": { "fileSize": 4833, "fileName": "Untitled.png", "sourceFileChecksum": null, "imageAsset": null, "assetToken": "...", "assetType": "SCREENSHOT", "uploadOperations": [ { "method": "PUT", "url": "...", "length": 4833, "offset": 0, "requestHeaders": [ { "name": "Content-Type", "value": "image/png" } ] } ], "assetDeliveryState": { "errors": [], "warnings": null, "state": "AWAITING_UPLOAD" } }, "links": { "self": "..." } }, "links": { "self": "https://api.appstoreconnect.apple.com/v1/appScreenshots" } } The documentation states that I should use the "UploadOperations" to upload the image using the "put" method and using the url provided in the response under "UploadOperations", however I am not sure what to send in the body of the put request. I have tried the following but it is returning an empty response: headers = { "name": "Content-Type", "value": "image/png" } urlUpload = response.json()["data"]["attributes"]["uploadOperations"][0]["url"] response = requests.put(urlUploadTo,image=image, headers=headers) What exactly am I doing wrong here? Is there something I'm missing? The following link is the link to the documentation explaining how to upload assets.
Posted
by
Post marked as solved
1 Replies
442 Views
According to the appstoreconnect json api docs, rates are supposed to be limited to a certain number of requests per hour (in my case it seems to be 3600) Doc here: https://developer.apple.com/documentation/appstoreconnectapi/identifying_rate_limits However, in my usage, I'm getting HTTP 429 RATE_LIMIT_EXCEEDED, while at the same time getting a header back indicating that there are plenty of requests left this hour (e.g. "x-rate-limit": "user-hour-lim:3600;user-hour-rem:3121;"). I'll handle these responses gracefully, and retry them later of course, but we have a lot of iaps to keep up to date, so I'd really like to be able to optimize my request rate so that I don't wind up making a bunch of requests over and over again in hopes of getting them to go through. Is it possible that there's some secret rate limit for parallelized requests? I've got my updater running in multiple threads in hopes of making the whole process faster, and started by sending them as quick as I could up to the specified limit per hour. In most cases we've only got a few dozen / hundred iaps to update at a time, but I also need it to work in the rare instances when we need to update thousands at once. I'm also tracking data locally so that I only need to post updates when prices actually change, but sometimes we do put everything on sale.
Posted
by