---
title: "GET /orders/{order}/items/{item}/text — Текст чанка"
url: https://lumean.app/developers/docs/api/get-orders-order-items-item-text
locale: ru
description: "Текст чанка"
generated: 2026-11-08
operationId: orderItem.text
method: GET
path: "/orders/{order}/items/{item}/text"
scopes: [orders.read]
spec_version: 1.0.0
---

# GET /orders/{order}/items/{item}/text

**Текст чанка**

Возвращает текст, с которым чанк ушёл в генерацию.

Основной сценарий — починка чанка со статусом `policy_flagged`: провайдер отклонил
содержимое, и повтор с тем же текстом будет отклонён снова. Порядок такой:
забрать текст этой ручкой → переформулировать спорный фрагмент → отправить
`POST /orders/{order}/items/{item}/retry` с полем `text`.

Причину отклонения API не сообщает — поля с ней нет; правьте текст по своему
усмотрению.

Если текст удалён по сроку хранения заказа — `422` с `reason: input_expired`.
Восстановить его нельзя: создайте заказ заново (повтор с новым `text` при
этом по-прежнему доступен).

**Требуемое право ключа:** `orders.read`.

- Право ключа: `orders.read`

## Запрос

```bash
curl -X GET 'https://api.lumean.app/api/public/orders/{order}/items/{item}/text' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY'
```

## Параметры

| Поле | Где | Тип | Обяз. | Описание |
| --- | --- | --- | --- | --- |
| `order` | path | `string` | обяз. | UUID заказа — 36 символов вида `9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c`, не число. Берётся из поля `id`: его возвращает `POST /orders` при создании и `GET /orders` в списке. Чужой заказ по вашему ключу не откроется — придёт `404`. |
| `item` | path | `string` | обяз. | UUID фрагмента заказа (чанка) — 36 символов, не число и не порядковый номер. Берётся из поля `id` элемента: `GET /orders/{order}/items` отдаёт список, тот же набор лежит в `items[]` детального ответа заказа. Порядковый номер фрагмента — это соседнее поле `chunk_index`, в путь оно НЕ подставляется. |
| `X-Locale` | header | `string` | — | Язык локализованных текстов ответа (`message`, подписи, причины ошибок), код ISO-639-1. Необязателен; без него — язык аккаунта владельца ключа, затем `Accept-Language`, затем язык по умолчанию. Неизвестный или неподдерживаемый код пропускается так же, как отсутствующий. |
| `X-Timezone` | header | `string` | — | IANA-зона (`Europe/Moscow`), в которой ответ показывает моменты времени — ISO-8601 со смещением. Необязателен; без него даты приходят в UTC. Невалидная зона игнорируется. Применённую зону сервер возвращает в одноимённом заголовке ответа. |

## Тело запроса

Тела нет.

## Ответы

### 200 — Текст элемента

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `success` | `boolean` | обяз. | Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь `true`, а ошибка приходит телом другой формы, где этого поля может не быть вовсе. |
| `message` | `string` | обяз. | Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются. |
| `data` | `object` | обяз. | Полезная нагрузка ответа. |
| `data.text` | `string` | обяз. | Текст фрагмента как есть — вместе со всеми тегами. Именно его отправляют в `regenerate`, поправив нужное. |
| `data.length` | `integer` | обяз. | Полная длина текста в символах, вместе с тегами. |
| `data.original_text_length` | `integer` | обяз. | Синоним `free_length`, оставлен для обратной совместимости. |
| `data.free_length` | `integer` | обяз. | Наибольшая уже оплаченная длина фрагмента: в её пределах повтор бесплатен, сверх — доплата. |
| `data.billable_length` | `integer` | обяз. | Сколько символов текущего текста оплачивается. Бесплатны только наши теги пауз `{{pause=2s}}`; `[шёпот]` и `<break/>` уходят провайдеру и тарифицируются. |
| `data.max_raw_length` | `integer` | обяз. | Технический предел длины фрагмента — сколько система отдаст воркеру одним куском, в единице `capacity_unit`. Превышение — `422`. |
| `data.max_billable_length` | `integer` | обяз. | Предел по оплачиваемым символам. Превышение делает перегенерацию дороже либо недоступной. |
| `data.surcharge_applies` | `string` | обяз. | `true` — за длину сверх нормы будет доплата. Проверьте до отправки `regenerate`, чтобы не удивиться списанию. |
| `data.capacity_unit` | `string` | обяз. | Единица `max_raw_length` и `raw_length`: `chars` — символы, `utf8_bytes` — байты UTF-8 (Fish Audio считает лимит запроса в байтах: русская буква — 2 байта, латинская — 1). |
| `data.raw_length` | `integer` | обяз. | Длина текущего текста в `capacity_unit` — то, что сравнивается с `max_raw_length`. |

**Пример**

```json
{
  "success": true,
  "message": "Success",
  "data": {
    "text": "Welcome to our platform! This narration greets every new listener.",
    "length": 66,
    "original_text_length": 240
  }
}
```

### 401 — Не авторизован (отсутствует/невалидный X-API-KEY)

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `success` | `boolean` | обяз. | Всегда `false` в ответах об ошибке. |
| `message` | `string` | обяз. | Текст ошибки на языке ключа (задаётся заголовком `X-Locale`). |
| `data` | `null` — nullable | обяз. | Всегда `null`, когда запрос отклонён до обработки. |

**Пример**

```json
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
```

### 403 — Нет доступа к заказу или у ключа нет права orders.read

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `message` | `string` | обяз. | Error overview. |

**Пример**

```json
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
```

### 404 — Элемент не найден

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `message` | `string` | обяз. | Error overview. |

**Пример**

```json
{
  "success": false,
  "message": "Resource not found."
}
```

### 422 — Текст чанка удалён по сроку хранения (`reason: input_expired`)

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `success` | `boolean` | обяз. | Всегда `false` у ошибок. |
| `message` | `string` | обяз. | Причина отказа словами, на языке аккаунта. Для показа пользователю; ветвиться по ней нельзя — формулировки меняются. |
| `reason` | `string` | обяз. | Машиночитаемая причина бизнес-отказа (например, `input_expired`, `insufficient_balance`). Ветвите обработку по ней, а не по тексту `message`. |
| `error_code` | `string` | обяз. | Тот же машинный код, что в `reason`, — второе имя поля. Значения всегда совпадают. |

**Пример**

```json
{
  "success": true,
  "message": "string",
  "reason": "string",
  "error_code": "string"
}
```

---

- Эта же страница в браузере: https://lumean.app/developers/docs/api/get-orders-order-items-item-text
- Машинный справочник целиком: https://api.lumean.app/docs/llm.md
