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

# Expressive v3

> Expressive v3 on the Summer API: $0.08 per 1,000 characters, about 5 s, MP3 saved to your Summer library. Model id dialogue/expressive-v3.

Expressive v3: a dialogue model for your game.

| | |
| - | - |
| Model id | `dialogue/expressive-v3` |
| Default for | `dialogue/default` |
| Price | \$0.08 per 1,000 characters |
| Typical time | about 5 s |
| Does | [Dialogue](https://docs.summerengine.com/api/models.md#dialogue) |
| Output | MP3 |
| Made by | Summer |
| Try it | [Examples and playground on summerengine.com](https://www.summerengine.com/models/expressive-v3) |
| Commercial use | Yes |

## Best for

* The default dialogue model: what `dialogue/default` runs today.
* NPC dialogue with emotion, pauses, and delivery that fits the scene.
* Multi-character conversations generated in one pass.
* Placeholder voice-over for cutscenes before recording actors.

## Price

**\$0.08 per 1,000 characters**, counted from `inputs`. Exact list price: `0.08 USD`.

No markup: this is the provider's list price, checked 2026-10-23. A failed job costs nothing. Get the exact price of one request, free and without a key, from [`POST /v1/estimate`](https://docs.summerengine.com/api/jobs#know-the-price-first).

## Example call

Sign in once with `summer login`; over HTTP, send `Authorization: Bearer $SUMMER_TOKEN` after `export SUMMER_TOKEN=$(summer token)` ([sign-in](https://docs.summerengine.com/api/sign-in.md)). This job comes back done in the same call, with the file ready to download.

```bash CLI theme={null}
npx -y summer-engine@latest api run dialogue/expressive-v3 \
  --input '{"inputs":[{"text":"Did you hear that?","voiceId":"JBFqnCBsd6RMkjVDRZzb"},{"text":"Only the wind. Keep walking.","voiceId":"IKne3meq5aSn9XLyUdCD"}]}' \
  --download .
```

```bash curl theme={null}
curl https://www.summerengine.com/v1/jobs \
  -H "Authorization: Bearer $SUMMER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Prefer: wait=60" \
  -d '{"model":"dialogue/expressive-v3","input":{"inputs":[{"text":"Did you hear that?","voiceId":"JBFqnCBsd6RMkjVDRZzb"},{"text":"Only the wind. Keep walking.","voiceId":"IKne3meq5aSn9XLyUdCD"}]}}'
```

```ts TypeScript theme={null}
const res = await fetch("https://www.summerengine.com/v1/jobs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SUMMER_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
    Prefer: "wait=60",
  },
  body: JSON.stringify({
    "model": "dialogue/expressive-v3",
    "input": {
      "inputs": [
        {
          "text": "Did you hear that?",
          "voiceId": "JBFqnCBsd6RMkjVDRZzb"
        },
        {
          "text": "Only the wind. Keep walking.",
          "voiceId": "IKne3meq5aSn9XLyUdCD"
        }
      ]
    }
  }),
});
const { job } = await res.json();
console.log(job.state, job.id);
```

```python Python theme={null}
import os, uuid, requests

res = requests.post(
    "https://www.summerengine.com/v1/jobs",
    headers={
        "Authorization": f"Bearer {os.environ['SUMMER_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
        "Prefer": "wait=60",
    },
    json={"model": "dialogue/expressive-v3", "input": {"inputs": [{"text": "Did you hear that?", "voiceId": "JBFqnCBsd6RMkjVDRZzb"}, {"text": "Only the wind. Keep walking.", "voiceId": "IKne3meq5aSn9XLyUdCD"}]}},
)
job = res.json()["job"]
print(job["state"], job["id"])
```

```js MCP theme={null}
// Summer's MCP server: npx -y summer-engine@latest setup <agent> --yes
summer_api_run({
  model: "dialogue/expressive-v3",
  input: {
    inputs: [{
      text: "Did you hear that?",
      voiceId: "JBFqnCBsd6RMkjVDRZzb"
    }, {
      text: "Only the wind. Keep walking.",
      voiceId: "IKne3meq5aSn9XLyUdCD"
    }]
  },
  out: "assets",
})
```

The finished job has `state` `"done"` and `result.assets`: one entry per file, each with `assetId`, `fileUrl` (a Summer URL) and `thumbnailUrl`. Download the file into your project, or import it in Summer Engine by its asset id.

## Input

Send these fields in `input`. The full JSON Schema is `inputSchema` in [`GET /v1/models/dialogue/expressive-v3`](https://docs.summerengine.com/api/reference/get-models-model).

| Field | Type | About |
| - | - | - |
| `inputs` | array of objects | Dialogue: one line per entry. 1 to 40 items |
| `voiceSettings` | object | Speech: voice tuning. |

## Voices

Each line in `inputs` needs a `voiceId` from this list. These are Summer's curated voices; the live list is `voices` in `GET /v1/models/dialogue/expressive-v3`. For more, search the public voice library by words, language, gender, age or accent, each with a sample: `GET /v1/voices?model=dialogue/expressive-v3&search=old+wizard` (signed in).

> **All 21 voices**
>
> | Name | voiceId |
> | - | - |
> | George | `JBFqnCBsd6RMkjVDRZzb` |
> | Charlie | `IKne3meq5aSn9XLyUdCD` |
> | Jessica | `cgSgspJ2msm6clMCkdW9` |
> | Harry | `SOYHLrjzK2X1ezoPC6cr` |
> | Callum | `N2lVS1w4EtoT3dr4eOWO` |
> | Brian | `nPczCjzI2devNBz1zQrb` |
> | Bill | `pqHfZKP75CvOlQylNhV4` |
> | Sarah | `EXAVITQu4vr4xnSDxMaL` |
> | Lily | `pFZP5JQG7iQjIQuC4Bku` |
> | Liam | `TX3LPaxmHKxFdv7VOQHJ` |
> | Matilda | `XrExE9yKIg1WjnnlVkGX` |
> | Daniel | `onwK4e9ZLuTAKqWW03F9` |
> | River | `SAz9YHcvj6GT2YYXdXww` |
> | Bella | `hpp4J3VqNfWAUOO0d1Us` |
> | Laura | `FGY2WhTYpPnrIDTdsKH5` |
> | Alice | `Xb7hH8MSUJpSbSDYk0k2` |
> | Adam | `pNInz6obpgDQGcFmaJgB` |
> | Eric | `cjVigY5qzO86Huf0OWal` |
> | Chris | `iP95p4xoKVk53GoZ742B` |
> | Roger | `CwhRBWXzGAHq8TQ4Fs17` |
> | Will | `bIHbv24MWmeRgasZH58o` |

## For agents

This page as Markdown: [https://docs.summerengine.com/api/models/dialogue/expressive-v3.md](https://docs.summerengine.com/api/models/dialogue/expressive-v3.md). The live record with the JSON Schema: `GET https://www.summerengine.com/v1/models/dialogue/expressive-v3`, public, no sign-in.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.