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
Subir audio y crear una versión
Sube una URL pública de audio y crea una versión con 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"}
]
}
Este endpoint crea una versión directamente desde una URL pública de audio; no hace falta llamar antes a
uploadTask. Devuelve task_id; consulta GET /v1/music/tasks/{task_id}.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
requerido
Bearer Token. Obtén la clave en la página de gestión de claves API.
Body
string
predeterminado:"suno"
Usa siempre
suno.string
requerido
URL HTTP(S) directa y pública a un audio. El origen debe durar menos de 8 minutos. No se admiten rutas locales, URL
blob: ni enlaces que exijan iniciar sesión.string
predeterminado:"v6"
Versión pública:
v6 / v6-wild / v6-mini. Valor predeterminado v6; omítelo al usar custom_model_id.string
UUID completo devuelto por la tarea de creación del modelo. Incompatible con
version y persona_id.boolean
Envía este campo explícitamente. Con
false, usa gpt_description; con true, usa los campos de letra y estilo.boolean
predeterminado:"false"
Indica si se genera audio instrumental. Con
custom=true y este campo en false, prompt es obligatorio.string
Descripción de inspiración. Obligatoria con
custom=false; máximo 3.000 caracteres.string
Letra personalizada, hasta 5.000 caracteres.
string
Descripción del estilo, hasta 1.000 caracteres.
string
Título, hasta 80 caracteres.
string
Estilos que se excluirán.
number
Peso del estilo, de 0 a 1.
number
Peso de creatividad, de 0 a 1.
number
Peso del audio, de 0 a 1.
boolean
Indica si se reescribe creativamente la letra de entrada.
string
Género de la voz:
Male / Female.string
ID de Persona, incompatible con
custom_model_id.integer
Duración objetivo, de 10 a 360 segundos. Solo disponible en modo personalizado.
string
Variación de estilo:
off / normal / high / extra / max.boolean
predeterminado:"false"
Activa el modo Max. Requiere modo personalizado y se factura al doble del precio estándar.
string
Formato de salida:
mp3 / m4a / wav.Response
integer
Código de estado de la respuesta.
array
Resultado del envío. Lee
data[0].task_id y consulta la API de tareas.{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}