Skip to main content
A connection gives AppGoat access to your own store accounts. With it, agents can read your reviews with their reply status, your editable listing per locale and your Apple Ads campaigns (GET /v1/connections/{id}/reviews, /listings, /ads, 1 credit each) and propose actions: review replies, listing and keyword updates, screenshots, Apple Ads bids, keywords and negatives. Every action is a dry run with a before → after diff first; nothing is written until it is approved. You can connect accounts in the dashboard (dash.appgoat.ai → Connections) or with POST /v1/connections. Credentials are verified with one cheap read before anything is stored, encrypted with AES-256-GCM, and never returned.

Credentials per provider

{ issuer_id, key_id, private_key, vendor_number? }
  • issuer_id: App Store Connect → Users and Access → Integrations → App Store Connect API, the Issuer ID above the keys table.
  • key_id: the Key ID of the API key (10 characters).
  • private_key: the contents of AuthKey_<KEY_ID>.p8, downloaded once when the key was created.
  • vendor_number (optional): from Payments and Financial Reports, for the downloads and proceeds sync.
Give the key the App Manager role (and Sales for the downloads and proceeds sync). apps defaults to every app the key can see.
If a provider rejects the credentials the answer is 422 invalid_credentials with error.param naming the field and error.hint saying where to find it.

Mode and plan limits

Actions and approval

POST /v1/actions proposes a change and returns its diff and guardrail scores (policy, tone, claims). POST /v1/actions/{id}/approve applies it (1 credit when applied), or leaves it pending a person’s approval in the dashboard (403 forbidden with an approve_url). POST /v1/actions/{id}/reject discards it. The Reply to every review, Apple Ads optimizer and Localization push playbooks are built on this flow.