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
오디오 업로드 및 커버 생성
공개 오디오 URL을 업로드하고 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"}
]
}
이 엔드포인트는 공개 오디오 URL에서 직접 커버를 만들므로 먼저
uploadTask를 호출할 필요가 없습니다. task_id가 반환되며 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
필수
Bearer Token. API Key 관리 페이지에서 API Key를 받으세요.
Body
string
기본값:"suno"
항상
suno를 사용합니다.string
필수
공개적으로 접근 가능한 오디오 파일의 직접 HTTP(S) URL입니다. 소스 오디오는 8분 미만이어야 합니다. 로컬 경로,
blob: URL, 로그인이 필요한 링크는 지원하지 않습니다.string
기본값:"v6"
공개 버전:
v6 / v6-wild / v6-mini. 기본값은 v6이며 custom_model_id 사용 시 생략하세요.string
모델 생성 작업이 반환한 전체 UUID.
version 및 persona_id와 함께 사용할 수 없습니다.boolean
이 필드는 명시적으로 보내세요.
false이면 gpt_description, true이면 가사와 스타일 필드를 사용합니다.boolean
기본값:"false"
연주곡을 생성할지 여부.
custom=true이고 이 필드가 false이면 prompt가 필수입니다.string
영감 설명.
custom=false일 때 필수이며 최대 3,000자입니다.string
커스텀 가사, 최대 5,000자.
string
스타일 설명, 최대 1,000자.
string
제목, 최대 80자.
string
제외할 스타일.
number
스타일 가중치, 0~1.
number
창의성 가중치, 0~1.
number
오디오 가중치, 0~1.
boolean
입력 가사를 창의적으로 다시 쓸지 여부.
string
보컬 성별:
Male / Female.string
Persona ID.
custom_model_id와 함께 사용할 수 없습니다.integer
목표 생성 길이, 10~360초. 커스텀 모드에서만 사용할 수 있습니다.
string
스타일 변화:
off / normal / high / extra / max.boolean
기본값:"false"
Max 모드를 활성화합니다. 커스텀 모드가 필요하며 일반 가격의 2배로 청구됩니다.
string
출력 형식:
mp3 / m4a / wav.Response
integer
응답 상태 코드.
array
제출 결과.
data[0].task_id를 읽고 작업 조회 API를 폴링하세요.{
"code": 200,
"data": [
{"status": "submitted", "task_id": "task_01M24YMN4EV04M84R5QYM77R1E"}
]
}