App Store Connect API Keys: Roles and .p8 Security

Updated October 15, 2026 · by Sardorbek Rakhimov

An App Store Connect API key is the credential that lets tools talk to Apple's official App Store Connect API on your behalf: CI pipelines uploading builds, fastlane pushing metadata, and native desktop clients editing your listings. Every key has a Key ID and a private key file ending in .p8. Team keys also use an Issuer ID in the JWT's iss claim. Individual keys do not use an Issuer ID; Apple's current token format uses sub: user instead. Tools sign short-lived JWTs with the key before making API requests.

Watch: find Team Keys and choose a role

This narrated 1-minute video shows the path from Apps to the key dialog, naming a dedicated key, and selecting Admin for ShipZen's Analytics setup. Continue with the written steps below to generate the key and download its .p8 file.

1:07 · English narration and captions · Recorded October 15, 2026. Open video
Read the video transcript

Go to appstoreconnect.apple.com and sign in.

For a team key, sign in as the Account Holder or an Admin. If API access isn't enabled, the Account Holder must request it and wait for Apple's approval.

From Apps, open the three-dot menu in the top navigation and choose Users and Access. In Users and Access, select the Integrations tab.

Under Integrations, make sure App Store Connect API is selected, then open Team Keys.

Click the blue plus beside Active. On a first-key account, choose Generate API Key. In the dialog, name the key ShipZen tutorial.

For this ShipZen setup, choose Admin. Apple requires it to create Analytics Report requests, and it also covers metadata and releases. Admin grants broad account access, so use a dedicated key for ShipZen.

If you only need metadata and release work, App Manager is a narrower alternative. Team keys apply across all apps, and their role cannot be changed later.

Team keys vs individual keys

Apple issues two kinds of keys, and they are not interchangeable:

Attribute Team key Individual key
Scope All apps in the account, access set by the role you assign Tied to one user's own apps and permissions
JWT identity claim iss with the account's Issuer ID sub: user; no Issuer ID
Who can create it Admin (or Account Holder) Eligible App Store Connect users with permission from an Admin or Account Holder
Provisioning, Sales and Finance, notarytool Supported Not available
How many Multiple keys allowed One active key per user

Practical rule: shared infrastructure (CI, release tooling, a team's metadata workflow) gets a team key with a deliberately chosen role. An individual key is fine for personal scripts, because it can never exceed what you personally can do — but it also cannot touch provisioning, notarization, or sales reports at all.

A safe connection example

Suppose a two-person team wants a local metadata client. After the Account Holder's API access request is approved, an Admin creates a team key named local-metadata-client with the App Manager role, then gives the client the actual Issuer ID, Key ID, and the saved .p8 file through the client's credential setup. A local client can then sign a short-lived token before asking Apple for the app list. Keep private-key text out of support forms, screenshots, chat, and source code.

If the client supports individual-key authentication, that connection needs the Key ID and .p8 file, but no Issuer ID. A successful app-list request only shows that the current identity can use that endpoint; it does not add app access or turn unsupported account tasks into API operations.

Creating a team key, step by step

Before a team can generate its first key, the Account Holder must request access to the App Store Connect API in Users and Access → Integrations. Apple reviews that request case by case.

  1. In App Store Connect, open Users and Access, then the Integrations tab.
  2. Select App Store Connect API in the left column, then the Team Keys tab.
  3. Click Generate API Key, or the add button (+) if you already have an active key. Name the key after the tool that will use it (one key per tool), and pick a role.
  4. For ShipZen with Analytics, select Admin, then click Generate. For metadata and release work only, App Manager is a narrower alternative.
  5. Copy the Issuer ID and the new key's Key ID from the same page.
  6. Download the .p8 private key and store it somewhere safe immediately.

Admin grants broad account access. ShipZen uses it to create Analytics Report requests; Apple requires Admin when requesting a new report type for the first time. Use a dedicated key for ShipZen, and choose a narrower role when you do not need those operations.

You need an Admin or Account Holder account to generate team keys. Individual keys work differently: eligible users create their own from their profile. If the Generate API Key button is missing, an Admin or Account Holder may need to grant the Generate Individual API Keys permission.

Connection troubleshooting

What you see Check first What to do
There is no Issuer ID, or authentication rejects an iss claim Whether you created an individual or team key Individual-key tokens use sub: user, not an Issuer ID. Switch the client to individual-key authentication; for a team key, copy the Issuer ID from App Store Connect instead of inventing one.
The connection works, but an expected app is missing The key type and the user's app access in Users and Access A team key applies across the account and cannot be limited per app. An individual key follows that user's access and permissions, so have an Admin review the user's app access. Reconnect after the access change.
An endpoint returns an insufficient-role or forbidden error The team-key role or individual user's role, and that endpoint's requirements Grant the smallest role that Apple documents for the needed operation, then create a new team key if its access level must change. Some endpoints have role-specific limits; finance reporting and provisioning are team-key-only, and legal account work remains on the web.

Treat an error as endpoint-specific. A key can authenticate successfully yet still lack permission for a particular operation, and Apple does not expose every App Store Connect web workflow through the API.

Which role should the key get?

Key roles are the same roles Apple defines for users, and the least-privilege logic is the same too:

One thing a role cannot fix: team keys apply across every app in the account. If a contractor should only touch one app, an individual key tied to their scoped user account models that better than any team key role.

.p8 security rules

Apple allows the private key to be downloaded exactly once. That rule drives all the handling guidance:

The same standard applies to vendors: any app or service that asks you to upload your .p8 to their servers is asking you to trust their security team with whatever access the key's role or user permissions allow. A local-first tool avoids sharing the credential with the vendor; a hosted tool requires you to assess the vendor's storage, access controls, and revocation process.

What the API can and can't do

A key with the right role covers the daily publishing surface: app metadata and screenshots, TestFlight, customer reviews, analytics and sales reports, and pricing. It does not cover everything Apple's website can do:

A trustworthy tool is explicit about that boundary instead of promising to automate all of it — more on that in what a desktop client can and can't do.

Where ShipZen fits

ShipZen is a native macOS App Store Connect client that authenticates with your own API key and stores it in the macOS Keychain. Requests go directly from your Mac to Apple — there is no ShipZen server in the middle, so your .p8 never leaves your machine. An App Manager team key, or an individual key whose user has access to the relevant apps and operations, can cover supported metadata and validator workflows. Reporting features depend on Apple's endpoint-specific roles. See the security and capability matrix for the product boundary.

Team-key navigation and Analytics role guidance rechecked October 15, 2026. See the editorial policy for sourcing and corrections.

Make the next listing update less work. Edit across locales and review changes before saving.

Download on the Mac App Store

Available on the Mac App Store.