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

# Интеграция и использование Fish Tasks API

> Fish music generation 集成指南 - XHuoAPI

Основная функция Fish Tasks API заключается в том, чтобы запрашивать статус выполнения задачи, используя ID задачи, сгенерированный Fish Audios Generation API.

В этом документе подробно описывается интеграция Fish Tasks API, чтобы помочь вам легко интегрировать и в полной мере использовать мощные функции этого API. С помощью Fish Tasks API вы можете легко реализовать запрос статуса выполнения задач Fish Audios Generation API.

## Процесс подачи заявки

Чтобы использовать Fish Tasks API, сначала необходимо перейти на страницу заявки [Fish Audios Generation API](https://api.xhuoapi.ai/documents/e681b715-54fd-4464-a59a-d7f14500e095) и подать заявку на соответствующую услугу, затем скопировать ID задачи Fish Audios Generation API, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/jxvue8.png" width="500" className="m-auto" />
</p>

Затем перейдите на страницу Tasks API [Fish Tasks API](https://api.xhuoapi.ai/documents/44c93949-1419-4a45-8db5-8a8335de7151) и подайте заявку на соответствующую услугу, после перехода на страницу нажмите кнопку «Acquire», как показано на изображении:

![Страница заявки](https://cdn.xhuoapi.ai/rci31i.png)

Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на [страницу входа](https://api.xhuoapi.ai), где вас пригласят зарегистрироваться и войти в систему. После входа или регистрации вы будете автоматически возвращены на текущую страницу.

При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать этот API.

## Пример запроса

Fish Tasks API можно использовать для запроса результатов Fish Audios Generation API. Для получения информации о том, как использовать Fish Audios Generation API, пожалуйста, обратитесь к документу [Fish Videos Generation API](https://api.xhuoapi.ai/documents/fish-audios-integration).

Мы возьмем один из ID задач, возвращенных сервисом Fish Audios Generation API, в качестве примера, чтобы продемонстрировать, как использовать этот API. Предположим, у нас есть ID задачи: 2725a2d3-f87e-4905-9c53-9988d5a7b2f5, далее мы покажем, как передать этот ID задачи.

### Пример задачи

<p>
  <img src="https://cdn.xhuoapi.ai/jxvue8.png" width="500" className="m-auto" />
</p>

### Установка заголовков запроса и тела запроса

**Request Headers** включает:

* `accept`: указывает на прием ответа в формате JSON, здесь указывается `application/json`.
* `authorization`: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.

**Request Body** включает:

* `id`: загруженный ID задачи.
* `action`: способ выполнения операции над задачей.

Настройка, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/xc5ejq.png" width="500" className="m-auto" />
</p>

### Пример кода

Можно заметить, что на правой стороне страницы автоматически сгенерирован код на различных языках, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/851zv2.png" width="500" className="m-auto" />
</p>

Некоторые примеры кода:

#### CURL

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/fish/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
  "action": "retrieve"
}'
```

### Пример ответа

После успешного запроса API вернет информацию о деталях этой задачи. Например:

```json theme={null}
{
  "_id": "68cfad98550a4144a5476a92",
  "id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
  "api_id": "8e6f8083-4683-45fe-a993-3e1d993fc999",
  "application_id": "3559d836-2505-46be-96ea-ea72bcb7c080",
  "created_at": 1758440856.34,
  "credential_id": "881ad87d-8ba7-40b7-ac45-d19e41ae6e3a",
  "request": {
    "action": "speech",
    "prompt": "a white siamese cat",
    "model": "fish-tts",
    "voice_id": "d7900c21663f485ab63ebdb7e5905036",
    "callback_url": "https://webhook.site/4815f79f-a40f-4078-ac85-1cc126b6bb34"
  },
  "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
  "type": "audios",
  "user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
  "response": {
    "success": true,
    "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
    "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
    "data": [
      {
        "audio_url": "https://platform.r2.fish.audio/task/b627c2f7d38a4083a837570ba6d0962f.mp3"
      }
    ]
  }
}
```

Возвращаемый результат содержит несколько полей, поле request — это тело запроса, отправленного при создании задачи, а поле response — это тело ответа, возвращенное после завершения задачи. Описание полей следующее.

* `id`: ID, сгенерировавший эту задачу, используется для уникальной идентификации данной задачи.
* `request`: информация о запросе в задаче.
* `response`: информация о возвращаемом ответе в задаче.

## Пакетный запрос

Это запрос для получения деталей нескольких ID задач, в отличие от вышеуказанного, здесь необходимо выбрать action как retrieve\_batch.

**Request Body** включает:

* `ids`: массив загруженных ID задач.
* `action`: способ выполнения операции над задачей.

Настройка, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/64lid9.png" width="500" className="m-auto" />
</p>

### Пример кода

Можно заметить, что на правой стороне страницы автоматически сгенерирован код на различных языках, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/ezkzmw.png" width="500" className="m-auto" />
</p>

Некоторые примеры кода:

### Пример ответа

После успешного запроса API вернет конкретную информацию о всех пакетных задачах. Например:

```json theme={null}
{
  "items": [
    {
      "_id": "68cfad98550a4144a5476a92",
      "id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
      "api_id": "8e6f8083-4683-45fe-a993-3e1d993fc999",
      "application_id": "3559d836-2505-46be-96ea-ea72bcb7c080",
      "created_at": 1758440856.34,
      "credential_id": "881ad87d-8ba7-40b7-ac45-d19e41ae6e3a",
      "request": {
        "action": "speech",
        "prompt": "белый сиамский кот",
        "model": "fish-tts",
        "voice_id": "d7900c21663f485ab63ebdb7e5905036",
        "callback_url": "https://webhook.site/4815f79f-a40f-4078-ac85-1cc126b6bb34"
      },
      "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
      "type": "audios",
      "user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
      "response": {
        "success": true,
        "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
        "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
        "data": [
          {
            "audio_url": "https://platform.r2.fish.audio/task/b627c2f7d38a4083a837570ba6d0962f.mp3"
          }
        ]
      }
    },
    {
      "_id": "68cfad98550a4144a5476a92",
      "id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
      "api_id": "8e6f8083-4683-45fe-a993-3e1d993fc999",
      "application_id": "3559d836-2505-46be-96ea-ea72bcb7c080",
      "created_at": 1758440856.34,
      "credential_id": "881ad87d-8ba7-40b7-ac45-d19e41ae6e3a",
      "request": {
        "action": "speech",
        "prompt": "белый сиамский кот",
        "model": "fish-tts",
        "voice_id": "d7900c21663f485ab63ebdb7e5905036",
        "callback_url": "https://webhook.site/4815f79f-a40f-4078-ac85-1cc126b6bb34"
      },
      "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
      "type": "audios",
      "user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
      "response": {
        "success": true,
        "task_id": "2725a2d3-f87e-4905-9c53-9988d5a7b2f5",
        "trace_id": "e2d308bc-4df8-4c69-9369-a60f3c54f2b3",
        "data": [
          {
            "audio_url": "https://platform.r2.fish.audio/task/b627c2f7d38a4083a837570ba6d0962f.mp3"
          }
        ]
      }
    }
  ],
  "count": 2
}
```

返回结果一共有多个字段，其中items是包含了批量任务的具体详情信息，每个任务的具体信息与上文的字段一样，字段信息如下。

* `items`，批量任务的所有具体详情信息。它是一个数组，每个数组的元素 и上文查询单个任务的返回结果格式是一样的。
* `count`，此处批量查询任务的个数。

#### CURL

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/fish/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "ids": ["2725a2d3-f87e-4905-9c53-9988d5a7b2f5","2725a2d3-f87e-4905-9c53-9988d5a7b2f5"],
  "action": "retrieve_batch"
}'
```

## Ошибка обработки

вызове API, если возникла ошибка, API вернет соответствующий код ошибки и информацию. Например:

* `400 token_mismatched`：Неверный запрос, возможно, из-за отсутствия или недопустимых параметров.
* `400 api_not_implemented`：Неверный запрос, возможно, из-за отсутствия или недопустимых параметров.
* `401 invalid_token`：Неавторизован, недопустимый или отсутствующий токен авторизации.
* `429 too_many_requests`：Слишком много запросов, вы превысили лимит частоты.
* `500 api_error`：Внутренняя ошибка сервера, что-то пошло не так на сервере.

### Пример ответа об ошибке

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Заключение

С помощью этого документа вы узнали, как использовать Fish Tasks API для запроса всех конкретных деталей о единичных или пакетных задачах. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.
