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
nameAuthorizationrequiredyesdescriptionJeton du porteur pour l'authentification
nameContent-Typerequiredyesdescriptionapplication/json

requestBody

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

commonParams

paramNameparamTyperequireddescriptionexample
paramNameupload_urlparamTypestringrequiredyesdescriptionURL publique du fichier audioexamplehttps://storage.example.com/my-song.mp3
paramNamemodelparamTypestringrequiredyesdescriptionModèle d'IAexamplechirp-v4-5
paramNamecustom_modeparamTypebooleanrequirednodescriptionActiver le mode personnaliséexamplefalse
paramNamemake_instrumentalparamTypebooleanrequirednodescriptionGénérer une version instrumentaleexamplefalse
paramNamepromptparamTypestringrequirednodescriptionDescription ou parolesexampleA calm and relaxing piano track with soft melodies
paramNamestyleparamTypestringrequirednodescriptionStyle de musiqueexamplepop, upbeat, electronic
paramNametitleparamTypestringrequirednodescriptionTitre de la chansonexampleSummer Cover
paramNametagsparamTypestringrequirednodescriptionBalises négativesexampleHeavy Metal, Upbeat Drums
paramNamegenderparamTypestringrequirednodescriptionPréférence de genre vocalexamplefemale
paramNamestyle_weightparamTypenumberrequirednodescriptionForce d’adhérence du styleexample0.65
paramNameweirdness_constraintparamTypenumberrequirednodescriptionContrôle des écarts créatifsexample0.65
paramNameaudio_weightparamTypenumberrequirednodescriptionÉquilibre des fonctionnalités audioexample0.65
paramNamecallback_urlparamTypestringrequirednodescriptionURL du webhook pour les notifications d'achèvementexamplehttps://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
paramNametask_idparamTypestringrequiredyesdescriptionID 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));
  }
}