v1

latestOpenAPI 3.0.32026-07-248519153.1 KB
Translations

Launch AI or Crowdin translation for a quiz

Queue a translation of the quiz into one or more target languages.

  • method=ai (default) — uses the platform LLM. Returns 202 Accepted with async=true. Poll status_url (or GET /quizzes/{quizId}/translation-status) for progress.
  • method=crowdin — uploads the quiz to the project's Crowdin configuration (must be enabled via PUT /project/translation-connections).

If a translation is already running for this quiz the request is a no-op and returns the in-progress status. Each completed language creates or updates a sibling Quiz row (see GET /quizzes/{quizId}/translations).

post/quizzes/{quizId}/translate

Path parameters

quizIdinteger required

Request body

languagesstring[] required

Target languages. Accepts both platform codes (es, pt, fr) and Crowdin codes (es-ES, pt-PT, fr). Codes are normalised to Crowdin form server-side. See GET /project/translation-languages.

method'ai' | 'crowdin'

Translation provider. crowdin requires Crowdin connection enabled.

custom_promptstring nullable

AI-only. Overrides the project default for this single run.

save_promptboolean

AI-only. When true and custom_prompt is supplied, persist it on the project as the new default for subsequent translations.

Example request

{
  "languages": [
    "es",
    "fr",
    "de",
    "pt-BR"
  ]
}

Response

Translation queued

successinteger
asyncboolean
methodstring
statusstring
status_urlstring uri

GET this URL to poll progress (see TranslationStatus schema).

languagesstring[]
messagestring

Example response

{
  "success": 1,
  "async": true,
  "method": "ai",
  "status": "queued",
  "message": "AI translation queued — poll status_url for progress."
}