curl --request POST \
--url https://api.apimart.ai/v1/music/generations/createModel \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"name": "warm folk model",
"audio_urls": [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3"
]
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/createModel",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"name": "warm folk model",
"audio_urls": [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3",
],
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/createModel", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
name: "warm folk model",
audio_urls: [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3"
]
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
{
"code": 200,
"data": {
"id": "task_01M24YMN4EV04M84R5QYM77R1E",
"status": "completed",
"progress": 100,
"result": {
"model_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "warm folk music model"
}
}
}
Suno
Criar um modelo personalizado
Crie um modelo personalizado do Suno V6 com 6–24 clipes de áudio de referência
POST
/
v1
/
music
/
generations
/
createModel
curl --request POST \
--url https://api.apimart.ai/v1/music/generations/createModel \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"name": "warm folk model",
"audio_urls": [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3"
]
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/createModel",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"name": "warm folk model",
"audio_urls": [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3",
],
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/createModel", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
name: "warm folk model",
audio_urls: [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3"
]
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
{
"code": 200,
"data": {
"id": "task_01M24YMN4EV04M84R5QYM77R1E",
"status": "completed",
"progress": 100,
"result": {
"model_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "warm folk music model"
}
}
}
A criação do modelo é assíncrona. Consulte a tarefa com
task_id e, ao concluir, leia o ID em data.result.model_id.curl --request POST \
--url https://api.apimart.ai/v1/music/generations/createModel \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "suno",
"name": "warm folk model",
"audio_urls": [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3"
]
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/music/generations/createModel",
headers={"Authorization": "Bearer <token>"},
json={
"model": "suno",
"name": "warm folk model",
"audio_urls": [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3",
],
},
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/music/generations/createModel", {
method: "POST",
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "suno",
name: "warm folk model",
audio_urls: [
"https://example.com/ref-01.mp3",
"https://example.com/ref-02.mp3",
"https://example.com/ref-03.wav",
"https://example.com/ref-04.m4a",
"https://example.com/ref-05.mp3",
"https://example.com/ref-06.mp3"
]
})
});
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
Nome do modelo personalizado. Não pode ficar vazio após remover espaços no início e no fim.
string[]
obrigatório
De 6 a 24 URLs HTTP(S) diretas e públicas de áudio. MP3, WAV e M4A são recomendados. Cada URL deve retornar o arquivo diretamente, não uma página de login.
Um arquivo de mídia inválido pode fazer toda a criação do modelo falhar. Envie arquivos locais antes e use URLs públicas; não envie caminhos locais nem URLs
blob:.Response
integer
Código de status da resposta.
array
Resultado do envio. Leia
data[0].task_id e consulte o status do treinamento com GET /v1/music/tasks/{task_id}.{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}
{
"code": 200,
"data": {
"id": "task_01M24YMN4EV04M84R5QYM77R1E",
"status": "completed",
"progress": 100,
"result": {
"model_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "warm folk music model"
}
}
}
Usar o modelo criado
Ao concluir, salveresult.model_id. Use-o depois como custom_model_id e omita version e persona_id.
{
"model": "suno",
"custom_model_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"custom": true,
"instrumental": false,
"prompt": "[Verse]\nan old wooden guitar plays a new journey",
"style": "acoustic folk, warm vocals",
"max_mode": true,
"audio_format": "mp3"
}