Translate template copy into locales
Generate one LLM-translated variant per requested BCP-47 locale from a source body (+ optional subject). placeholders, URLs, and phone numbers are copied verbatim; an optional channel hint enforces per-channel length caps (SMS ≤160, push ≤120). Returns a directly-usable LocaleVariantSet — nothing is persisted; the send pipeline later picks each recipient’s variant by their stored language. Review the variants in the composer and commit them via the regular template/campaign write endpoints.
Authorizations
Dashboard JWT token from Clerk
Headers
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
1 - 255Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
true, false Body
Source template body to translate.
1 - 8000BCP-47 target locales, e.g. ['fr', 'pt-BR'].
1 - 25 elements2 - 10Optional source subject line (email).
2000BCP-47 locale the source is written in; echoed back as the default variant.
2 - 10Channel hint enforcing per-channel length norms.
sms, rcs, whatsapp, email, push, voice Brand tone hint, e.g. 'formal' or 'friendly'.
120