Listing localization (async)
AI-translate a listing into target locales — 15 credits per locale.
Updated 2026-05-24
3 min read
Localize a project's store listing from a source locale into up to 6 target locales in a single call. The translation is culturally aware (not just literal) and respects per-store ASO limits.
Async. Returns 202 + job_id; poll /api/v1/jobs/:id for progress. 15 credits per locale, deducted from the project's billing organization. 5–15 seconds per locale.
Kick off a translation
bash
POST /api/v1/projects/:projectId/listings/localize
Content-Type: application/json
{
"store_type": "appstore",
"source_locale": "en-US",
"target_locales": ["tr-TR", "de-DE", "es-ES"],
"save_to_db": true
}
# Scope: store:write
# Returns 202 + { job_id, status: "pending", type: "listing_localization", poll_url, target_locales }Poll for completion
bash
GET /api/v1/jobs/:jobId
# Status progression: pending → processing → completed | failed
# Progress: { completed: N, total: target_locales.length }
# Result on completion includes per-locale translation output and credits_usedNotes
source_localemust exist as a listing for the project + store. If not, you get422 SOURCE_NOT_FOUND.- Credits are deducted only for locales that successfully translate. Failed locales don't charge.
- With
save_to_db: falseyou get the translations inresult.resultsbut no DB writes — useful for dry runs. - Maximum 6 target_locales per call to stay inside the 120-second background budget.