curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadExtend \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"version": "v6-mini",
"audio_url": "https://example.com/reference.wav",
"continue_at": 30,
"prompt": "[Outro]\nthe next journey, let's walk together",
"tags": "acoustic pop",
"duration_s": 60,
"max_mode": true,
"audio_format": "mp3"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/uploadExtend",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"version": "v6-mini",
"audio_url": "https://example.com/reference.wav",
"continue_at": 30,
"prompt": "[Outro]\nthe next leg of our journey, let's walk together",
"tags": "acoustic pop",
"duration_s": 60,
"max_mode": True,
"audio_format": "mp3",
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/uploadExtend", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
version: "v6-mini",
audio_url: "https://example.com/reference.wav",
continue_at: 30,
prompt: "[Outro]\nthe next leg of our journey, let's go together",
tags: "acoustic pop",
duration_s: 60,
max_mode: true,
audio_format: "mp3"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
Suno
Subir y extender audio
Sube una URL pública de audio y extiende la canción desde un punto específico con Suno V6
POST
/
v1
/
music
/
generations
/
uploadExtend
curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadExtend \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"version": "v6-mini",
"audio_url": "https://example.com/reference.wav",
"continue_at": 30,
"prompt": "[Outro]\nthe next journey, let's walk together",
"tags": "acoustic pop",
"duration_s": 60,
"max_mode": true,
"audio_format": "mp3"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/uploadExtend",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"version": "v6-mini",
"audio_url": "https://example.com/reference.wav",
"continue_at": 30,
"prompt": "[Outro]\nthe next leg of our journey, let's walk together",
"tags": "acoustic pop",
"duration_s": 60,
"max_mode": True,
"audio_format": "mp3",
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/uploadExtend", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
version: "v6-mini",
audio_url: "https://example.com/reference.wav",
continue_at: 30,
prompt: "[Outro]\nthe next leg of our journey, let's go together",
tags: "acoustic pop",
duration_s: 60,
max_mode: true,
audio_format: "mp3"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
Este endpoint extiende directamente una URL pública de audio; no hace falta llamar antes a
uploadTask. Siempre usa modo personalizado; no envíes custom, instrumental ni gpt_description.curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadExtend \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"version": "v6-mini",
"audio_url": "https://example.com/reference.wav",
"continue_at": 30,
"prompt": "[Outro]\nthe next journey, let's walk together",
"tags": "acoustic pop",
"duration_s": 60,
"max_mode": true,
"audio_format": "mp3"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/uploadExtend",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"version": "v6-mini",
"audio_url": "https://example.com/reference.wav",
"continue_at": 30,
"prompt": "[Outro]\nthe next leg of our journey, let's walk together",
"tags": "acoustic pop",
"duration_s": 60,
"max_mode": True,
"audio_format": "mp3",
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/uploadExtend", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
version: "v6-mini",
audio_url: "https://example.com/reference.wav",
continue_at: 30,
prompt: "[Outro]\nthe next leg of our journey, let's go together",
tags: "acoustic pop",
duration_s: 60,
max_mode: true,
audio_format: "mp3"
})
});
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 de acceso público a un audio. El audio de origen debe durar menos de 8 minutos. No se admiten rutas locales ni URL
blob:.number
requerido
Inicio de la extensión. Debe ser al menos 1 segundo y menor que la duración real del audio de origen.
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.string
Letra de la extensión, hasta 5.000 caracteres. Si se omite, la extensión se trata como instrumental.
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 crea una segunda versión de la letra proporcionada.
string
Género de la voz:
Male o Female.string
ID de Persona, incompatible con
custom_model_id.integer
Duración objetivo, de 10 a 360 segundos. La duración real se determina mediante el resultado de la tarea.
string
Variación de estilo:
off / normal / high / extra / max.boolean
predeterminado:"false"
Activa el modo Max 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"}
]
}