API клонирования голоса и генерации с заданным голосом (не рекомендуется)
⛔ Старая цепочка, не рекомендуется для новых интеграций. Эта страница описывает раннюю цепочку
persona(voice_task_id/generate-with-voice). Она по-прежнему работает, но клиентам больше не рекомендуется; в навигации слева она помечена как «не рекомендуется».Для новых интеграций используйте 【Рекомендуется】 API голосового профиля: создайте голосовой профиль из одного образца голоса (
POST /api/music/voice-profile/create), а затем применяйте его, чтобы сделать кавер на выбранную песню или спеть новую. Голосовой профиль — полноценный ресурс: его можно перечислить, запросить и удалить, а исходное аудио сохраняется навсегда.Если вашему продукту нужен полный цикл «создать голос → долго переиспользовать → делать каверы», выбирайте новую цепочку.
Важно: клонированный голос может истечь.
voice_id/voice_task_id, созданные клонированием голоса, — не вечный ресурс: они могут перестать работать из-за срока действия, состояния аккаунта или изменения состояния голоса. Интегратор не должен один раз клонировать голос и затем вечно переиспользовать сохранённый локально идентификатор.Рекомендуемая практика:
- Храните
voice_task_id,voice_id,is_available,updated_atи время последней успешной генерации.- Перед каждой генерацией с клонированным голосом вызывайте
GET /api/voice/clone/tasks/{voice_task_id}илиPOST /api/voice/clone/tasks/{voice_task_id}/checkи убеждайтесь, чтоis_available=true.- Если эндпоинт сообщает, что голос недоступен, задача не существует или возвращает
selected voice is not ready, предложите пользователю клонировать заново или выбрать другой доступный голос.- Не обещайте конечным пользователям, что клонированный голос — «вечный актив»; покажите в интерфейсе продукта, что «голос может истечь и потребовать повторной проверки или повторного клонирования».
Описание эндпоинта
Эта группа эндпоинтов создаёт переиспользуемый голос и генерирует с ним песни. Вызывающей стороне нужен только API Key, выданный платформой; сервер сам отвечает за постановку задач, синхронизацию статусов, биллинг и скачивание.
Аутентификация: Authorization: Bearer YOUR_API_KEY
Оплата:
- Проверка голоса, клонирование голоса, запрос статуса, удаление и скачивание: бесплатно.
- Вход в одношаговое клонирование в рабочем пространстве: фиксированные 5 ¥ за вызов; он автоматически выполняет проверку исходного голоса и второе проверочное аудио, а при неудаче возвращает деньги.
- Автоматическое продолжение на проверочное аудио после обычного клонирования: фиксированные 5 ¥ за вызов; при неудаче возврат по текущему порядку.
- Генерация песни клонированным голосом: платно, фиксированные 1,2 ¥ за вызов; обычно каждый вызов возвращает 2 задачи-заполнителя.
- При включённом Max Mode (
max_mode: trueвPOST /api/music/generate-with-voice) эти 1,2 ¥ за вызов считаются по двойному тарифу, то есть 2,4 ¥ за вызов; генерация голосом также поддерживаетvariety(0-4, без доплаты) — правила значений в разделе «Расширенные параметры» обзора нового API.
Порядок вызовов
- Вызовите
POST /api/voice/clone/validate, чтобы загрузить исходный голос и получитьvoice_task_id. - Дождитесь или опрашивайте
GET /api/voice/clone/tasks/{voice_task_id}, пока не получитеvalidate_info. - Пользователь читает этот текст вслух и записывает проверочное аудио.
- Вызовите
POST /api/voice/clone/tasks/{voice_task_id}/generate, чтобы отправить проверочное аудио. - Вызывайте
POST /api/voice/clone/tasks/{voice_task_id}/checkили продолжайте опрашивать задачу, пока не получитеis_available=true. - Вызовите
POST /api/music/generate-with-voice, чтобы сгенерировать песню этим голосом. - Эндпоинт генерации сначала возвращает задачи-заполнители; когда генерация завершится и у вас появится настоящий
song_id, эндпоинты скачивания позволят получить один файл или архив. - (Необязательно) Когда голос больше не нужен, вызовите
DELETE /api/voice/clone/voices/{voice_task_id}, чтобы удалить его; семантика — в разделе 6.
Есть также одношаговое клонирование: на первой странице записи/загрузки исходного голоса в рабочем пространстве можно выбрать завершение в один шаг — система выполнит проверку и создание голоса сразу, так что второе проверочное аудио записывать не придётся; стоит 5 ¥ за вызов, при неудаче деньги возвращаются.
Поля задачи голоса
| Поле | Тип | Описание |
|---|---|---|
voice_task_id |
number | ID задачи голоса внутри платформы; все последующие эндпоинты используют этот ID |
voice_id |
string | ID голоса, который можно использовать для генерации песен; возвращается, когда задача готова к работе |
voice_name |
string | Название голоса |
description |
string | Описание голоса |
style |
string | Стиль голоса |
singer_skill_level |
string | Уровень вокала; обычные значения: beginner, intermediate, professional |
language |
string | Язык исходного голоса, например zh, en |
validate_info |
string | Текст проверки, который нужно прочитать вслух |
validate_status |
string | Статус задачи проверки |
voice_status |
string | Статус создания голоса |
is_available |
boolean | Готов ли голос к генерации песен |
status |
string | Статус задачи на платформе |
stage |
string | Текущий этап |
error_code |
string | Код ошибки при неудаче |
error_message |
string | Причина неудачи |
source_duration_seconds |
number | Длительность исходного аудио в секундах |
created_at |
number | Метка времени создания |
updated_at |
number | Метка времени обновления |
completed_at |
number | Метка времени завершения |
1. Отправить исходный голос на проверку
Эндпоинт: POST /api/voice/clone/validate
Параметры тела
| Параметр | Тип | Обязателен | По умолчанию | Описание |
|---|---|---|---|---|
voice_url |
string | Нет | - | URL аудио исходного голоса. Либо он, либо file_base64 |
file_base64 |
string | Нет | - | Аудио в base64. Либо он, либо voice_url |
file_name |
string | Нет | - | Имя файла; рекомендуется при использовании file_base64 |
voice_name |
string | Нет | создаётся автоматически | Название голоса |
description |
string | Нет | - | Описание голоса |
style |
string | Нет | - | Стиль голоса |
singer_skill_level |
string | Нет | beginner |
Уровень вокала |
language |
string | Нет | zh |
Язык исходного голоса |
vocal_start_s |
number | Да | - | Секунда начала полезного вокала |
vocal_end_s |
number | Да | - | Секунда конца полезного вокала |
source_duration_seconds |
number | Нет | - | Общая длительность исходного аудио в секундах |
vocal_end_s - vocal_start_sдолжно удовлетворять минимальному требованию к вокальному фрагменту. Загружайте чистую запись вокала без заметного сопровождения и шума.
Пример запроса
curl -X POST https://www.suno-api.io/api/voice/clone/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_url": "https://example.com/source-voice.wav",
"voice_name": "Мой китайский женский голос",
"description": "Чистый и естественный китайский женский голос",
"style": "Mandopop",
"singer_skill_level": "intermediate",
"language": "zh",
"vocal_start_s": 1.2,
"vocal_end_s": 18.5,
"source_duration_seconds": 20
}'
Пример ответа
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "Мой китайский женский голос",
"language": "zh",
"validate_status": "submitted",
"is_available": false,
"status": "validate_submitted",
"stage": "validate_submitted",
"created_at": 1780480000,
"updated_at": 1780480000
}
}
}
2. Запросить задачу голоса
Эндпоинт: GET /api/voice/clone/tasks/{voice_task_id}
Пример запроса
curl https://www.suno-api.io/api/voice/clone/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Пример ответа
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "Мой китайский женский голос",
"validate_info": "Прочитайте вслух текст проверки, возвращённый здесь",
"validate_status": "success",
"is_available": false,
"status": "validate_ready",
"stage": "validate_callback"
}
}
}
3. Пересоздать текст проверки
Эндпоинт: POST /api/voice/clone/tasks/{voice_task_id}/regenerate
Вызывайте, когда текст проверки неудобно читать вслух или нужно пройти проверку заново.
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/regenerate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
4. Отправить проверочное аудио и создать голос
Эндпоинт: POST /api/voice/clone/tasks/{voice_task_id}/generate
Параметры тела
| Параметр | Тип | Обязателен | По умолчанию | Описание |
|---|---|---|---|---|
verify_url |
string | Нет | - | URL аудио, прочитанного по тексту проверки. Либо он, либо file_base64 |
file_base64 |
string | Нет | - | Проверочное аудио в base64. Либо он, либо verify_url |
file_name |
string | Нет | - | Имя файла; рекомендуется при использовании file_base64 |
voice_name |
string | Нет | название задачи | Название голоса |
description |
string | Нет | описание задачи | Описание голоса |
style |
string | Нет | стиль задачи | Стиль голоса |
singer_skill_level |
string | Нет | настройка задачи | Уровень вокала |
Пример запроса
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"verify_url": "https://example.com/verify-voice.wav",
"voice_name": "Мой китайский женский голос"
}'
5. Проверить, доступен ли голос
Эндпоинт: POST /api/voice/clone/tasks/{voice_task_id}/check
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Когда задача доступна, is_available в ответе равен true и возвращается voice_id.
6. Удалить голос
Эндпоинт: DELETE /api/voice/clone/voices/{voice_task_id}
Оплата: бесплатно.
curl -X DELETE https://www.suno-api.io/api/voice/clone/voices/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Пример ответа
{
"success": true,
"message": "",
"data": {
"voice_task_id": 123,
"deleted": true
}
}
| Поле | Тип | Описание |
|---|---|---|
| voice_task_id | number | ID удалённой задачи голоса |
| deleted | boolean | Всегда true: запрос на удаление принят |
Что происходит после удаления
- Голос больше нельзя использовать для новых песен: вызов
POST /api/music/generate-with-voiceс этимvoice_task_id(или егоvoice_id) отклоняется с сообщениемselected voice is not ready, списания нет. - Песни, уже созданные этим голосом, вообще не затронуты: воспроизведение, скачивание, продолжение, замена и разделение дорожек работают как раньше.
- Задача голоса исчезает из запросов:
GET /api/voice/clone/tasks/{voice_task_id}возвращаетrecord not found. - Исходное аудио сохраняется согласно политике бессрочного хранения платформы (с 2026-09-23 удаление больше не очищает загруженный образец голоса), но это не значит, что его можно восстановить: старая задача завершена, и чтобы продолжать тем же голосом, нужно пройти цепочку клонирования заново — вы получите новый
voice_task_id. - Повторное удаление: удаление той же задачи ещё раз возвращает
record not found(она уже удалена и не находится).
7. Генерация песни клонированным голосом
Эндпоинт: POST /api/music/generate-with-voice
Оплата: 1,2 ¥ за вызов.
Параметры тела
| Параметр | Тип | Обязателен | По умолчанию | Описание |
|---|---|---|---|---|
voice_task_id |
number | Да | - | ID уже доступной задачи голоса |
voice_id |
string | Нет | - | Необязательное поле проверки; если передаёте, оно должно совпадать с voice_id задачи |
customMode |
boolean | Нет | false |
false — режим вдохновения, true — расширенный режим |
prompt |
string | Да | - | В режиме вдохновения это описание песни, в расширенном — текст песни. Ни то, ни другое не может быть пустым |
style |
string | Да в расширенном режиме | - | Теги стиля; не может быть пустым при customMode=true |
title |
string | Да в расширенном режиме | - | Название песни; не может быть пустым при customMode=true |
negativeTags |
string | Нет | - | Исключаемый стиль |
instrumental |
boolean | Нет | false |
Поле совместимости; генерация клонированным голосом всегда считается вокальной песней |
waitAudio |
boolean | Нет | false |
Поле совместимости; эндпоинт всегда асинхронно возвращает задачи-заполнители и не ждёт аудио |
model |
string | Нет | suno-v6 |
Модель обычной генерации песен; доступны suno-v6, suno-v6-wild, suno-v6-mini |
vocalGender |
string | Нет | - | Предпочтение по полу вокала |
lyricsMode |
string | Нет | - | Поле совместимости; текущая цепочка отправки клонированного голоса сама по себе не меняет режим текста |
weirdnessConstraint |
number | Нет | - | Сила креативности |
styleWeight |
number | Нет | - | Вес стиля |
audioWeight |
number | Нет | значение платформы по умолчанию | Audio Influence (насколько важен референсный аудиофайл), диапазон 0.0-1.0. Если не передавать, применяется значение платформы по умолчанию (эквивалент 25 % в официальном интерфейсе); 0 — допустимое значение, означающее совсем не приближаться к референсу. Оно тесно связано с sourceClipId из следующей строки: с источником он указывает на референсное аудио, без источника — на клонированный голос; у платформы для обоих случаев есть только этот один ползунок, поэтому не делите его на два параметра по сценариям |
sourceClipId |
string | Нет | - | Реальный id клипа рабочего пространства для песни-источника. Если передать, включается кавер клонированным голосом; если не передавать — обычная генерация клонированным голосом |
sourceAudioUrl |
string | Нет | - | Поле отображения источника; не участвует в определении владения и аккаунта, сервер опирается на свою запись в базе данных |
sourceTitle |
string | Нет | - | Поле отображения источника; не участвует в определении владения и аккаунта |
clientSubmissionId |
string | Нет | - | Поле совместимости Create UI; для надёжной дедупликации в клиентском API нужно использовать заголовок Idempotency-Key |
Поддерживаются suno-v6, suno-v6-wild и suno-v6-mini; пустое значение модели трактуется как suno-v6. Старые модели V5/V5.5 выведены, но в исторических задачах могут остаться старые имена моделей.
Общая структура запроса также разбирает поля совместимости Create UI: task, soundType, soundLoop, soundBpm, soundKey, voiceTaskId, voiceId, но они не являются допустимыми клиентскими параметрами этого эндпоинта: задача голоса должна передаваться как voice_task_id, необязательная проверка голоса — как voice_id, а генерация музыки голосом никогда не читает поля sound.
Как заполнять параметры генерации
- При
customMode=falseвpromptпередаётся описание песни; приcustomMode=trueвpromptпередаётся полный текст песни, а также обязательно заполняютсяstyleиtitle. Не отправляйте текст песни в поле описания режима вдохновения и не считайте описание песни текстом песни расширенного режима. weirdnessConstraintиstyleWeight— это десятичные доли от0.0до1.0; нельзя передавать50или50%.0.5— сбалансированное значение; пропуск означает «не задано», а0— допустимое явное значение.vocalGenderпринимает толькоm,male,fилиfemale.instrumentalздесь лишь поле совместимости: генерация клонированным голосом всегда считается вокальной песней.waitAudioздесь ничего не меняет; эндпоинт всегда асинхронно возвращает задачи-заполнители. Пустойaudio_urlв первом результате — норма: опрашивайте поclient_request_idи читайте адрес аудио только после завершения результата.
Параметры заголовков
| Заголовок | Обязателен | Описание |
|---|---|---|
Authorization: Bearer ... |
Да | Клиентский API-токен |
Content-Type: application/json |
Да | Тело запроса в формате JSON |
Idempotency-Key |
Нет, настоятельно рекомендуется | До 128 символов. При одинаковых пользователе, токене, эндпоинте, ключе и теле запроса списание и создание задачи происходят только один раз |
Поведение Idempotency-Key:
- Первый запрос до списания записывает постоянную запись идемпотентности;
- Если тот же ключ с тем же запросом уже завершён, повторяется первый ответ о приёме, без повторного списания и создания задачи;
- Тот же ключ с другим телом запроса отклоняется;
- Тот же ключ, ещё находящийся в обработке, даёт стабильную ошибку обработки и отдаёт безопасный
client_request_idтолько когда он уже создан; - Если первый запрос с этим ключом завершился неудачей, состояние неудачи сохраняется; для повтора нужен новый ключ.
Условия кавера через sourceClipId
Кавер из источника в клиентском API полностью обрабатывается на сервере: доступ к песне-источнику решает сервер, и клиент не передаёт данные аккаунта. Возможность определяется фактическим ответом эндпоинта.
Источник должен принадлежать текущему пользователю API, быть завершённой песней рабочего пространства, не pending:, и иметь доступное аудио. Поддерживаются обычная генерация, источники обычной загрузки и финальная песня усиленной загрузки; промежуточные записи усиленной загрузки отклоняются до списания. Сервер принимает только переданный клиентом id песни-источника и никогда не принимает id аккаунта; недоступный или незавершённый источник даёт ошибку до списания.
Пример запроса
curl -X POST https://www.suno-api.io/api/music/generate-with-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_task_id": 123,
"customMode": true,
"prompt": "Напиши китайскую поп-песню о морском береге летней ночью",
"style": "Mandopop, warm piano, emotional",
"title": "Морской бриз летней ночью",
"negativeTags": "noise, low quality",
"instrumental": false,
"model": "suno-v6"
}'
Пример ответа
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"items": [
{
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "submitted",
"type": "voice_generate",
"title": "Морской бриз летней ночью",
"prompt": "Напиши китайскую поп-песню о морском береге летней ночью"
},
{
"placeholder_id": "pending:cu_1780480000_abcd1234:1",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 1,
"status": "submitted",
"type": "voice_generate",
"title": "Морской бриз летней ночью",
"prompt": "Напиши китайскую поп-песню о морском береге летней ночью"
}
],
"pre_consumed_quota": 600000,
"billing_source": "wallet"
}
}
О задачах-заполнителях и итоговом song_id
generate-with-voice — асинхронный эндпоинт генерации. Успешный ответ означает лишь, что задача генерации отправлена, а не что песня готова.
Смысл ключевых полей ответа:
| Поле | Описание |
|---|---|
client_request_id |
Идентификатор отслеживания этого запроса генерации. Один запрос обычно создаёт 2 песни, и оба результата используют один и тот же client_request_id. |
items[].placeholder_id |
Локальный заполнитель платформы, обычно в форме pending:{client_request_id}:{index}. Это не итоговый id песни. |
items[].client_request_index |
Номер результата внутри одного запроса, обычно 0 и 1. |
items[].status |
Начальный статус после отправки, например submitted. Дальнейший успех или неудача определяются итоговой записью задачи. |
Внимание: placeholder_id, начинающийся с pending:, нельзя использовать как итоговый song_id и нельзя передавать в /api/music/query или эндпоинты скачивания. Если вызвать /api/music/query только со значениями pending:*, может вернуться пустой массив [], потому что настоящая песня ещё не готова или задача-заполнитель ещё не заменена итоговым id песни.
Неверный пример:
{
"song_ids": "pending:cu_1780480000_abcd1234:0"
}
Правильный порядок:
- Вызовите
POST /api/music/generate-with-voice, чтобы отправить задачу генерации голосом. - Сохраните
client_request_id,items[].placeholder_idиitems[].client_request_indexиз ответа. - Опрашивайте
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx. - Когда
items[].song_idполучит значение, не начинающееся сpending:, вызывайте/api/music/query,/api/music/download-fileили/api/music/download-all.
Текущая версия добавляет публичный эндпоинт запроса:
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx
Он возвращает результаты задач с тем же client_request_id у текущего пользователя, чтобы клиент сам мог узнать итоговый song_id. В возвращаемом списке:
song_id— настоящий id песни;placeholder_idпоявляется только пока задача находится в состоянии заполнителя;- значение, начинающееся с
pending:, нельзя использовать с/api/music/queryили эндпоинтами скачивания.
Если вы сохранили только client_request_id или заполнитель pending:*, сначала вызовите этот эндпоинт результатов; если настоящий song_id всё ещё не найден, передайте client_request_id в техподдержку для локализации.
Запрос результатов генерации голосом
Эндпоинт: GET /api/music/generate-with-voice/results
Оплата: бесплатно.
Параметры запроса
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
client_request_id |
string | Да | Идентификатор отслеживания, возвращённый generate-with-voice |
Пример запроса
curl -X GET "https://www.suno-api.io/api/music/generate-with-voice/results?client_request_id=cu_1780480000_abcd1234" \
-H "Authorization: Bearer YOUR_API_KEY"
Пример ответа во время генерации
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "processing",
"items": [
{
"song_id": "",
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "processing",
"type": "voice_generate",
"title": "Морской бриз летней ночью"
}
]
}
}
Пример ответа после завершения
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "completed",
"items": [
{
"song_id": "song_abc123",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "completed",
"type": "voice_generate",
"title": "Морской бриз летней ночью",
"audio_url": "https://...",
"image_url": "https://...",
"duration": 180.5
}
]
}
}
Значения верхнеуровневого status
| Статус | Описание |
|---|---|
not_found |
У текущего пользователя ещё нет записи задачи с таким client_request_id |
processing |
Как минимум один результат не завершён; продолжайте опрос |
completed |
Все результаты завершены; можно запрашивать или скачивать по song_id |
partial |
Часть завершена, часть неудачна; сначала обработайте завершённые song_id |
failed |
Все результаты неудачны; смотрите items[].error_message |
8. Скачать один файл
Эндпоинт: POST /api/music/download-file
Параметры тела
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
song_id |
string | Да | ID песни |
kind |
string | Да | Тип скачивания: audio, cover, wav, video |
Пример запроса
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "song_abc123",
"kind": "audio"
}' \
--output song.mp3
Ответ — поток файла; Content-Type и имя файла соответствуют тому, что возвращает бэкенд.
9. Скачать ресурсы песни архивом
Эндпоинт: POST /api/music/download-all
Параметры тела
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
song_id |
string | Да | ID песни |
Пример запроса
curl -X POST https://www.suno-api.io/api/music/download-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "song_abc123"
}' \
--output song.zip
Архив обычно содержит аудио, обложку и metadata.json; если какой-то тип ресурса ещё не создан, он не попадает в архив.
Частые ошибки
| message | Описание |
|---|---|
voice audio is required |
При отправке исходного голоса не указан ни voice_url, ни file_base64 |
invalid voice task id |
ID задачи голоса в пути недействителен |
voice validation is not ready |
Текст проверки ещё не получен, поэтому проверочное аудио отправить нельзя |
selected voice is not ready |
Выбранный голос пока не может генерировать песни (не готов, удалён или не принадлежит текущему аккаунту) |
selected voice does not match voice task |
voice_id в запросе не совпадает с задачей |
voice task is required |
При генерации песни голосом отсутствует voice_task_id |
record not found |
Задача / песня не существует, не принадлежит аккаунту текущего API Key или уже удалена (если запросить эту задачу после удаления голоса, вы увидите то же самое) |
Ошибки этой группы всегда возвращают HTTP 200: определяйте результат по полю
successв теле ответа (false— неудача, причина вmessage), а не только по коду состояния HTTP. Полная семантика удаления голоса (можно ли им пользоваться дальше, можно ли восстановить) — в разделе 6.
Получить API-ключ
Создайте API-ключ в консоли после регистрации. Одна генерация стоит 0,6 ¥ и возвращает 2 трека, загрузки не ограничены, номер телефона не нужен.
Получить API-ключ Вернуться к обзору