---
title: "private-order.task.{orderId}"
url: https://lumean.app/en/developers/docs/realtime/order-task
locale: en
description: "Events for a single order. Someone else's order is out of reach: subscription auth returns `403`."
generated: 2026-10-17
scopes: [orders.read]
spec_version: 0.0.1
---

# private-order.task.{orderId}

Events for a single order. Someone else's order is out of reach: subscription auth returns `403`.

- Required scope: `orders.read`

## Channel parameters

| Field | Type | Description | Example |
| --- | --- | --- | --- |
| `orderId` | `uuid` | is the UUID from the `POST /orders` response. | `01a0d8c6-86d3-70b5-a86e-5a12b1d860df` |

## Events

### `.paragraph_regenerate.completed` — Paragraph regenerate completed

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `order_id` | `string` | required |  |
| `paragraph_index` | `integer` | required |  |
| `created_count` | `integer` | required |  |
| `failed_count` | `integer` | required |  |

### `.voice_search.queue.updated` — Voice search queue updated

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `order_id` | `string` | required |  |
| `queue_position` | `integer` | required |  |
| `queue_wait_seconds` | `integer \| null` | required |  |

### `.bulk_retry.completed` — Bulk retry completed

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `order_id` | `string` | required |  |
| `created_count` | `integer` | required |  |
| `failed_count` | `integer` | required |  |

### `.renamed` — Renamed

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `order` | `object` | required |  |
| `order.id` | `string` | required |  |
| `order.user_id` | `integer` | required |  |
| `order.name` | `string \| null` | required |  |
| `order.template` | `object` | required |  |
| `order.template.id` | `string` | required |  |
| `order.template.user_id` | `integer` | required |  |
| `order.template.slug` | `string` | required |  |
| `order.template.name` | `string` | required |  |
| `order.template.service_key` | `string` | required |  |
| `order.template.service` | `unknown` | required | May arrive as `null`. |
| `order.template.config` | `array<object>` | required |  |
| `order.template.is_public` | `boolean` | required |  |
| `order.template.folder_id` | `unknown` | required | May arrive as `null`. |
| `order.template.created_at` | `string (date-time)` | required |  |
| `order.template.updated_at` | `string (date-time)` | required |  |
| `order.template_id` | `string` | required |  |
| `order.task_type` | `string` — `tts` · `image` · `txt2img` · `remix` · `image_edit` · `voice_clone` · `sfx` · `music` · `voice_search` | required |  |
| `order.status` | `string` — `created` · `pending` · `in_progress` · `completed` · `result_delivered` · `failed` · `compensated` · `cancelled` · `partially_completed` | required |  |
| `order.price_units` | `number` | required |  |
| `order.price_formatted` | `number` | required |  |
| `order.currency_asset` | `object` | required |  |
| `order.currency_asset.id` | `unknown` | required | May arrive as `null`. |
| `order.currency_asset.code` | `string` | required |  |
| `order.currency_asset.kind` | `unknown` | required | May arrive as `null`. |
| `order.currency_asset.precision` | `integer` | required |  |
| `order.currency_asset.name` | `unknown` | required | May arrive as `null`. |
| `order.currency_asset.deleted_at` | `string (date-time) \| null` | required |  |
| `order.currency_asset.created_at` | `string (date-time) \| null` | required |  |
| `order.currency_asset.updated_at` | `string (date-time) \| null` | required |  |
| `order.total_tokens` | `unknown` | required | May arrive as `null`. |
| `order.total_duration_ms` | `unknown` | required | May arrive as `null`. |
| `order.tokens_from_quota` | `unknown` | required | May arrive as `null`. |
| `order.tokens_from_payg` | `unknown` | required | May arrive as `null`. |
| `order.tokens_spent` | `unknown` | required | May arrive as `null`. |
| `order.task_data` | `unknown` | required | May arrive as `null`. |
| `order.result` | `unknown` | required | May arrive as `null`. |
| `order.created_at` | `string (date-time)` | required |  |
| `order.updated_at` | `string (date-time)` | required |  |
| `order.files_expire_at` | `string (date-time) \| null` | required |  |
| `order.files_expired` | `boolean` | required |  |
| `order.retention` | `object` | required |  |
| `order.retention.chunks` | `object` | required |  |
| `order.retention.chunks.expires_at` | `string (date-time) \| null` | required |  |
| `order.retention.chunks.expired` | `boolean` | required |  |
| `order.retention.chunks.expires_early` | `boolean` | required |  |
| `order.retention.chunks.reason` | `unknown` | required | May arrive as `null`. |
| `order.retention.files` | `object` | required |  |
| `order.retention.files.expires_at` | `string (date-time) \| null` | required |  |
| `order.retention.files.expired` | `boolean` | required |  |
| `order.eta_seconds` | `unknown` | required | May arrive as `null`. |
| `order.eta_at` | `string (date-time) \| null` | required |  |
| `order.completed_chunks` | `unknown` | required | May arrive as `null`. |
| `order.total_chunks` | `unknown` | required | May arrive as `null`. |
| `order.progress_percent` | `unknown` | required | May arrive as `null`. |
| `order.stitching` | `boolean` | required |  |
| `order.paragraphs` | `unknown` | required | May arrive as `null`. |

### `.status.changed` — Status changed

The order changed status.

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `order` | `object` | required | A snapshot of the order without the chunk list — per-chunk changes arrive as separate `item.status.changed` events. |
| `items_summary` | `object` | required | A summary of the order's chunks instead of the full list. |
| `items_summary.total` | `integer` | required |  |
| `items_summary.by_status` | `object<string, integer>` | required | How many chunks are in each status: `pending`, `processing`, `completed`, `failed`, `policy_flagged`. |
| `previous_status` | `string` — `created` · `pending` · `in_progress` · `completed` · `result_delivered` · `failed` · `compensated` · `cancelled` · `partially_completed` | required |  |
| `new_status` | `string` — `created` · `pending` · `in_progress` · `completed` · `result_delivered` · `failed` · `compensated` · `cancelled` · `partially_completed` | required |  |

### `.item.status.changed` — Item status changed

An order chunk changed status.

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `item` | `object` | required | The chunk index, its status, the result file path and the audio duration. |
| `item.id` | `string (uuid)` | — |  |
| `item.chunk_index` | `integer \| null` | — |  |
| `item.status` | `string` — `pending` · `processing` · `completed` · `failed` · `policy_flagged` | — |  |
| `item.result_file` | `object \| null` | — |  |
| `item.duration_ms` | `integer \| null` | — |  |
| `previous_status` | `string` | required |  |
| `new_status` | `string` | required |  |
| `completed_chunks` | `integer` | — |  |
| `total_chunks` | `integer` | — |  |
| `progress_percent` | `integer` | — |  |
| `stitching` | `boolean` | — | Whether the order's audio is being stitched. The last finished chunk of a multi-chunk order means stitching has started, not that the order is done: while `true` the result is not final. |

### `.stitch.changed` — Stitch changed

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `order_id` | `string` | required |  |
| `order_status` | `string` | required |  |
| `stitching` | `boolean` | required |  |
| `stitch` | `object` | required |  |
| `stitch.id` | `string` | required |  |
| `stitch.status` | `string` | required |  |
| `stitch.paragraph_index` | `unknown` | required | May arrive as `null`. |
| `stitch.restitch` | `boolean` | required |  |

### `.progress` — Progress

Live progress of the order.

**Payload**

| Field | Type | Req. | Description |
| --- | --- | --- | --- |
| `task_id` | `string (uuid)` | required | The order UUID — the same value as the channel's `{orderId}`. |
| `progress` | `number` | required | Kept for compatibility and **does not reflect progress** — rely on the `progress` events of the orders channel, or on `eta_seconds`. |
| `chunks_done` | `integer` | required | Kept for compatibility and **does not reflect how many parts are done** — count completion from `item.status.changed` events. |
| `chunks_total` | `integer` | required | Total number of parts in the order. |
| `duration_seconds` | `number` | — | How many seconds the task has been running. This is elapsed time, not remaining. |
| `eta_seconds` | `integer \| null` | — | Estimated time remaining, in seconds. Computed by the API from service statistics. |
| `eta_confidence` | `string \| null` — `high` · `medium` · `low` · `null` | — | How much to trust the estimate: `high` — statistics for chunks of the same size, `medium` — for the service overall, `low` — little data, so show it with a «≈». |
| `timestamp` | `string (date-time)` | — |  |

---

- This page in the browser: https://lumean.app/en/developers/docs/realtime/order-task
- Full machine-readable reference: https://api.lumean.app/docs/llm.md
