# Опис полів Response Body

Опис полів тіла відповіді Claude API `/v1/messages`.

## Поля верхнього рівня

| Поле | Тип | Опис |
|------|------|------|
| **model** | string | Фактична назва моделі, наприклад `claude-opus-4-6` |
| **id** | string | Унікальний ідентифікатор відповіді, наприклад `msg_01Tgsr2QeH8AVXGoP2wAXRvU` |
| **type** | string | Фіксоване значення `"message"` |
| **role** | string | Фіксоване значення `"assistant"` |
| **content** | array | Масив блоків вмісту виводу моделі, включаючи текст, виклики інструментів, процес мислення тощо |
| **stop_reason** | string | Причина зупинки: `"end_turn"` (нормальне завершення), `"tool_use"` (потрібно виконати інструмент), `"max_tokens"` (досягнуто ліміт токенів) |
| **stop_sequence** | string/null | Послідовність, що спричинила зупинку, зазвичай `null` |
| **usage** | object | Статистика використання токенів (деталі нижче) |

## Типи блоків content

| Тип | Опис |
|------|------|
| **text** | Текстова відповідь моделі, містить поле `text` |
| **tool_use** | Запит на виклик інструменту, містить `name` (назва інструменту), `input` (параметри), `id` (ідентифікатор виклику, використовується для зіставлення з tool_result) |
| **thinking** | Розширений процес мислення (з'являється лише при увімкненому режимі thinking), містить поле `thinking` |

## Деталі поля usage

| Поле | Опис |
|------|------|
| **input_tokens** | Кількість вхідних токенів без влучення в кеш (тарифікуються за повною ціною) |
| **cache_creation_input_tokens** | Кількість токенів, закешованих у цьому запиті (запис у кеш, тарифікується вище за звичайний ввід) |
| **cache_read_input_tokens** | Кількість токенів із влученням у кеш (читання з кешу, тарифікується значно нижче за звичайний ввід) |
| **output_tokens** | Кількість вихідних токенів моделі |
| **service_tier** | Рівень обслуговування, наприклад `"standard"` |
| **inference_geo** | Регіон виведення, наприклад `"not_available"` означає відсутність інформації про регіон |

## Підполя cache_creation

| Поле | Опис |
|------|------|
| **ephemeral_5m_input_tokens** | Кількість токенів короткострокового кешу з TTL 5 хвилин |
| **ephemeral_1h_input_tokens** | Кількість токенів довгострокового кешу з TTL 1 година |

> **Про тарифікацію кешу**: Ціна за одиницю `cache_read_input_tokens` значно нижча за `input_tokens`, тоді як ціна за одиницю `cache_creation_input_tokens` трохи вища за звичайний ввід. Тому підтримка високого відсотка влучень у кеш під час безперервних розмов може суттєво знизити витрати. За допомогою метрики "відсоток влучень" у cc-viewer можна зручно відстежувати цю пропорцію.

## Значення stop_reason

- **end_turn**: Модель нормально завершила відповідь
- **tool_use**: Модель потребує виклику інструменту, content міститиме блок `tool_use`. У наступному запиті потрібно додати `tool_result` до messages для продовження розмови
- **max_tokens**: Досягнуто ліміт `max_tokens`, відповідь обрізана і може бути неповною
