---
title: "Set Translation State"
method: POST
path: "/api/voice/translation/{call_id}/state"
tags: ["voice-control", "voice-control"]
---

# Set Translation State

`POST /api/voice/translation/{call_id}/state`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/voice/translation/{call_id}/state`
- Auth: none declared

Set the translator's whole state in ONE write.

Everything an armed mode implies — the MT engine pin, the TTS mute that
matches the mode, releasing a held engine — is derived from the intent by
`build_translation_patch`, so a caller cannot express half of it. Prefer
this over /mode + /mute-tts + /languages for any user-facing control.

## Path parameters

- `call_id` string, required

## Request body

- TranslationStateRequest: One stated intent for the whole translator — what the inbox pill means. The pill used to assemble its request from three or four sequential REST calls (clear-or-set language, un-pause, mute, then mode). Each of them round-tripped, each returned a state the next one raced against, and the order they happened to run in decided what the call ended up as. This is the same action expressed once.
  - `mode` string, nullable, required: 'off' | 'silent' | 'voice', or null to clear the per-call override and fall back to the saved config.
  - `primary_lang` string, nullable: Spoken target language to switch to in the same action. Omit to keep the current one.
  - `call_silent` boolean, nullable: Meet-mix-only mute: synthesis still runs and app listeners still hear it. Omit to leave as-is.

## Response `200`

Successful Response

- TranslationRuntimeState
  - `paused` boolean
  - `tts_muted` boolean
  - `call_tts_muted` boolean
  - `transcription_paused` boolean
  - `agent_disabled` boolean
  - `target_lang_override` string, nullable
  - `state` string, nullable
  - `configured_state` string, nullable
  - `suppressed_by` string, nullable
  - `speaks` boolean, nullable
  - `run_mt` boolean, nullable
  - `show_subtitle` boolean, nullable
  - `play_tts` boolean, nullable
  - `armed_by` string, nullable
  - `agent_session_active` boolean
  - `app_target_langs` string[], nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway.md) · [All operations](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/revisions/d84e7dc9977d?raw)
