App Store review / Messages and errors
App Store Connect message · first-hand fix · checked Oct 24, 2026
Can the App Store Connect API create an app? (No: 403)
The message: POST /v1/apps returns 403 FORBIDDEN
Short answerNo. The App Store Connect API can read and update apps, versions, metadata, builds, in-app purchases and submissions, but creating the app record itself returns 403. Someone has to click New App once on the website (name, bundle ID, SKU, primary language). After that, everything else can be scripted.
Why it happens
Apple keeps app creation in the web UI. Your bundle ID must already be registered (the API can do that part under Identifiers).
When we hit it
We publish 20+ iPhone apps from Windows with scripts (Store/asc.py and listing.py in each repo). Every one of them needed the record made by hand first; then listing.py finish pushed metadata, price, categories, age rating, review details and screenshots in one go. Two more limits we met: Game Center configuration on an unpublished app blocked review submission, and a first in-app purchase could not be attached through the API.
Fix, step by step
- Register the bundle ID (API or developer portal).
- App Store Connect website: Apps, +, New App; enter name, bundle ID, SKU, language.
- From then on, use the API key (Admin role) for metadata, builds and submission.
- Guide: create an App Store Connect API key.
Related
- "Your first in-app purchase must be submitted with a new app version"
- guideline/2-1
- App Store Connect offer codes: the limits we hit
- Every guideline and message we hit
Sources
- App Store Connect Help: developer.apple.com/help/app-store-connect/ (read Oct 24, 2026)
- App Store Connect API: developer.apple.com/documentation/appstoreconnectapi
- Our notes from the October 2026 submission rounds: tensorust.com/reports/app-store-review-times/2026-10/
Up next
Often comes with this one"Your first in-app purchase must be submitted with a new app version"The next rule our apps ran into, with the cases and the fix.Read it next →Did this answer your question?