스템 분리(보컬·반주 분리) API

2026-09-18 업데이트 · Suno-API 팀

인터페이스 설명

스템 분리는 기존 곡을 보컬, 반주 또는 멀티트랙 결과로 나눕니다. 권장 연동 순서는 다음과 같습니다.

  1. 소스 오디오가 이 플랫폼에서 생성한 곡이 아니라면 먼저 소스 오디오 업로드 API를 호출합니다.
  2. POST /api/music/separate를 호출해 스템 분리 작업을 제출합니다.
  3. 곡 조회 API로 스템 분리 결과를 폴링합니다.
  4. 다운로드 엔드포인트로 각 스템 분리 결과의 오디오 파일을 내려받습니다.

엔드포인트: POST /api/music/separate

과금: 유료. stem_mode=two는 현재 기본 1회 0.6위안, stem_mode=twelve는 멀티트랙 분리로 현재 기본 1회 3.0위안입니다. 실제 청구 금액은 현재 백오피스 가격 설정을 따릅니다.

대기 시간과 타임아웃(중요): 이 엔드포인트는 동기 방식이며, 응답이 돌아온 시점에야 주문이 접수되어 생성에 넘겨집니다. 실측 기준 대부분의 요청은 1~3초에 반환되고, 약 10%는 30초를 넘기며, 최장 약 230초가 걸립니다. 클라이언트 타임아웃을 300초 이상으로 설정하세요. 응답이 없다고 해서 생성되지 않은 것이 아니며, 타임아웃 직후 재시도하면 주문이 중복되고 요금이 두 번 청구됩니다. 연결이 끊겼다면 잠시 후 GET /api/music/songs로 확인할 수 있습니다. 자세한 내용은 새 API 개요의 "대기 시간과 타임아웃 설정"을 참고하세요.

인증

파라미터 타입 필수 설명
Authorization string 예 Bearer YOUR_API_KEY
Content-Type string 예 application/json

요청 파라미터

파라미터 타입 필수 기본값 설명
song_id string 예 - 분리할 소스 곡 ID
stem_mode string 예 - 분리 모드: two 또는 twelve
source_audio_url string 아니오 - 소스 오디오 URL
source_file_name string 아니오 - 소스 오디오 파일 이름
source_title string 아니오 - 소스 곡 제목

stem_mode 설명

값 반환 개수 설명
two 4개 2트랙 분리: 보컬 + 반주. 한 번 제출하면 2개 버전 × 2트랙이 나옵니다
twelve 24개 멀티트랙 분리: 2개 버전 × 12트랙, 트랙 이름은 아래 표 참고

스템 분리 설명

스템 분리는 독립된 고정 기능이며, 곡 생성 모델을 입력하거나 선택할 필요가 없습니다. 고객은 소스 곡과 stem_mode만 제출하면 되고, 서버가 모드에 따라 처리합니다.

개수가 나오는 방식: 한 번 제출하면 2개 버전(같은 소재에 대한 두 가지 결과)이 생성되므로 개수 = 2 × 해당 모드의 트랙 수입니다. two는 4개, twelve는 24개입니다. 응답의 clips 배열 실제 길이를 기준으로 하세요. 고정 개수로 루프를 하드코딩하지 마세요(일부 트랙이 실패해도 성공한 트랙은 정상적으로 반환됩니다).

각 모드가 반환하는 트랙

twelve 모드의 12개 트랙(이름은 플랫폼이 고정으로 부여하며 순서는 달라질 수 있습니다):

# 트랙 이름 설명
1 (Vocals) 리드 보컬
2 (Backing Vocals) 화음 / 백킹 보컬
3 (Drums) 드럼
4 (Bass) 베이스
5 (Guitar) 기타
6 (Keyboard) 키보드 / 피아노 계열
7 (Percussion) 퍼커션
8 (Strings) 스트링
9 (Synth) 신스
10 (FX) 효과음 / 환경음
11 (Brass) 브라스
12 (Woodwinds) 목관

two 모드는 (Vocals)와 (Instrumental) 두 트랙을 각각 2개 버전으로 반환합니다. two / twelve의 트랙 이름은 모두 고정 이름이라 소스 곡 이름이 들어가지 않으니, 제목에서 어느 곡인지 알 수 있으리라 기대하지 마세요.

트랙 이름을 고유 키로 쓸 수 없습니다. 두 버전에는 같은 이름의 트랙이 나타나고(예: (Vocals) 두 개, (Strings) 두 개), 한 번의 분리에서 여러 트랙이 반환됩니다. 식별자로는 항상 song_id를 쓰고 song_title은 표시용으로만 쓰세요. 배열 인덱스도 쓰지 마세요(순서가 바뀔 수 있습니다).

요청 예시

보컬 / 반주 분리(stem_mode: "two")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "two",
    "source_audio_url": "https://example.com/source.mp3",
    "source_file_name": "source.mp3",
    "source_title": "Source Song"
  }'

멀티트랙 분리(stem_mode: "twelve")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "twelve",
    "source_audio_url": "https://example.com/source.mp3"
  }'

응답 결과

성공하면 보통 스템 분리 결과 배열이 반환됩니다. 각 스템 분리 결과는 독립된 곡 clip이며, status가 완료 상태가 될 때까지 계속 조회해야 합니다.

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "stem_clip_id_1",
        "song_title": "(Vocals)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      },
      {
        "song_id": "stem_clip_id_2",
        "song_title": "(Instrumental)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      }
    ]
  }
}

위 예시는 two 모드의 4개 중 2개만 보여줍니다. 실제로는 4개가 반환됩니다(2개 버전 × {(Vocals), (Instrumental)}). twelve 모드는 24개가 반환됩니다. 실제 개수는 clips 배열 길이를 기준으로 하세요.

고객은 보통 clips[].song_id만 저장하면 되고, 이후 조회와 다운로드가 이 ID들을 중심으로 이루어집니다.

주의 사항

스템 분리 결과 조회

제출에 성공하면 clips[].song_id로 POST /api/music/query를 호출해 결과를 조회합니다.

curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": "stem_clip_id_1,stem_clip_id_2"
  }'

조회 완료 예시:

[
  {
    "song_id": "stem_clip_id_1",
    "song_title": "(Vocals)",
    "status": "complete",
    "audio_url": "https://...",
    "cover_url": "https://...",
    "duration": 180.5,
    "generation_type": "separate",
    "stem_from_id": "source_clip_id"
  }
]

스템 파일 다운로드

스템 분리 결과가 완료되면 다운로드 엔드포인트로 개별 스템 파일을 내려받을 수 있습니다.

엔드포인트: POST /api/music/download-file

curl -X POST https://www.suno-api.io/api/music/download-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "stem_clip_id_1",
    "kind": "audio"
  }' \
  --output stem.mp3

kind 지원 값:

kind 설명
audio / song / music MP3 오디오 다운로드
cover / image 커버 이미지 다운로드
wav WAV 오디오 다운로드
video / mp4 영상 다운로드

특정 스템 분리 결과의 관련 리소스를 묶어서 내려받으려면 다음을 호출하세요.

curl -X POST https://www.suno-api.io/api/music/download-all \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "stem_clip_id_1"
  }' \
  --output stem-resources.zip

상태 설명

상태 설명
pending 제출됨, 처리 대기
queued 대기열에 있음
generating / processing 처리 중
complete / completed 완료
error / failed 실패, error_message를 확인하세요

자주 발생하는 오류

HTTP 상태 설명 처리 제안
400 파라미터 오류. 예: song_id 또는 stem_mode 누락 요청 파라미터를 확인하세요
401 API Key가 유효하지 않거나 전달되지 않음 Authorization을 확인하세요
402 잔액 부족 충전 후 다시 시도하세요
409 소스 곡을 일시적으로 처리할 수 없음 song_id를 확인하거나 나중에 다시 시도하세요
500/503 서비스 또는 플랫폼 일시 이상 나중에 다시 시도하거나 기술 지원에 문의하세요

호환성 안내

구버전 문서에서는 success/task_id/vocals_url/instrumental_url 같은 단일 객체 예시를 사용했습니다. 현재 스템 분리는 clips[] 곡 배열을 기준으로 하며, 각 분리 결과가 독립된 song_id를 가지고 이후 조회와 다운로드가 이 song_id들을 중심으로 이루어집니다.

관련 문서

다음보컬 제거 API

API 키 발급

가입 후 콘솔에서 API 키를 만들 수 있습니다. 1회 0.6위안으로 2곡이 생성되고, 다운로드는 횟수 제한이 없으며 휴대폰 번호는 필요하지 않습니다.

API 키 받기 개요로 돌아가기