Guide
Update App Store Metadata with the App Store Connect API
You can update App Store metadata through the App Store Connect REST API instead of typing it into the web interface. Name and subtitle are attributes of app info localizations; description, keywords, promotional text, What's New and URLs are attributes of app store version localizations. Apple says promotional text can be changed at any time, and the other version attributes when the app is in an editable state.
Updated
Which resource holds which field
| Field | API resource | Notes |
|---|---|---|
| Name, subtitle | App info localization | Shared across platforms, localized per language |
| Privacy policy text and URLs | App info localization | Also localized |
| Description | App store version localization | Version-specific |
| Keywords | App store version localization | 100 bytes, not characters |
| Promotional text | App store version localization | Can be updated at any time |
| What's New | App store version localization | Not available for a first version |
| Support and marketing URLs | App store version localization | Support URL is required |
Each row comes from Apple's attribute lists: app store version localizations carry locale, description, keywords, marketing URL, promotional text, support URL and What's New; app info localizations carry locale, name, subtitle and the privacy fields.
Access
Apple says the API can automate certain tasks in App Store Connect. Keys are role-based, and the Account Holder must request API access in App Store Connect before anyone can create one. Use the narrowest role that can edit metadata, and keep the private key out of source control.
A safe routine
- Export the current state. Read the existing localizations for the editable version and save them as files. This is your rollback.
- Prepare changes in files, one per locale. Keep them in version control so diffs are visible.
- Validate before sending. Check name and subtitle at 30 characters, promotional text at 170, description and What's New at 4,000, and the keyword field at 100 bytes. The keyword field counts bytes, so a Japanese list holds about a third as many characters. Use the metadata limits tool or your own script.
- Diff against the export. Review every changed locale. Check every locale code against the locale code reference so each change lands on the language you intend.
- Send to an editable version only. Apple says other attributes than promotional text need the app in an editable state. If no version is editable, you need to create the next version first.
- Check the result. After a write, Apple says changes can take up to 24 hours to appear on the App Store. Read the data back through the API rather than relying on the storefront.
- Submit for review yourself. Writing metadata does not submit anything. Submission is a separate action you take when the draft is correct.
Worked example
A hypothetical habit tracker, Streakly, has English and German localizations and wants to change the German keyword field. The new value is "Gewohnheiten,Tagesplaner,Routine,Ziele", which is 38 characters and 38 bytes, safely under 100. The change touches one attribute of one localization. The script diffs it against the export, shows one changed field, sends one request and reads it back. Nothing else is modified.
If the new value had been Japanese, the same check would run on bytes, not on characters.
What the API does not do for you
- It does not research keywords or decide what to write.
- It does not make a change visible to everyone immediately.
- Apple's attribute lists above name the fields; media such as screenshots have their own resources, and Apple notes that older screenshot and preview relationships are deprecated in favor of its asset library.
In LocalASO
LocalASO works without an Apple account by reading the public listing. If you add an App Store Connect key with the App Manager role, it can show your real keyword field and all localizations, and upload listing text to App Store Connect as a draft after you review an old-versus-new diff. It only writes to an editable version or creates the next one, and it never submits an app for review, touches builds or deletes anything. You submit from App Store Connect. Setup is in the App Store Connect docs.
Sources
- Apple: developer.apple.com/help/app-store-connect/get-started/app-store-connect-api (checked November 1, 2026)
- Apple: developer.apple.com/documentation/appstoreconnectapi/app-store-version-localizations (checked November 1, 2026)
- Apple: developer.apple.com/documentation/appstoreconnectapi/appstoreversionlocalization/attributes-data.dictionary (checked November 1, 2026)
- Apple: developer.apple.com/documentation/appstoreconnectapi/appinfolocalization/attributes-data.dictionary (checked November 1, 2026)
- Apple: developer.apple.com/help/app-store-connect/create-an-app-record/view-and-edit-app-information (checked November 1, 2026)
- Apple: developer.apple.com/help/app-store-connect/manage-app-information/localize-app-information (checked November 1, 2026)
- Apple: developer.apple.com/help/app-store-connect/reference/platform-version-information#keywords (checked November 1, 2026)
- Apple: developer.apple.com/app-store/product-page (checked November 1, 2026)
- Apple: developer.apple.com/help/app-store-connect/reference/platform-version-information#whats-new (checked November 1, 2026)
- Apple: developer.apple.com/help/app-store-connect/reference/platform-version-information#support-url (checked November 1, 2026)
Do this for every country, in minutes