> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# useTranscription

> Returns information about a meeting's current transcription state, along with helper functions that wrap daily-js transcription related methods.

`useTranscription(params?) : Object`

`useTranscription` can also be used to set up optional callbacks for transcription [events](/reference/daily-js/events/transcription-events).

## Parameters (optional)

An object with the following optional properties:

<ParamField body="onTranscriptionError" type="Function">
  Callback for the [`"transcription-error"`](/reference/daily-js/events/transcription-events#transcription-error) event.
</ParamField>

<ParamField body="onTranscriptionMessage" type="Function">
  Callback for the [`"transcription-message"`](/reference/daily-js/events/transcription-events#transcription-message) event.
</ParamField>

<ParamField body="onTranscriptionStarted" type="Function">
  Callback for the [`"transcription-started"`](/reference/daily-js/events/transcription-events#transcription-started) event.
</ParamField>

<ParamField body="onTranscriptionStopped" type="Function">
  Callback for the [`"transcription-stopped"`](/reference/daily-js/events/transcription-events#transcription-stopped) event.
</ParamField>

<ParamField body="onTranscriptionAppData" type="Function">
  <Badge variant="warning">Deprecated 0.18.0</Badge> Callback for the [`"app-message"`](/reference/daily-js/events/messaging-events#app-message) event from transcription. This parameter is deprecated; use `onTranscriptionMessage` instead.
</ParamField>

## Return value

An object with the following properties:

<ResponseField name="error" type="boolean">
  `true` in the event of a [`"transcription-error"`](/reference/daily-js/events/transcription-events#transcription-error).
</ResponseField>

<ResponseField name="isTranscribing" type="boolean">
  Returns `true` after transcription has started.
</ResponseField>

<ResponseField name="language" type="string">
  Returns the language applied for the transcription. Please check Deepgram's [language](https://developers.deepgram.com/documentation/features/language/) docs for details.
</ResponseField>

<ResponseField name="model" type="string">
  Returns the model applied for transcription. Please check Deepgram's [model](https://developers.deepgram.com/documentation/features/model/) docs for more details.
</ResponseField>

<ResponseField name="profanity_filter" type="boolean">
  Returns `true` when profanity filter is enabled. Please check Deepgram's [profanity filter](https://developers.deepgram.com/documentation/features/profanity-filter/) docs for more details.
</ResponseField>

<ResponseField name="redact" type="boolean | array">
  Returns the redaction applied for transcription. Please check Deepgram's [redaction](https://developers.deepgram.com/documentation/features/redact/) docs for more details.
</ResponseField>

<ResponseField name="startedBy" type="string">
  Returns the `session_id` for the participant who initiated the transcription.
</ResponseField>

<ResponseField name="startTranscription" type="Function">
  See `daily-js` [`startTranscription()`](/reference/daily-js/instance-methods/start-transcription).
</ResponseField>

<ResponseField name="stopTranscription" type="Function">
  See `daily-js` [`stopTranscription()`](/reference/daily-js/instance-methods/stop-transcription).
</ResponseField>

<ResponseField name="tier" type="string">
  This field is deprecated, use `model` instead.
</ResponseField>

<ResponseField name="transcriptions" type="Transcription[]">
  Array of `Transcription` object. See [Transcription](/reference/daily-js/instance-methods/start-transcription) for more information.
</ResponseField>

<ResponseField name="transcriptionStartDate" type="Date">
  Timestamp for when the transcription started.
</ResponseField>

<ResponseField name="updatedBy" type="string">
  Returns the `session_id` for the participant who updated the transcription most recently.
</ResponseField>

```json theme={null}
{
  "error": false,
  "isTranscribing": true,
  "language": "en",
  "model": "nova-2-general",
  "profanity_filter": false,
  "redact": "false",
  "startedBy": "0e92c476-3d2f-4ddc-b814-9447cd7e3b90",
  "startTranscription": <Function>,
  "stopTranscription": <Function>,
  "transcriptions": <Object>,
  "transcriptionStartDate": "Mon Sept 05 2022 10:33:30 GMT+0200 (Central European Summer Time)",
  "updatedBy": "0e92c476-3d2f-4ddc-b814-9447cd7e3b90"
}
```

## Example

```jsx theme={null}
import { useTranscription } from '@daily-co/daily-react';

export const useTranscriptionDemo = () => {
  const { isTranscribing } = useTranscription();

  return <div>{!isTranscribing ? 'Not' : ''} transcribing</div>;
};
```

## See also

<CardGroup>
  <Card title="daily-js methods" icon="code" iconType="solid">
    * [startTranscription()](/reference/daily-js/instance-methods/start-transcription)
    * [stopTranscription()](/reference/daily-js/instance-methods/stop-transcription)
  </Card>

  <Card title="Events" icon="bolt" iconType="solid">
    * [transcription-started](/reference/daily-js/events/transcription-events#transcription-started)
    * [transcription-stopped](/reference/daily-js/events/transcription-events#transcription-stopped)
    * [transcription-error](/reference/daily-js/events/transcription-events#transcription-error)
    * [transcription-message](/reference/daily-js/events/transcription-events#transcription-message)
  </Card>
</CardGroup>
