Skip to main content
SocialAPI connects an app in App Store Connect with your own App Store Connect API key. It lists the app’s customer reviews and posts your developer response to a review. App Store Connect has no consent screen: you create an API key in App Store Connect, send it to SocialAPI in one request, and there is no OAuth redirect and no app to register. Platform apps lists which app connects each platform. App Store Connect is in beta. A SocialAPI account without beta access gets 403 billing.platform_not_available when it connects an app. Request access from the App Store Connect card on the dashboard’s Accounts page.

At a glance

Capabilities

The capability matrix for every platform is on Supported platforms.

Connect an account

One connected account is one app. You send an API key and, when the key can see more than 1 app, the app to connect.
1

Create an API key

In App Store Connect, open Users and Access, then Integrations, then App Store Connect API. Generate a Team key with the Customer Support or Admin role. Generating a Team key needs the Account Holder or Admin role. An Individual key from your user profile also works when your own role is Customer Support, Admin, or Account Holder, and your user has the Generate Individual API Keys permission. Replying to reviews needs one of these roles.
2

Download the key and note its IDs

Download the private key file. App Store Connect lets you download it once. Note the key’s Key ID, and for a Team key the Issuer ID shown on the App Store Connect API page.
3

Connect the app

Send the contents of the private key file as metadata.private_key, with line breaks escaped as \n:
Response (HTTP 201):
Every field is a JSON string. Send app_id in quotes: a number is read as missing. username is the app’s bundle ID and display_name is its name. Without brand_id in the request, SocialAPI creates a brand for the app. SocialAPI also sends account.connected to your webhook endpoints.

Connect more than one app

A brand holds 1 account per platform, so each app goes into its own brand. Send one connect request per app, each with its app_id and a different brand_id, or with no brand_id. Connecting a second app into a brand that already holds one returns 409 account.already_linked. Each brand counts toward your plan’s brand allowance: see Plans. When the key can see more than 1 app and the request has no app_id, the call returns 400 validation.field_required with meta.field set to app_id and meta.apps listing up to 200 of the apps the key can see:

Connect errors

Disconnect and revoke

Disconnecting the account (DELETE /v1/accounts/{account_id}) deletes the API key from SocialAPI. App Store Connect offers no way to revoke a key from outside, so the key stays valid. To cut off access completely, revoke the key in App Store Connect: a Team key under Users and Access, Integrations, and an Individual key in your user profile, under Individual API Key.

Reviews

You list an app’s reviews with GET /v1/inbox/reviews/{account_id} and reply with POST /v1/inbox/reviews/{id}/reply. The parameters, response fields, and cost are on Reviews. These rules are specific to App Store Connect:
  • Reviews carry a title. Each review has title, the reviewer’s headline, next to text, the review body.
  • The author is a nickname. author.name is the reviewer’s App Store nickname. author.avatar_url is absent.
  • No edit time. updated_at is the same as created_at.
  • No average rating. average_rating is 0 in the list of review accounts and in the summary of a reviews page. total_count is the app’s number of written reviews.
  • No reply state. reply has text and updated_at, and no state. A reply response has no state either.
  • A reply replaces the previous one. A review has 1 developer response. Replying again replaces it.
  • Replies are not visible at once. A response can take up to 24 hours to appear on the App Store.

Review errors

A reply that fails with a validation.* code gets its interaction credit back. See When a credit comes back for the other cases.

Limits

Scopes

App Store Connect has no OAuth scopes. The key’s role sets what SocialAPI can do: replying needs the Customer Support, Admin, or Account Holder role, and a call the role does not allow returns 403 platform.app_store_connect.forbidden. The account supports the reviews.read and reviews.write permissions, which SocialAPI alone enforces.
Last modified on November 2, 2026