Points d'accès API

Télécharger et reprendre

POST/v2/upload-cover/generate

Télécharger l'API de génération de couverture

Téléchargez l'audio et générez une version de couverture AI tout en conservant la mélodie originale.

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

tips

Modes : mode non personnalisé (simple) et mode personnalisé (contrôle total).

Remarques : conservation des fichiers 15 jours, statut d'interrogation toutes les 5 à 10 secondes, callback_url facultatif.

requestHeaders

namerequireddescription
AuthorizationyesJeton du porteur pour l'authentification
Content-Typeyesapplication/json

requestBody

Le corps de la requête prend en charge le mode simple et le mode personnalisé

commonParams

paramNameparamTyperequireddescriptionexample
upload_urlstringyesURL publique du fichier audiohttps://storage.example.com/my-song.mp3
modelstringyesModèle d'IAchirp-v4-5
custom_modebooleannoActiver le mode personnaliséfalse
make_instrumentalbooleannoGénérer une version instrumentalefalse
promptstringnoDescription ou parolesA calm and relaxing piano track with soft melodies
stylestringnoStyle de musiquepop, upbeat, electronic
titlestringnoTitre de la chansonSummer Cover
tagsstringnoBalises négativesHeavy Metal, Upbeat Drums
genderstringnoPréférence de genre vocalfemale
style_weightnumbernoForce d’adhérence du style0.65
weirdness_constraintnumbernoContrôle des écarts créatifs0.65
audio_weightnumbernoÉquilibre des fonctionnalités audio0.65
callback_urlstringnoURL du webhook pour les notifications d'achèvementhttps://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 de statut de couverture de téléchargement

Vérifiez l'état et les résultats de la tâche de téléchargement-couverture.

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

tips

Statut : IN_PROGRESS, SUCCESS, FAILED, ERROR.

Les crédits sont remboursés automatiquement si la tâche échoue.

requestParams

paramNameparamTyperequireddescription
task_idstringyesID de tâche renvoyé par le point de terminaison de génération

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));
  }
}