canonical: https://jentic.com/apis/apple.com/app-store-connect

# Apple App Store Connect API

Jentic publishes the only available OpenAPI specification for App Store Connect API, keeping it validated and agent-ready. The App Store Connect API automates iOS, macOS, watchOS, and tvOS app distribution on Apple's App Store, covering app metadata, builds uploaded from Xcode, beta testing through TestFlight, in-app purchases, sales and finance reports, and provisioning profiles. Authentication uses signed JWT bearer tokens generated from an App Store Connect API key. The spec covers 252 operations across app records, builds, beta groups, customer reviews, pre-release versions, and pricing.

## For AI agents

Manage iOS app submissions, TestFlight beta groups, in-app purchases, and sales reports on the Apple App Store. Authenticates with JWT bearer tokens.

## Scope

Does not handle binary upload (use Transporter or Xcode), Android Play Store releases, or end-user purchase processing - use for iOS, macOS, watchOS, and tvOS App Store metadata, TestFlight, and reporting only.

## Capabilities

- Submit a new app version for review and track its review status through appStoreVersions
- Invite testers to a TestFlight beta group and assign builds to that group
- Pull weekly sales and financial reports for a vendor account through salesReports and financeReports
- Manage in-app purchase products, pricing tiers, and review screenshots per locale
- Register devices, generate signing certificates, and create provisioning profiles for development and distribution
- Read customer reviews left on an app and respond through customerReviewResponses
- Update App Store metadata localizations including descriptions, keywords, and screenshots per territory

## Use cases

### Automated TestFlight Beta Distribution

Push every successful CI build to TestFlight and route it to the right beta tester group without manual upload. Use the builds and betaGroups endpoints to attach a processed build to internal or external groups, manage tester invitations, and read crash and feedback reports. Replaces hand-managed TestFlight uploads from Xcode with a scripted release pipeline that runs in minutes.

Example prompt: Find the latest build for app id 1234567 with processingState VALID and assign it to beta group 'External QA'

### App Store Submission Pipeline

Create a new appStoreVersion, attach localized metadata and screenshots, link a build, and submit for review without using App Store Connect's web UI. The API exposes appStoreVersionLocalizations, appScreenshots, and appStoreReviewDetails so a release manager can prepare a fully reviewed submission from a Git-tracked manifest. Each App Store version transitions through reviewable states the agent can poll.

Example prompt: Create an appStoreVersion of platform IOS with version 2.4.0, attach build id ABC, upload English screenshots, and submit for review

### Sales and Royalty Reporting

Pull daily, weekly, monthly, or yearly sales reports and finance reports for a vendor number, then load them into a finance system or BI warehouse. The salesReports endpoint returns gzipped TSV files keyed by report subtype, frequency, and date. Use this to track unit downloads, in-app purchase revenue, and territory-level performance without scraping App Store Connect.

Example prompt: Download the SALES weekly report for vendor number 12345678 for the report date 2026-06-02 and parse total units sold

### AI Agent App Release Coordinator

An AI agent uses Jentic to coordinate release tasks across App Store Connect, monitoring build processing, ranking pending customer reviews by sentiment, and drafting reply text for the highest-priority reviews. Jentic securely stores the JWT signing key and the agent only sees scoped tokens, so the App Store Connect API key never enters the agent's context.

Example prompt: Search Jentic for 'submit an iOS app for review', load the App Store Connect operation, and create an appStoreVersion submission for build id ABC

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/apps` | List all apps in your App Store Connect account |
| POST | `/v1/appStoreVersions` | Create a new App Store version for submission |
| GET | `/v1/builds` | List uploaded builds and their processing state |
| POST | `/v1/betaGroups` | Create a TestFlight beta tester group |
| GET | `/v1/salesReports` | Download sales and download report files |
| GET | `/v1/customerReviews` | List customer reviews left on an app |
| POST | `/v1/profiles` | Create a provisioning profile for signing |

## Key resources

- **apps** — Read app records and metadata, list builds, versions, and pricing per app
- **builds** — Track uploaded binaries, processing state, and beta tester groups
- **betaGroups** — Manage internal and external TestFlight tester groups and invitations
- **appStoreVersions** — Create, edit, and submit App Store versions for review
- **salesReports** — Download daily, weekly, monthly, and yearly sales report files
- **customerReviews** — List App Store customer reviews and post responses
- **inAppPurchases** — Manage in-app purchase products, pricing, and review metadata
- **profiles** — Generate development and distribution provisioning profiles and certificates

## Why Jentic

- **Setup:** Wiring App Store Connect by hand means holding the long-lived private signing key, generating short-lived JWTs per request, and navigating its metadata, TestFlight, and reporting surface across iOS, macOS, watchOS, and tvOS yourself. Through Jentic you install once, import the App Store Connect API from the API Directory, store the signing key once, and your agent calls it.
- **Permission scoping:** You choose which App Store Connect operations the agent may call, so you can limit it to reads like listing apps and builds, customer reviews, and sales reports, while leaving out writes like creating app store versions, beta groups, or profiles. The rule is a positive allow-list, so the agent only runs the operations you have added.
- **Credential handling:** Your App Store Connect signing key is stored once, encrypted, by your own Jentic One instance, which signs short-lived JWTs and injects them at execution time. The raw key never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'submit an iOS app for review' or 'invite a TestFlight tester', and Jentic returns the matching App Store Connect operation with its parameters and response shape so the agent calls it without browsing Apple's reference docs.

## Related APIs

- **Google Play Android Publisher API** — Google's equivalent for managing Android app releases on Google Play
- **GitHub REST API** — Often paired in mobile release pipelines to tag commits and update release notes alongside App Store submissions
- **CircleCI API** — Drive CI builds whose artefacts are then uploaded to App Store Connect

## FAQ

### Why is there no official OpenAPI spec for App Store Connect API?

Apple does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call App Store Connect API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the App Store Connect API use?

The App Store Connect API uses signed JWT bearer tokens. You generate a private key from App Store Connect, sign a JWT with the ES256 algorithm using your key id and issuer id, and pass it as Authorization: Bearer {jwt}. Tokens expire within 20 minutes and must be regenerated. Through Jentic the signing key is stored in the vault and the agent receives short-lived scoped credentials only.

### Can I upload a new TestFlight build with the App Store Connect API?

Builds themselves are uploaded through the Transporter command-line tool or Xcode, not the REST API. Once a build is uploaded and processed, you can use POST `/v1/betaGroups` and the betaGroupBuilds relationships to attach a build to a tester group, manage testers via `/v1/betaTesters`, and track processingState through `/v1/builds.`

### What are the rate limits for the App Store Connect API?

Apple enforces an hourly request quota per team that varies by endpoint. Sales and finance report downloads are rate-limited separately. Responses include the Retry-After header when limits are hit. Use ETags and conditional requests to avoid burning quota on unchanged resources.

### How do I download a weekly sales report through Jentic?

Run pip install jentic, search for 'download app store sales report' through the Jentic SDK, load the GET `/v1/salesReports` operation, and execute it with filter[frequency]=WEEKLY, filter[reportType]=SALES, filter[reportSubType]=SUMMARY, and filter[vendorNumber] set to your vendor id. The response is a gzipped TSV file.

### Is the App Store Connect API free to use?

Yes. The API is free for any active Apple Developer Program member. You only need to enroll in the Apple Developer Program ($99/year) to access the API and create the API keys used to sign JWT tokens.

### Can I limit what my agent is allowed to do with the App Store Connect API?

Yes. Jentic One runs self-hosted, so you decide which App Store Connect operations your agent may call through a positive allow-list, and it only runs the operations you have added. You can restrict it to reads such as listing apps and builds, customer reviews, and sales reports, while leaving out writes like creating App Store versions, beta groups, or provisioning profiles. Because you also control the credentials, your signing key stays under your own rules and the agent receives only the scoped access you grant.
