***

title: liveTranslate
slug: /reference/typescript/relay/call/live-translate
description: Start or stop live translation on a call.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

Start or stop live translation on the call. Translates spoken audio into
another language in real-time.

## **Parameters**

<ParamField path="action" type="Record<string, unknown>" required={true} toc={true}>
  Action configuration for the live translation.
</ParamField>

<Indent>
  <ParamField path="action.action" type="string" required={true} toc={true}>
    The action to perform.

    * `"start"` -- begin live translation
    * `"stop"` -- end live translation
  </ParamField>

  <ParamField path="action.source_language" type="string" toc={true}>
    Source language code (e.g., `"en-US"`).
  </ParamField>

  <ParamField path="action.target_language" type="string" toc={true}>
    Target language code (e.g., `"es-ES"`).
  </ParamField>
</Indent>

<ParamField path="statusUrl" type="string | undefined" toc={true}>
  URL to receive translation results via webhook.
</ParamField>

## **Returns**

`Promise<Record<string, unknown>>` -- Server response confirming the operation.

## **Example**

```typescript {13}
import { RelayClient } from '@signalwire/sdk';

const client = new RelayClient({
  project: process.env.SIGNALWIRE_PROJECT_ID!,
  token: process.env.SIGNALWIRE_TOKEN!,
  contexts: ['default']
});

client.onCall(async (call) => {
  await call.answer();

  // Start live translation from English to Spanish
  await call.liveTranslate({
    action: 'start',
    source_language: 'en-US',
    target_language: 'es-ES',
  });

  // Let the call proceed...
  await call.waitForEnded();
});

await client.run();
```