모델 가이드

Suno API: Suno V6로 노래 생성하기

Suno V6는 아이디어, 스타일, 또는 직접 쓴 가사로 완성된 노래를 작곡해 부르거나 인스트루멘털을 연주합니다. 이 가이드는 REST API로 호출하는 방법, 비용, 네 가지 입력이 어떻게 맞물리는지를 보여 줍니다.

Suno V6 API로 얻을 수 있는 것

Suno V6는 Suno의 최신 음악 모델입니다. 아이디어, 스타일, 직접 쓴 가사 또는 이들의 조합을 주면 완성된 노래를 작곡해 부르거나 인스트루멘털을 연주합니다. Revana에서는 모델 id suno-v6이며, 모든 영상·이미지 모델과 같은 엔드포인트로 호출합니다.

Revana의 Suno V6 한눈에 보기
항목상세
모델 idsuno-v6
생성물보컬이 있는 노래 또는 인스트루멘털
작업당 트랙 수같은 요청에 대한 두 가지 테이크
입력prompt, style, lyrics, instrumental
프롬프트 길이최대 3,000자
가격두 트랙 합쳐 작업당 $0.08
경로경로 1개

Suno API 가격 (2026년 10월)

Suno V6는 초당이나 트랙당이 아니라 작업당 가격입니다. 작업 하나는 $0.08이고 두 트랙을 반환하므로, 완성된 노래 한 곡은 그 절반입니다.

배치 크기별 Suno V6 비용
작업받는 트랙합계
12$0.08
1020$0.80
100200$8.00
1,0002,000$80.00

실패한 작업은 요금이 청구되지 않습니다. 크레딧은 $10부터 시작하는 선불이며 구독은 없습니다. 요금 페이지를 참고하세요.

네 가지 입력과 그 조합 방식

  • prompt는 원하는 노래를 일상적인 말로 설명합니다. 분위기, 주제, 대상 같은 것들입니다.
  • style는 "lo-fi hip hop, soft piano, vinyl crackle"이나 "upbeat pop punk, female vocals"처럼 장르와 사운드를 지정합니다.
  • lyrics는 직접 쓴, 노래로 불릴 가사입니다. [Verse], [Chorus] 같은 섹션 태그를 각각 별도의 줄에 넣으면 모델이 노래의 구성을 잡는 데 도움이 됩니다.
  • instrumental를 true로 설정하면 보컬 없는 음악을 만듭니다.

각 요청에는 style 또는 lyrics(또는 둘 다)가 필요합니다. 가사를 부를 사람이 없으므로 instrumental: true는 lyrics와 함께 보낼 수 없으며, 두 규칙 중 하나라도 어긴 요청은 요금이 청구되기 전에 거부됩니다.

노래 생성하기

모델 id와 input와 함께 POST /v1/generations를 보낸 다음, 작업이 succeeded 또는 failed가 될 때까지 폴링하세요. 이 요청은 $0.08입니다.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "input": {
      "prompt": "A warm, hopeful song about a small bakery opening before sunrise on a quiet street.",
      "style": "acoustic indie folk, male vocals, fingerpicked guitar, light percussion"
    },
    "max_cost_usd": 0.1
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "suno-v6",
    "input": {
        "prompt": "A warm, hopeful song about a small bakery opening before sunrise on a quiet street.",
        "style": "acoustic indie folk, male vocals, fingerpicked guitar, light percussion",
    },
    "max_cost_usd": 0.1,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "suno-v6",
    input: {
      prompt: "A warm, hopeful song about a small bakery opening before sunrise on a quiet street.",
      style: "acoustic indie folk, male vocals, fingerpicked guitar, light percussion",
    },
    max_cost_usd: 0.1,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);
응답
{
  "id": "gen_01JC2V8K5T",
  "model": "suno-v6",
  "status": "succeeded",
  "output": {
    "urls": [
      "https://cdn.revana.si/g/gen_01JC2V8K5T/0.mp3",
      "https://cdn.revana.si/g/gen_01JC2V8K5T/1.mp3"
    ]
  },
  "cost_usd": 0.08,
  "attempts": 1,
  "error": null,
  "created_at": "2026-10-28T10:14:02Z",
  "completed_at": "2026-10-28T10:15:31Z"
}

output.urls의 두 파일은 같은 요청에 대한 두 가지 테이크입니다. 다음과 같이 API에서 다운로드하세요.

두 트랙 모두 다운로드
# Each Suno job returns two tracks. Fetch both once the job has succeeded.
curl -L -o take-1.mp3 https://api.revana.si/v1/generations/gen_01JC2V8K5T/content \
  -H "Authorization: Bearer $REVANA_API_KEY"
curl -L -o take-2.mp3 https://api.revana.si/v1/generations/gen_01JC2V8K5T/content/2 \
  -H "Authorization: Bearer $REVANA_API_KEY"

직접 쓴 가사를 부르게 하기

직접 쓴 가사를 Suno가 부르게 하려면 style와 함께 lyrics로 보내세요.

요청 본문
{
  "model": "suno-v6",
  "input": {
    "style": "synth pop, bright female vocals, 112 bpm",
    "lyrics": "[Verse]\\nCity lights are coming on\\nEvery window tells a story\\n\\n[Chorus]\\nWe run until the morning\\nWe run until the sun"
  },
  "max_cost_usd": 0.1
}

영상용 인스트루멘털

클립에 깔 배경음악이라면 lyrics를 빼고 instrumental를 설정하세요.

요청 본문
{
  "model": "suno-v6",
  "input": {
    "prompt": "Calm background music for a 30 second product video about a ceramic coffee mug.",
    "style": "ambient electronic, soft pads, slow tempo",
    "instrumental": true
  },
  "max_cost_usd": 0.1
}

같은 API 키로 영상도 만들 수 있습니다. Suno 트랙을 영상 모델 가이드의 모든 모델의 클립과 함께 쓰거나, 에이전트가 Revana MCP 서버를 통해 둘 다 처리하게 할 수 있습니다.

Suno V6는 모델 페이지에 다른 모든 모델과 함께 나열되어 있으며, 전체 요청 레퍼런스는 문서에 있습니다. API 키를 받아 첫 노래를 만들어 보세요.

자주 묻는 질문

Suno API는 얼마인가요?

2026년 10월 기준 Revana에서 Suno V6는 작업당 $0.08입니다. 각 작업은 두 곡을 반환하며, 실패한 작업은 요금이 청구되지 않습니다.

Suno API는 노래를 두 곡 반환하나요?

네. Suno V6 작업은 모두 같은 요청에 대한 두 가지 테이크를 반환합니다. /v1/generations/{id}/content와 /content/2에서 다운로드하세요.

Suno API에서 직접 쓴 가사를 사용할 수 있나요?

네. 사운드를 위한 style과 함께 lyrics로 보내세요. [Verse], [Chorus] 같은 섹션 태그를 각각 별도의 줄에 넣으면 노래의 구성을 잡는 데 도움이 됩니다.

Suno로 인스트루멘털 음악을 만들 수 있나요?

네. instrumental을 true로 설정하고 prompt와 style에 음악을 설명하세요. 인스트루멘털 요청에는 lyrics를 보내지 마세요.

Suno 프롬프트는 얼마나 길 수 있나요?

최대 3,000자입니다. 더 긴 프롬프트는 요금이 청구되기 전에 거부됩니다.

하나의 키로 노래 만들기

Suno V6와 모든 영상·이미지 모델을 위한 API 키 하나. $10부터 시작하는 선불 크레딧, 성공한 작업에만 청구.