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

# 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 exposes 252 operations covering iOS, macOS, watchOS, and tvOS app distribution: app records, builds, TestFlight beta groups, App Store version submissions, in-app purchases, sales and finance reports, and provisioning profiles. Authentication uses signed JWT bearer tokens generated from a private key issued in App Store Connect. This is the same surface area surfaced under Apple's app-store-connect slug, indexed under an alternate path for discoverability.

## For AI agents

Programmatically manage iOS and macOS app submissions, TestFlight builds, in-app purchases, and Apple sales reports through JWT-authenticated REST endpoints.

## Scope

Does not handle binary upload (use Transporter), Google Play releases, or end-user purchases - use for iOS-family App Store metadata, TestFlight, and reporting only.

## Capabilities

- Drive App Store version submissions from a build to in-review state via `/v1/appStoreVersions`
- Attach a processed build to one or more TestFlight beta groups
- Pull weekly and monthly salesReports and financeReports per vendorNumber
- List and respond to customerReviews on an app
- Manage inAppPurchases including pricing tiers and localized review screenshots
- Generate provisioning profiles and register signing certificates and devices
- Localize App Store metadata, screenshots, and what's-new text per territory

## Use cases

### Continuous TestFlight Delivery

Wire CI builds into TestFlight without touching App Store Connect's web UI. After Transporter uploads a build, this API lets a release script poll `/v1/builds` for processingState VALID, attach the build to internal and external beta groups, manage tester invitations, and read crash and screenshot feedback. The full pipeline from green CI to testers' devices runs in under five minutes.

Example prompt: Poll `/v1/builds` for app id 1234567 until processingState=VALID, then create a betaBuildLocalization and add the build to beta group 'External QA'

### Programmatic App Store Submission

Replace the manual App Store Connect submission form with code. Create a new appStoreVersion, attach appStoreVersionLocalizations for each language with description, keywords, and screenshots, link a build, fill in appStoreReviewDetails, and submit. The agent can read state transitions through reviewSubmissions and surface review rejections back to the team.

Example prompt: Create an appStoreVersion 2.4.1 for platform IOS with build id ABC, upload English-US screenshots, and submit for review

### Sales and Finance Data Sync

Pull daily, weekly, monthly, or yearly sales and finance reports for a vendor account into an internal warehouse or BI tool. The `/v1/salesReports` endpoint returns gzipped TSV per reportType, frequency, and date. Combined with `/v1/financeReports` this powers automated revenue dashboards and royalty splits without scraping App Store Connect.

Example prompt: Download SALES weekly report for vendor 12345678, report date 2026-06-02, parse the gzip TSV, and total proceeds in USD

### AI Agent Release Operations

An AI agent uses Jentic to monitor App Store Connect, draft replies to negative customer reviews, and orchestrate cross-platform release rollouts. Jentic isolates the App Store Connect signing key in your Jentic One instance and hands the agent short-lived bearer tokens, so the .p8 file never enters the agent's context window.

Example prompt: Search Jentic for 'list customer reviews', call GET `/v1/customerReviews` with sort=-createdDate, and draft responses for any review with rating <= 2

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/apps` | List apps in the App Store Connect account |
| POST | `/v1/appStoreVersions` | Create a new App Store version |
| GET | `/v1/builds` | List uploaded builds and processing state |
| POST | `/v1/betaGroups` | Create a TestFlight tester group |
| GET | `/v1/salesReports` | Download a sales report file |
| GET | `/v1/customerReviews` | List App Store customer reviews |
| POST | `/v1/profiles` | Generate a provisioning profile |

## Key resources

- **apps** — Read and manage app records, pricing, and metadata
- **builds** — Track uploaded builds and their TestFlight processing state
- **betaGroups** — Create internal and external TestFlight tester groups
- **appStoreVersions** — Create, edit, and submit App Store versions for review
- **salesReports** — Download sales and download reports for a vendor
- **customerReviews** — List App Store reviews and post responses
- **profiles** — Manage provisioning profiles, certificates, and devices

## Why Jentic

- **Setup:** Wiring App Store Connect by hand means holding the long-lived .p8 signing key, generating short-lived JWTs for every request, and navigating a large metadata, TestFlight, and reporting surface 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 the ones it needs, such as listing apps and builds or reading sales reports, while leaving out writes like creating app store versions, beta groups, or provisioning 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 app for review' or 'list TestFlight builds', and Jentic returns the matching App Store Connect operation with its parameter and response schema so the agent calls the right endpoint without crawling developer.apple.com.

## Related APIs

- **Google Play Android Publisher API** — Equivalent surface for managing Android releases on Google Play
- **GitHub REST API** — Tag releases and update changelogs alongside App Store submissions
- **CircleCI API** — Run iOS builds whose archives feed 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?

It uses JWT bearer tokens. You generate a private .p8 key in App Store Connect, sign a JWT with ES256 using your key id and issuer id, and send Authorization: Bearer {jwt}. Tokens are valid for at most 20 minutes. Through Jentic the .p8 lives in the vault and the agent receives only short-lived scoped tokens.

### Can I submit an app for review with the App Store Connect API?

Yes. Create an appStoreVersion with POST `/v1/appStoreVersions`, attach localizations and screenshots, link a build, and submit through reviewSubmissions. Note that build binary upload itself is handled by Transporter or Xcode - the REST API works on the metadata and submission lifecycle.

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

Apple enforces hourly per-team quotas that vary by endpoint, with separate limits for sales report downloads. When you exceed them the API returns 429 with a Retry-After header. Caching with ETags and conditional GETs is the recommended way to stay under the limit.

### How do I attach a build to a TestFlight group through Jentic?

Run pip install jentic, search 'attach build to testflight group', load the betaGroupBuilds operation under POST `/v1/betaGroups/{id}/relationships/builds`, and execute it with the betaGroup id and the build id. Jentic handles JWT signing and token rotation.

### Is the App Store Connect API free?

Access is included with an active Apple Developer Program membership ($99/year for individuals and organizations, $299/year for the Enterprise Program). There is no per-call charge for the API itself.

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

Yes. Because Jentic One is self-hosted, you decide which App Store Connect operations your agent can call, and it runs against a positive allow-list, so it only executes the operations you have added. You can restrict it to read-only work like listing apps and builds or downloading sales reports, while leaving out writes such as creating App Store versions, beta groups, or provisioning profiles. Your signing key stays in your own instance, which mints short-lived JWTs at execution time, so the agent never receives the raw credential.
