App Store Connect API vs Google Play Developer API: what you can automate in 2026

Published: October 31, 2026

Version française →

Before you script your releases, or pick a tool that does, it helps to know where the two store APIs stop. Some steps simply have no endpoint, and no tool can automate them. This map comes from building OneStore on both APIs.


The map

TaskApp Store Connect APIGoogle Play Developer API
Create the appNo (POST /v1/apps refused)No
Edit listing text per languageYesYes (inside an edit)
Upload screenshotsYes (reserve, upload, commit, then poll processing)Yes (inside an edit)
App previews / promo videoYes (preview videos)YouTube URL on the listing
Upload the buildYes, but the binary itself goes through Apple's upload tools (altool, Transporter)Yes (.aab via edits.bundles.upload)
Submit for reviewYes (review submissions)Yes (committing a release sends it)
Choose release timingYes (manual, after approval, scheduled)Draft vs completed; no hold-after-approval through the API
Staged rolloutPhased release (7 days, automatic updates only)Yes (user fraction per release)
Read review statusYes (version states)Partly (releaseLifecycleState in recent revisions)
Reply to reviewsYes (a new reply replaces the old one)Yes (reply upserts)
Sales and installsSales reports API + Analytics Reports APIReport files in a Cloud Storage bucket
First-time setup (privacy, ratings, data safety)Partly (age rating, export compliance)No: Play Console only

App Store Connect: the parts that surprise people

  • Two places for one listing. Name, subtitle and privacy policy URL live on appInfoLocalizations; description, keywords, What's New and promotional text on appStoreVersionLocalizations. Read one and half the fields look empty.
  • Asynchronous assets. Screenshot and preview uploads return success before Apple processes them. Failures (IMAGE_ALPHA_NOT_ALLOWED, MOV_RESAVE_STEREO) show up seconds later in assetDeliveryState, or only when the submission fails.
  • One open review submission per app. Apple won't let you delete one (DELETE returns 403); reuse the open one.
  • Generic refusal, specific reasons. ENTITY_STATE_INVALID hides the real blockers in errors[].meta.associatedErrors.
  • Two reporting APIs. Sales and Trends reports give daily units and proceeds; the Analytics Reports API gives engagement, sources and more, but it is asynchronous: you request a report, then download instances when Apple has produced them.

Google Play: the parts that surprise people

  • Everything goes through an edit. Open it, change listings, images, bundles and tracks, then commit. Nothing is live before the commit, and a failed commit applies nothing.
  • Draft apps. Until the first production release is rolled out by hand in Play Console, the API only accepts draft releases.
  • One active release per track. Two completed or inProgress releases in one track update is a 400.
  • Managed publishing is invisible. If it's on, approved releases wait for a click in Play Console, and the API can neither see nor publish them.
  • Reports are files, not an API. Installs, ratings and earnings come as CSV files in a Cloud Storage bucket linked to the developer account, updated daily for most reports, with a delay.
  • 403 doesn't always mean permissions. Shadowed version codes or policy holds can come back as PERMISSION_DENIED.

What stays manual, whatever tool you use

  • Creating the app record on both stores.
  • Play Console's app content tasks: privacy policy, content rating questionnaire, target audience, data safety, ads declaration.
  • The first production release of a new Google Play app.
  • Agreements, tax and banking in App Store Connect and the Play payments profile.
  • Publishing a Google Play release held by managed publishing.

A tool that claims to automate these is either driving the console's web interface or overpromising.


Using the APIs without writing the glue

OneStore is built on these two APIs and handles the quirks above: it writes each Apple field to the right resource, polls asset processing, reuses open review submissions, reads associatedErrors, writes Play tracks with one active release, and reads the Play reports bucket and both Apple reporting APIs for installs and revenue. The same operations are available to AI assistants through its MCP server. Where an API has no endpoint, it tells you the exact console step instead of failing silently.

Related: App Store Connect errors, Google Play Developer API errors, App Store Connect vs Google Play metadata.


FAQs

Can I create an app on the App Store or Google Play through an API?

No. App Store Connect refuses POST /v1/apps and Google Play has no app creation endpoint. Create the app in each console, then automate everything after that.

Can the Google Play API do a staged rollout?

Yes. A release on a track can have status inProgress with a user fraction, and you can raise the fraction or complete the rollout later.

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

Yes, through review submissions: create or reuse the open submission, add the App Store version to it, then submit it. The version needs a processed build and complete metadata.

Where do Google Play install and revenue numbers come from?

From report files Google writes to a Cloud Storage bucket linked to your developer account, not from the Developer API. A service account with access to that bucket can read them.