App Store metadata is stored per locale (language) and per version. Use version localizations to manage description, keywords, promotional text, what’s new, support URL, and marketing URL.
name and subtitle in the App Information tab are not version-localization fields.
Use App Info localization endpoints instead:
GET /v1/connect/apps/:appId/app-infos
GET /v1/connect/app-infos/:appInfoId/localizations
PATCH /v1/connect/app-info-localizations/:localizationId
Most metadata can only be updated when the app is in an editable state (e.g. PREPARE_FOR_SUBMISSION). Promotional text can be updated at any time, even when the app is live.
List Localizations
GET /v1/connect/versions/:versionId/localizations
List all localizations (languages) for an App Store version. Use the version ID from List Versions.
Path Parameters
| Name | Type | Description |
|---|
| versionId | string | App Store version ID (e.g. c2db5998-ac17-47b5-a61a-3658540592f8) |
Response
{
"data": {
"data": [
{
"type": "appStoreVersionLocalizations",
"id": "e3c96adf-bba6-4459-8c3a-ed9c54f81af8",
"attributes": {
"locale": "en-US",
"description": "Tape Record turns your voice into beautifully styled recordings...",
"keywords": "record, voice, audio, cassette",
"promotionalText": null,
"whatsNew": "* Bug fixes\n* Performance improvements",
"supportUrl": "https://webmob.ee/support",
"marketingUrl": null
}
}
]
}
}
Attribute Reference
| Field | Description | Editable When |
|---|
| description | Full app description (max 4000 chars) | Editable state |
| keywords | Comma-separated keywords (max 100 chars) | Editable state |
| promotionalText | Promotional text (max 170 chars) | Anytime |
| whatsNew | ”What’s New in This Version” (max 4000 chars) | Editable state |
| supportUrl | Support URL | Editable state |
| marketingUrl | Marketing URL | Editable state |
| locale | Language (e.g. en-US, tr) | Set at creation |
Get Localization
GET /v1/connect/localizations/:localizationId
Get a single localization’s metadata.
Update Localization
PATCH /v1/connect/localizations/:localizationId
Update metadata for a localization. Send only the attributes you want to change.
Request Body
{
"attributes": {
"description": "Updated app description...",
"keywords": "record, voice, audio, tape, memo",
"whatsNew": "* Bug fixes\n* New tape styles",
"promotionalText": "Try the new neon tape!",
"supportUrl": "https://example.com/support",
"marketingUrl": "https://example.com"
}
}
| Attribute | Type | Max Length |
|---|
| description | string | 4000 |
| keywords | string | 100 |
| promotionalText | string | 170 |
| whatsNew | string | 4000 |
| supportUrl | string | — |
| marketingUrl | string | — |
Keywords: Use commas to separate. No spaces after commas. Apple recommends 5–10 high-value keywords. Avoid duplication with your app name and subtitle.
Code Example
# List localizations for a version
curl -X GET "https://api.appeeky.com/v1/connect/versions/c2db5998-ac17-47b5-a61a-3658540592f8/localizations" \
-H "X-API-Key: YOUR_APEEKY_KEY" \
-H "X-ASC-Issuer-Id: YOUR_ISSUER_ID" \
-H "X-ASC-Key-Id: YOUR_KEY_ID" \
-H "X-ASC-Private-Key: YOUR_PRIVATE_KEY"
# Update keywords
curl -X PATCH "https://api.appeeky.com/v1/connect/localizations/e3c96adf-bba6-4459-8c3a-ed9c54f81af8" \
-H "X-API-Key: YOUR_APEEKY_KEY" \
-H "X-ASC-Issuer-Id: YOUR_ISSUER_ID" \
-H "X-ASC-Key-Id: YOUR_KEY_ID" \
-H "X-ASC-Private-Key: YOUR_PRIVATE_KEY" \
-H "Content-Type: application/json" \
-d '{"attributes":{"keywords":"record,voice,audio,cassette,memo"}}'