Skip to main content

Apple App Store

This connector captures data from Apple App Store Connect API into Estuary collections.

Supported data resources​

The following data resources are supported:

Prerequisites​

To use this connector, you'll need:

  • An Apple Developer account with access to App Store Connect.
  • App Store Connect API access approved by your Account Holder.
  • An App Store Connect API key with Admin permissions (required for Analytics Reports).

Authentication​

An App Store Connect API key is required to authenticate the connector. The connector uses JWT (JSON Web Token) authentication with your private API key. To create an API key:

  1. Sign in to App Store Connect
  2. Navigate to Users and Access > Integrations
  3. Create a new API key with Admin permissions (required for Analytics Reports)
  4. Download the private key (.p8 file) - this can only be done once
  5. Note your Key ID and Issuer ID

Please refer to Apple's official documentation for detailed steps on creating API keys.

info

Admin-level permissions are required to access Analytics Reports. Only Account Holders can initially request API access.

Configuration​

You configure connectors either in the Estuary web app, or by directly editing a specification file. See connectors to learn more about using connectors. The values and specification sample below provide configuration details specific to the Apple App Store source connector.

Properties​

Endpoint​

PropertyTitleDescriptionTypeRequired/Default
/credentialsCredentialsCredentials for the Apple App Store Connect APIobjectRequired
/credentials/credentials_titleAuthentication MethodSet to Private App Credentials.stringRequired
/credentials/key_idKey IDThe Key ID for your App Store Connect API key.stringRequired
/credentials/issuer_idIssuer IDThe Issuer ID from your App Store Connect account.stringRequired
/credentials/private_keyPrivate KeyThe content of your App Store Connect API private key (.p8 file).stringRequired
/app_idsApp IDsList of App IDs to capture data for. Leave empty to capture data for all apps.arrayDefaults to empty array

Bindings​

PropertyTitleDescriptionTypeRequired/Default
/nameData resourceName of the data resource.stringRequired
/intervalIntervalInterval between data syncsstringPT1H

Sample​

captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-apple-app-store:v1
config:
credentials:
credentials_title: "Private App Credentials"
key_id: ABC123DEF4
issuer_id: 12345678-1234-1234-1234-123456789012
private_key: |
-----BEGIN PRIVATE KEY-----
PLACEHOLDER_PRIVATE_KEY_CONTENT_GOES_HERE
REPLACE_WITH_ACTUAL_P8_FILE_CONTENTS
-----END PRIVATE KEY-----
app_ids: []
bindings:
- resource:
name: app_reviews
interval: PT1H
target: ${PREFIX}/app_reviews