Эндпоинты API

Загрузка и кавер

POST/v2/upload-cover/generate

Загрузить обложку Создать API

Загрузите аудио и создайте кавер-версию AI, сохранив оригинальную мелодию.

POSThttps://udioapi.pro/api/v2/upload-cover/generate

tips

Режимы: ненастраиваемый режим (простой) и пользовательский режим (полный контроль).

Примечания: хранение файлов 15 дней, статус опроса каждые 5–10 секунд, необязательный callback_url.

requestHeaders

namerequireddescription
AuthorizationyesТокен носителя для аутентификации
Content-Typeyesapplication/json

requestBody

Тело запроса поддерживает простой режим и пользовательский режим.

commonParams

paramNameparamTyperequireddescriptionexample
upload_urlstringyesПубличный URL аудиофайлаhttps://storage.example.com/my-song.mp3
modelstringyesМодель искусственного интеллектаchirp-v4-5
custom_modebooleannoВключить пользовательский режимfalse
make_instrumentalbooleannoСоздать инструментальную версиюfalse
promptstringnoОписание или текст песниA calm and relaxing piano track with soft melodies
stylestringnoМузыкальный стильpop, upbeat, electronic
titlestringnoНазвание песниSummer Cover
tagsstringnoОтрицательные тегиHeavy Metal, Upbeat Drums
genderstringnoВокальные гендерные предпочтенияfemale
style_weightnumbernoСила приверженности стилю0.65
weirdness_constraintnumbernoКонтроль творческих отклонений0.65
audio_weightnumbernoБаланс аудиофункций0.65
callback_urlstringnoURL-адрес веб-перехватчика для уведомлений о завершенииhttps://api.example.com/webhook/upload-cover

responses

json
{
  "code": 200,
  "message": "success",
  "workId": "upcov1a2b3c4d5e6f7890abcdef",
  "data": {
    "task_id": "upcov1a2b3c4d5e6f7890abcdef"
  }
}
json
{
  "code": 422,
  "message": "upload_url is required. Please provide a valid URL to your audio file (max 8 minutes)."
}
json
{
  "code": 400,
  "message": "No body provided"
}
json
{
  "code": 401,
  "message": "No API key provided in Authorization header"
}
json
{
  "code": 402,
  "message": "Insufficient credits. Required: 10, Available: 3"
}
json
{
  "code": 500,
  "message": "Internal Server Error",
  "data": {
    "task_id": "upcov1a2b3c4d5e6f7890abcdef"
  },
  "workId": "upcov1a2b3c4d5e6f7890abcdef"
}

codeExamples

curl
curl -X POST "https://udioapi.pro/api/v2/upload-cover/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "chirp-v4-5",
    "upload_url": "https://storage.example.com/my-song.mp3",
    "custom_mode": false,
    "make_instrumental": false,
    "prompt": "A calm and relaxing piano cover with soft melodies"
  }'
curl
curl -X POST "https://udioapi.pro/api/v2/upload-cover/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "chirp-v4-5",
    "upload_url": "https://storage.example.com/my-song.mp3",
    "custom_mode": true,
    "make_instrumental": false,
    "prompt": "[Verse]\nWalking down the street, feeling so free\n[Chorus]\nSummer dreams are calling me",
    "style": "pop, upbeat, electronic, 120 bpm",
    "title": "Summer Cover",
    "gender": "female",
    "style_weight": 0.65,
    "weirdness_constraint": 0.65,
    "audio_weight": 0.65
  }'
javascript
const response = await fetch('https://udioapi.pro/api/v2/upload-cover/generate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'chirp-v4-5',
    upload_url: 'https://storage.example.com/my-song.mp3',
    custom_mode: false,
    make_instrumental: false,
    prompt: 'A calm and relaxing piano cover with soft melodies'
  })
});

const data = await response.json();
const statusRes = await fetch(
  'https://udioapi.pro/api/v2/upload-cover/status?task_id=' + data.data.task_id,
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const status = await statusRes.json();
console.log(status);
GET/v2/upload-cover/status

Загрузить API статуса обложки

Проверьте статус и результаты задачи загрузки-покрытия.

GEThttps://udioapi.pro/api/v2/upload-cover/status

tips

Статус: IN_PROGRESS, SUCCESS, FAILED, ERROR.

Кредиты возвращаются автоматически, если задание не выполнено.

requestParams

paramNameparamTyperequireddescription
task_idstringyesИдентификатор задачи, возвращенный из конечной точки создания

responses

json
{
  "code": 200,
  "message": "success",
  "data": {
    "type": "IN_PROGRESS",
    "request_body": {
      "model": "chirp-v4-5",
      "upload_url": "https://storage.example.com/my-song.mp3",
      "custom_mode": false,
      "prompt": "A calm and relaxing piano cover"
    },
    "response_data": null,
    "created_at": "2026-02-07T12:00:00.000Z"
  }
}
json
{
  "code": 200,
  "message": "success",
  "data": {
    "type": "SUCCESS",
    "request_body": {
      "model": "chirp-v4-5",
      "upload_url": "https://storage.example.com/my-song.mp3",
      "custom_mode": false,
      "prompt": "A calm and relaxing piano cover"
    },
    "response_data": [
      {
        "id": "e231xxxx-xxxx-xxxx-xxxx-xxxx8cadc7dc",
        "audio_url": "https://cdn1.suno.ai/xxxx.mp3",
        "image_url": "https://cdn2.suno.ai/image_xxxx.jpeg",
        "image_large_url": "https://cdn2.suno.ai/image_xxxx.jpeg",
        "created_at": "2026-02-07T12:00:00.000Z",
        "status": "complete",
        "title": "Summer Cover",
        "prompt": "[Verse] Walking down the street, feeling so free",
        "tags": "pop, upbeat",
        "duration": 198.44,
        "model_name": "chirp-v4-5",
        "extra_message": "synced_from_api",
        "fail_message": "",
        "error_message": ""
      },
      {
        "id": "bd15xxxx-xxxx-xxxx-xxxx-xxxxxxxx1873",
        "audio_url": "https://cdn1.suno.ai/yyyy.mp3",
        "image_url": "https://cdn2.suno.ai/image_yyyy.jpeg",
        "image_large_url": "https://cdn2.suno.ai/image_yyyy.jpeg",
        "created_at": "2026-02-07T12:00:00.000Z",
        "status": "complete",
        "title": "Summer Cover",
        "prompt": "[Verse] Walking down the street, feeling so free",
        "tags": "pop, upbeat",
        "duration": 228.28,
        "model_name": "chirp-v4-5",
        "extra_message": "synced_from_api",
        "fail_message": "",
        "error_message": ""
      }
    ],
    "created_at": "2026-02-07T12:00:00.000Z"
  }
}
json
{
  "code": 200,
  "message": "success",
  "data": {
    "type": "FAILED",
    "request_body": {
      "model": "chirp-v4-5",
      "upload_url": "https://storage.example.com/my-song.mp3",
      "custom_mode": false,
      "prompt": "..."
    },
    "response_data": [
      {
        "status": "FAILED",
        "fail_message": "Does Not Meet Guidelines",
        "error_message": "Does Not Meet Guidelines"
      },
      {
        "status": "FAILED",
        "fail_message": "Does Not Meet Guidelines",
        "error_message": "Does Not Meet Guidelines"
      }
    ],
    "created_at": "2026-02-07T12:00:00.000Z"
  }
}
json
{
  "code": 404,
  "message": "Task not found",
  "data": null
}
json
{
  "code": 500,
  "message": "Internal Server Error",
  "data": null
}

codeExamples

curl
curl -X GET "https://udioapi.pro/api/v2/upload-cover/status?task_id=upcov1a2b3c4d5e6f7890abcdef" \
  -H "Authorization: Bearer YOUR_API_KEY"
javascript
async function pollStatus(taskId) {
  while (true) {
    const res = await fetch(
      'https://udioapi.pro/api/v2/upload-cover/status?task_id=' + taskId,
      { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
    );
    const result = await res.json();

    if (result.data?.type === 'SUCCESS') return result;
    if (result.data?.type === 'FAILED' || result.data?.type === 'ERROR') return result;

    await new Promise(r => setTimeout(r, 5000));
  }
}