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

# Где найти идентификатор запроса?

> Найдите идентификатор запроса в заголовках или теле ответа в зависимости от типа API и отличайте идентификаторы запросов от идентификаторов асинхронных задач.

## Краткий ответ

При устранении неполадок API-вызова сначала зафиксируйте **название модели, эндпоинт и время вызова**. Затем проверьте заголовки HTTP-ответа на наличие `x-request-id` или `request-id`. Если эндпоинт возвращает ошибочный ответ, также проверьте тело JSON на наличие таких идентификаторов, как `request_id`, и используйте поле, которое можно найти в журналах APIYI.

Эндпоинты видео Wan и HappyHorse также возвращают `request_id` в теле ответа. Значение `task_id` в том же ответе используется для запроса состояния задачи видео и не совпадает с идентификатором запроса. Значение `id` или `task_id`, возвращаемое асинхронными эндпоинтами, такими как Seedance и Veo, также является идентификатором задачи видео.

<Info>
  На странице журналов APIYI можно выполнять поиск идентификаторов, отображаемых в фильтре «Идентификатор запроса / Идентификатор запроса вышестоящего сервиса / Идентификатор завершения». Откройте сведения о журнале в консоли и выполните поиск по идентификатору, предоставленному пользователем.
</Info>

## Начните с этих трёх шагов

<Steps>
  <Step title="Шаг 1: Подтвердите модель и эндпоинт">
    Зафиксируйте полное имя модели и фактический URL. Текстовые модели обычно используют `/v1/chat/completions`, модели для создания эмбеддингов — `/v1/embeddings`, модели для генерации изображений могут использовать `/v1/images/generations`, а модели для генерации видео — `/v1/videos` или асинхронный эндпоинт, специфичный для модели.
  </Step>

  <Step title="Шаг 2: Зафиксируйте время вызова">
    Зафиксируйте время отправки запроса и укажите часовой пояс, например 2026-08-25 14:32 (UTC+8). Если запрос был отправлен повторно, зафиксируйте приблизительное время каждой повторной попытки.
  </Step>

  <Step title="Шаг 3: Сохраните ответ и сведения в журнале">
    Сохраните код состояния HTTP, все заголовки ответа, всё тело ответа и исключение клиента. Затем откройте страницу «Журналы» в APIYI и выполните поиск по идентификатору запроса, идентификатору запроса upstream или идентификатору завершения.
  </Step>
</Steps>

## Где найти идентификатор запроса для каждого типа API

| Тип API                                | Где искать в первую очередь                                                                                                 | Поля, которые не следует путать                                                                                                                             |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Текстовые / чат-модели                 | Обычно проверяйте HTTP-заголовки ответа: `x-request-id` или `request-id`; также проверяйте тела ошибок                      | `id` в теле может быть идентификатором Completion, а не идентификатором запроса APIYI                                                                       |
| Модели изображений                     | Обычно проверяйте HTTP-заголовки ответа: `x-request-id` или `request-id`; также проверяйте тела ошибок                      | Не определяйте идентификатор объекта ответа изображения как идентификатор запроса APIYI только на основании его названия                                    |
| Модели эмбеддингов                     | Сначала проверьте фактические заголовки ответа; также проверьте тела ошибок                                                 | В текущих примерах для эмбеддингов в основном используется `data[].embedding`; в документации не определено единое расположение поля идентификатора запроса |
| Видео Wan / HappyHorse                 | `request_id` в теле ответа, а также заголовки ответа                                                                        | `output.task_id` — это идентификатор задачи видео, используемый для опроса                                                                                  |
| Видео Seedance                         | `x-request-id` в заголовках ответа; отдельно сохраните `id` верхнего уровня тела ответа                                     | `id` верхнего уровня — это идентификатор задачи видео, а не идентификатор запроса                                                                           |
| Veo и другие асинхронные API для видео | Если эндпоинт возвращает идентификатор запроса, сначала сохраните значение из заголовка ответа; также сохраните поля задачи | `id` / `task_id` в теле — это идентификатор задачи видео                                                                                                    |

<Warning>
  Имена HTTP-заголовков нечувствительны к регистру, но разделители в именах полей имеют значение: `x-request-id`, `request-id` и `request_id` — это разные варианты написания. Проверяйте как заголовки ответа, так и тела ошибок, вместо того чтобы искать только одно имя поля.
</Warning>

## Просмотр в коде

### Python

```python theme={null}
import requests

response = requests.post(
    "https://api.apiyi.com/v1/chat/completions",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "YOUR_MODEL",
        "messages": [{"role": "user", "content": "Test request"}],
    },
    timeout=60,
)

header_request_id = (
    response.headers.get("x-request-id")
    or response.headers.get("request-id")
)

try:
    body = response.json()
except ValueError:
    body = {}

# Use body.request_id only as a candidate; do not treat body.id as the APIYI Request ID automatically.
request_id = header_request_id or body.get("request_id")

print("status:", response.status_code)
print("request_id:", request_id)
print("body:", response.text)
```

### cURL

Используйте `-i`, чтобы вывести как заголовки ответа, так и тело ответа. Ищите `x-request-id` или `request-id` в заголовках:

```bash theme={null}
curl -i "https://api.apiyi.com/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL",
    "messages": [{"role": "user", "content": "Test request"}]
  }'
```

Для вызовов видео Wan или HappyHorse также сохраните два поля тела ответа:

```python theme={null}
body = response.json()
request_id = body.get("request_id")
task_id = body.get("output", {}).get("task_id")
```

## Поиск в журналах консоли

<Steps>
  <Step title="Откройте журналы вызовов">
    Войдите в консоль APIYI, откройте раздел «Журналы» и просмотрите сведения о вызове, который требуется исследовать.
  </Step>

  <Step title="Введите доступный идентификатор">
    Вставьте идентификатор в фильтр «ID запроса / ID запроса вышестоящего сервиса / ID завершения». Предпочтительно использовать ID запроса из заголовков ответа APIYI; если он недоступен, попробуйте ID запроса вышестоящего сервиса или ID завершения.
  </Step>

  <Step title="Сравните сведения">
    Сравните модель, время вызова, эндпоинт, канал, статус HTTP, код ошибки и запись тарификации, чтобы определить, достиг ли запрос APIYI, достиг ли он вышестоящего провайдера и следует ли повторить его после изменения запроса.
  </Step>
</Steps>

<Tip>
  Если пользователю известно только примерное время сбоя, поиск всё равно можно сузить по модели, эндпоинту и времени. ID запроса обычно позволяет гораздо быстрее найти отдельный вызов.
</Tip>

## Почему может отсутствовать идентификатор запроса?

Если запрос завершается с ошибкой до получения HTTP-ответа — например, из-за разрешения DNS-имени, установки TCP/TLS-соединения, отклонения локальным прокси или тайм-аута соединения на стороне клиента, — у APIYI нет возможности вернуть заголовки ответа. В этом случае идентификатор запроса недоступен клиенту.

Вместо этого предоставьте следующие данные:

* Исходное исключение клиента и полную трассировку стека;
* Время запроса и часовой пояс;
* Модель и эндпоинт;
* HTTP-клиент, прокси или сетевое окружение;
* Идентификатор запроса из успешного или повторного запроса, если он доступен.

<Warning>
  Не отправляйте полный API-ключ в материалах для устранения неполадок. Замаскируйте среднюю часть ключа и не раскрывайте персональные данные или тело запроса, содержащее полный текст рабочей информации или изображения.
</Warning>

## Что предоставить в службу поддержки

* ID запроса;
* ID запроса вышестоящего сервиса или ID выполнения, если они отображаются в журналах;
* Название модели и эндпоинт;
* Время вызова с указанием часового пояса;
* Статус HTTP, полное тело ответа и исключение клиента;
* Запрос с удалёнными конфиденциальными данными, а также код ошибки и статус тарификации, отображаемые в журналах консоли.

## Связанная документация

<CardGroup cols={2}>
  <Card title="Как устранить ошибки моделей?" icon="alert-triangle" href="/ru/faq/model-error-troubleshooting">
    Устранение проблем с параметрами, группами, тайм-аутами и ошибками моделей
  </Card>

  <Card title="Как просмотреть журналы вызовов?" icon="file-text" href="/ru/faq/call-logs">
    Просмотр вызовов API, ошибок и сведений о тарификации в консоли
  </Card>

  <Card title="API для запросов к журналам" icon="search" href="/ru/api-capabilities/log-query">
    Запрос журналов вызовов по времени, модели или request\_id
  </Card>

  <Card title="Рекомендации по работе с API изображений" icon="image" href="/ru/api-capabilities/image-api-best-practices">
    Устранение проблем с тайм-аутами изображений, разрывами соединения, тарификацией и идентификаторами запросов
  </Card>
</CardGroup>
