curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadCover \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"version": "v6",
"audio_url": "https://example.com/reference.mp3",
"custom": true,
"instrumental": true,
"tags": "piano, ambient",
"duration_s": 120,
"variety": "normal",
"audio_format": "m4a"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/uploadCover",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"version": "v6",
"audio_url": "https://example.com/reference.mp3",
"custom": True,
"instrumental": True,
"tags": "piano, ambient",
"duration_s": 120,
"audio_format": "m4a",
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/uploadCover", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
version: "v6",
audio_url: "https://example.com/reference.mp3",
custom: true,
instrumental: true,
tags: "piano, ambient",
duration_s: 120,
audio_format: "m4a"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
Suno
Envoyer un audio et créer une reprise
Envoyez une URL audio publique et créez une reprise avec Suno V6
POST
/
v1
/
music
/
generations
/
uploadCover
curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadCover \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"version": "v6",
"audio_url": "https://example.com/reference.mp3",
"custom": true,
"instrumental": true,
"tags": "piano, ambient",
"duration_s": 120,
"variety": "normal",
"audio_format": "m4a"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/uploadCover",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"version": "v6",
"audio_url": "https://example.com/reference.mp3",
"custom": True,
"instrumental": True,
"tags": "piano, ambient",
"duration_s": 120,
"audio_format": "m4a",
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/uploadCover", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
version: "v6",
audio_url: "https://example.com/reference.mp3",
custom: true,
instrumental: true,
tags: "piano, ambient",
duration_s: 120,
audio_format: "m4a"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
Cet endpoint crée une reprise directement depuis une URL audio publique ; aucun appel préalable à
uploadTask n’est nécessaire. Il renvoie task_id ; interrogez GET /v1/music/tasks/{task_id} pour le résultat.curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadCover \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"version": "v6",
"audio_url": "https://example.com/reference.mp3",
"custom": true,
"instrumental": true,
"tags": "piano, ambient",
"duration_s": 120,
"variety": "normal",
"audio_format": "m4a"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/uploadCover",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"version": "v6",
"audio_url": "https://example.com/reference.mp3",
"custom": True,
"instrumental": True,
"tags": "piano, ambient",
"duration_s": 120,
"audio_format": "m4a",
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/uploadCover", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
version: "v6",
audio_url: "https://example.com/reference.mp3",
custom: true,
instrumental: true,
tags: "piano, ambient",
duration_s: 120,
audio_format: "m4a"
})
});
console.log(await response.json());
Authorizations
string
requis
Bearer Token. Obtenez votre clé sur la page de gestion des clés API.
Body
string
défaut:"suno"
Utilisez toujours
suno.string
requis
URL HTTP(S) directe et publiquement accessible d’un fichier audio. L’audio source doit durer moins de 8 minutes. Les chemins locaux, URL
blob: et liens nécessitant une connexion ne sont pas acceptés.string
défaut:"v6"
Version publique :
v6 / v6-wild / v6-mini. Valeur par défaut v6 ; omettez-la avec custom_model_id.string
UUID complet renvoyé par la tâche de création du modèle. Incompatible avec
version et persona_id.boolean
Envoyez ce champ explicitement. Avec
false, utilisez gpt_description ; avec true, utilisez les champs de paroles et de style.boolean
défaut:"false"
Indique s’il faut générer un instrumental. Lorsque
custom=true et que ce champ vaut false, prompt est obligatoire.string
Description d’inspiration. Requise lorsque
custom=false, 3 000 caractères maximum.string
Paroles personnalisées, 5 000 caractères maximum.
string
Description du style, 1 000 caractères maximum.
string
Titre, 80 caractères maximum.
string
Styles à exclure.
number
Pondération du style, de 0 à 1.
number
Pondération de créativité, de 0 à 1.
number
Pondération audio, de 0 à 1.
boolean
Indique s’il faut réécrire les paroles de manière créative.
string
Genre de la voix :
Male / Female.string
ID Persona, incompatible avec
custom_model_id.integer
Durée cible de génération, de 10 à 360 secondes. Disponible uniquement en mode personnalisé.
string
Variation de style :
off / normal / high / extra / max.boolean
défaut:"false"
Active le mode Max. Nécessite le mode personnalisé et est facturé deux fois le prix standard.
string
Format de sortie :
mp3 / m4a / wav.Response
integer
Code d’état de la réponse.
array
Résultat de la soumission. Lisez
data[0].task_id, puis interrogez l’API de tâche.{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}