> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.deepgram.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.deepgram.com/_mcp/server.

# Smart Formatting

* [Try Smart Format in the Playground](https://playground.deepgram.com/?endpoint=listen\&smart_format=true\&language=en\&model=nova-3)

`smart_format` *boolean* Default: `false`

Pre-recorded  Streaming:Nova Streaming: Flux  All available languages

Deepgram's Smart Format feature applies additional formatting to transcripts to optimize them for human readability.

Smart Format capabilities vary between models. When Smart Format is turned on, Deepgram will always apply the best-available formatting for your chosen combination of model, model option and language.

At minimum, Smart Format applies:

* [Punctuation](/docs/punctuation/)
* [Paragraphs](/docs/paragraphs/) (for whitespace delineated languages, such as English or Spanish)

Smart Format has the broadest support for English-language models. In English, Smart Format is capable of formatting things like dates, times, currency amounts, phone numbers, emails, and URLs.

> **Info**
>
> For pre-recorded audio sent with [`multichannel=true`](/docs/multichannel), English formatting can use context from all channels, so formatting on one channel can depend on what was said on another. Streaming uses only the current channel. See [Entity Detection: Multichannel Audio](/docs/detect-entities#multichannel-audio).

On non-English models, Smart Format will apply all available formatters for that language. This will always include [punctuation](/docs/punctuation/) and [paragraphs](/docs/paragraphs/), with [numerals](/docs/numerals) support also available for select languages.

## Enable Feature

To enable Smart Formatting, when you call Deepgram's API, add a `smart_format` parameter in the query string and set it to `true`:

`smart_format=true`

> **Info**
>
> Smart Format enables Deepgram's Punctuation feature. If you've set `smart_format=true`, no need to also set `punctuate=true`.

To transcribe audio from a file on your computer, run the following cURL command in a terminal or your favorite API client.

**`cURL`**

```bash cURL
curl \
  --request POST \
  --header 'Authorization: Token YOUR_DEEPGRAM_API_KEY' \
  --header 'Content-Type: audio/wav' \
  --data-binary @youraudio.wav \
  --url 'https://api.deepgram.com/v1/listen?smart_format=true'
```

> **Warning**
>
> Replace `YOUR_DEEPGRAM_API_KEY` with your [Deepgram API Key](/docs/create-additional-api-keys).

## Results

Once applied, results will appear in the transcript.

| Source                                                                                                                                                                                                                                                                                                                                       | Before Smart Format                                                                                                                                                                                                                                                                                                                          | After Smart Format                                                                                                                                                                                                                                         |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| i'm recording this at eight thirty seven pm on wednesday it's november second twenty twenty two i just ate thirty three grams of pasta and then drank fifty five milliliters of water at three hundred main street then i walked down to one two three southeast main street to get my package with tracking number one z five seven a two b | i'm recording this at eight thirty seven pm on wednesday it's november second twenty twenty two i just ate thirty three grams of pasta and then drank fifty five milliliters of water at three hundred main street then i walked down to one two three southeast main street to get my package with tracking number one z five seven a two b | I'm recording this at 8:37 PM on Wednesday, it's November 2 2022. I just ate 33 grams of pasta, and then drank 55 milliliters of water at 300 Main Street. Then I walked down to 123 Southeast Main Street to get my package with tracking number 1Z57A2B. |

## Streaming Finalization Behavior

When using Smart Format with streaming audio, Deepgram will attempt to format entities as they are spoken. For entities that seem like they may be incomplete, our system will:

* Wait until the speaker continues to non-entity speech, OR
* Finalize the transcript after **3 seconds of silence**
* Format the entity based on the available audio at that point

This approach ensures transcripts are returned promptly while maintaining formatting precision.

For more control over finalization timing:

* Send a `Finalize` message to end transcription earlier than the 3-second threshold
* Use the `no_delay` parameter (see below)

## Using No Delay

> **Info**
>
> Setting `no_delay=true` forces immediate finalization of streaming transcripts without waiting for entity completion. NOTE: This will result in skipping formatting altogether in many cases.

To override the default waiting behavior and return results immediately, add the parameter `no_delay=true` to your streaming API request:

**`cURL`**

```bash cURL
curl \
  --request POST \
  --header 'Authorization: Token YOUR_DEEPGRAM_API_KEY' \
  --header 'Content-Type: audio/wav' \
  --data-binary @youraudio.wav \
  --url 'https://api.deepgram.com/v1/listen?smart_format=true&no_delay=true'
```

> **Warning**
>
> Replace `YOUR_DEEPGRAM_API_KEY` with your [Deepgram API Key](/docs/create-additional-api-keys).

## Additional Formatters

These formatters are not included in Smart Formatting but may be enabled individually.

### Measurements

Read the [Measurements](/docs/measurements) documentation.

### Dictation

Read the [Dictation](/docs/dictation) documentation.

---