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
Enviar áudio e criar um cover
Envie uma URL pública de áudio e crie um cover com o 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 cria um cover diretamente de uma URL pública de áudio; não é preciso chamar
uploadTask antes. Ele retorna task_id; consulte 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
obrigatório
Bearer Token. Obtenha a chave na página de gerenciamento de chaves de API.
Body
string
padrão:"suno"
Use sempre
suno.string
obrigatório
URL HTTP(S) direta e pública para um áudio. O áudio deve ter menos de 8 minutos. Caminhos locais, URLs
blob: e links com login não são aceitos.string
padrão:"v6"
Versão pública:
v6 / v6-wild / v6-mini. Padrão v6; omita ao usar custom_model_id.string
UUID completo retornado pela tarefa de criação. Incompatível com
version e persona_id.boolean
Envie este campo explicitamente. Com
false, use gpt_description; com true, use os campos de letra e estilo.boolean
padrão:"false"
Se deve gerar áudio instrumental. Com
custom=true e este campo em false, prompt é obrigatório.string
Descrição de inspiração. Obrigatória com
custom=false; máximo de 3.000 caracteres.string
Letra personalizada, até 5.000 caracteres.
string
Descrição do estilo, até 1.000 caracteres.
string
Título, até 80 caracteres.
string
Estilos a excluir.
number
Peso do estilo, de 0 a 1.
number
Peso de criatividade, de 0 a 1.
number
Peso do áudio, de 0 a 1.
boolean
Se deve reescrever criativamente a letra enviada.
string
Gênero da voz:
Male / Female.string
ID da Persona, incompatível com
custom_model_id.integer
Duração alvo, de 10 a 360 segundos. Disponível somente no modo personalizado.
string
Variação de estilo:
off / normal / high / extra / max.boolean
padrão:"false"
Ativa o modo Max. Requer modo personalizado e cobra o dobro do preço padrão.
string
Formato de saída:
mp3 / m4a / wav.Response
integer
Código de status da resposta.
array
Resultado do envio. Leia
data[0].task_id e consulte a API de tarefas.{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}