
Suno API Key: 키 생성부터 첫 노래 요청과 결과 확인까지
reAPI용 Suno API key를 만들고 Bearer 인증을 설정하세요. 네 언어 예시로 첫 요청을 보내고 오디오 결과를 조회하며 키, 잔액, 작업 오류를 해결합니다.
reAPI 경로에서 사용할 Suno API key를 받으려면 reAPI에 로그인한 뒤 API Keys에서 키를 만드세요. https://reapi.ai/api/v1 요청에 Authorization: Bearer <key>를 붙입니다. 이는 reAPI 엔드포인트용 reAPI 자격 증명이며 Suno가 발급한 개발자 키는 아닙니다.[1]
2026년 9월 14일 기준으로 이 시리즈에서 확인한 Suno 공식 자료는 문서화된 공개 셀프서비스 키 발급 대신 파트너 관심 신청을 안내합니다. 차이는 공식 API 제공 현황에서 다룹니다. 이 가이드는 reAPI 키 생성부터 첫 요청, 오디오 생성 완료까지 설명합니다.[2]
핵심 요약
- reAPI API Keys 설정에서 키를 만들고 표시될 때 저장하세요. 인증 문서는 전체 키가 한 번만 표시된다고 설명합니다.[1]
- 서버에서 Bearer 헤더를 보내세요. Suno 웹사이트 로그인이나 구독은 이 API 자격 증명이 아닙니다.
- 오디오 생성 엔드포인트에
model: "suno-music"과version: "V6"를 제출합니다.[3] - 응답의
id를 저장하고 작업을 조회하세요. HTTP 200만으로 노래 생성 성공을 판단할 수 없습니다.[4] - 완료된 노래 요청은 60 credits($0.06)이며 두 테이크를 포함합니다. 폴링은 무료이고 제출 전 잔액을 확인해야 합니다.[3]
reAPI 경로용 Suno API key 만들기
reAPI 계정, API Keys 설정 접근 권한, 실행할 작업에 충분한 credits가 필요합니다. 예시는 터미널, requests가 설치된 Python, 내장 fetch를 제공하는 Node.js 또는 Go를 사용합니다. 하나를 선택하세요. 네 예시를 모두 실행하면 생성 요청도 네 번 만들어집니다.
- 로그인한 뒤 API Keys 설정을 엽니다.
- 실제 페이지에서 확인한 CREATE API KEY 버튼을 누릅니다. 인증 가이드에서는 “Create new key”라고 부릅니다.
music-development처럼 알아보기 쉬운 이름을 지정합니다.- 표시된 키를 복사해 서버의 비밀 관리 도구나 버전 관리에서 제외한 로컬 환경 파일에 저장합니다.[1]
예시를 실행하는 프로세스 환경에 REAPI_API_KEY를 설정하세요. 이 이름은 예시 변수이며 API의 필수 필드가 아닙니다. 실제 키를 코드, 브라우저 번들, 저장소, URL, 지원 문의에 넣지 마세요. 문서에 나온 운영 키 접두사는 rk_live_입니다. 모의 응답용 rk_test_는 여전히 “coming soon”으로 표시되므로 이 가이드에서 이용 가능한 무료 테스트 방법이 아닙니다.[1]
Suno API 사용법: 첫 인증 요청 보내기
네 예시는 같은 영감 모드 요청을 보냅니다. custom_mode: false는 prompt를 노래 설명으로 사용하고, instrumental: false는 보컬을 요청합니다. 작업은 model, 생성 버전은 version에 지정하며 현재 snake_case 필드 이름을 사용합니다.[3]
예시의 30초는 네트워크 요청 제한 시간이며 노래 완성 기한이 아닙니다. 제출 후 생성은 비동기로 계속됩니다. 각 예시는 HTTP 오류를 확인하고 반환된 작업 ID를 출력합니다. 제출 단계의 대안들이므로 그다음에는 폴링을 진행하세요.
cURL
jq로 id를 추출합니다. 환경 변수에는 키가 미리 설정되어 있어야 합니다.
: "${REAPI_API_KEY:?Set REAPI_API_KEY in your environment}"
curl --fail-with-body --silent --show-error --max-time 30 \
https://reapi.ai/api/v1/audio/generations \
-H "Authorization: Bearer $REAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-music",
"version": "V6",
"custom_mode": false,
"instrumental": false,
"prompt": "An upbeat acoustic song about taking the first train home"
}' > suno-submit.json && jq -er '.id' suno-submit.jsonPython
필요하다면 requests를 설치하고 서버 또는 로컬 터미널에서 저장해 실행하세요.
import os
import requests
response = requests.post(
"https://reapi.ai/api/v1/audio/generations",
headers={"Authorization": f"Bearer {os.environ['REAPI_API_KEY']}"},
json={
"model": "suno-music",
"version": "V6",
"custom_mode": False,
"instrumental": False,
"prompt": "An upbeat acoustic song about taking the first train home",
},
timeout=30,
)
response.raise_for_status()
print(response.json()["id"])Node.js
submit.mjs로 저장하고 환경 변수를 설정한 뒤 node submit.mjs를 실행하세요.
const key = process.env.REAPI_API_KEY;
if (!key) throw new Error("Set REAPI_API_KEY in your environment");
const response = await fetch("https://reapi.ai/api/v1/audio/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${key}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "suno-music",
version: "V6",
custom_mode: false,
instrumental: false,
prompt: "An upbeat acoustic song about taking the first train home",
}),
signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const task = await response.json();
if (!task.id) throw new Error("Submission response has no task id");
console.log(task.id);Go
main.go로 저장하고 go run main.go를 실행합니다. 표준 라이브러리만 사용하는 예시입니다.
package main
import (
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
"strings"
"time"
)
func main() {
if err := submit(); err != nil {
log.Fatal(err)
}
}
func submit() error {
key := os.Getenv("REAPI_API_KEY")
if key == "" {
return fmt.Errorf("set REAPI_API_KEY in your environment")
}
payload := `{"model":"suno-music","version":"V6","custom_mode":false,"instrumental":false,"prompt":"An upbeat acoustic song about taking the first train home"}`
req, err := http.NewRequest("POST",
"https://reapi.ai/api/v1/audio/generations", strings.NewReader(payload))
if err != nil {
return err
}
req.Header.Set("Authorization", "Bearer "+key)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 30 * time.Second}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return err
}
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
return fmt.Errorf("HTTP %d: %s", resp.StatusCode, body)
}
var task struct { ID string `json:"id"` }
if err := json.Unmarshal(body, &task); err != nil {
return err
}
if task.ID == "" {
return fmt.Errorf("submission response has no task id")
}
fmt.Println(task.ID)
return nil
}작업 ID를 저장하고 오디오가 준비될 때까지 조회하기
제출 응답에는 id, model, status, created_at이 있습니다. 설명문에서 task ID라고 부르더라도 저장할 필드는 **id**입니다. 존재하지 않는 최상위 task_id를 읽으려 하면 안 됩니다.[3]
아래 자리표시자를 실제 ID로 바꾸세요. 명령은 한 번만 상태를 조회합니다. 작업이 processing이면 약 3초 간격으로 반복하고 앱에 맞는 클라이언트 대기 상한을 정하세요. 작업 문서는 간격을 둔 조회를 권장하며 폴링은 credits를 소비하지 않습니다.[4]
: "${REAPI_API_KEY:?Set REAPI_API_KEY in your environment}"
TASK_ID='replace-with-the-returned-id'
curl --fail-with-body --silent --show-error --max-time 30 \
"https://reapi.ai/api/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $REAPI_API_KEY"HTTP 상태뿐 아니라 JSON 상태를 확인하세요.
processing: ID를 유지하고 기다린 뒤 다시 조회합니다.completed:output.audio_urls와 Suno 문서에 정의된tracks레코드를 읽습니다.failed: 폴링을 멈추고error.code,error.message,usage.credits를 확인합니다.[3][4]
이 시리즈의 운영 환경 확인에서는 생성이 완료되고 오디오 URL 두 개가 반환됐습니다. 한 번의 생성 흐름을 확인한 것이며 지연 시간 벤치마크나 모든 요청의 성공 보장은 아닙니다. Suno 문서는 트랙의 url을 보장하지만 ID, 가사, 길이 같은 메타데이터는 비어 있으면 생략될 수 있습니다. 후속 편집에 필요한 ID는 반환될 때 저장하세요.[3]
ID를 받은 뒤 로컬 대기 시간이 끝나도 나중에 같은 작업을 계속 조회할 수 있습니다. 클라이언트가 기다림을 멈췄다는 이유만으로 바로 새 생성을 제출하지 마세요. 장기 보관이 필요하면 완료된 오디오를 자체 저장소에 복사하세요. 작업 계약은 CDN의 영구 보관을 약속하지 않습니다.[4]
인증, 잔액, 요청 오류 해결하기
공개 오류 문서는 HTTP 오류와 작업 실패를 구분합니다. 작업을 찾았다면 HTTP 200이면서 JSON 본문은 status: "failed"와 8xxxx 오류를 포함할 수 있습니다.[5]
| HTTP 또는 작업 결과 | 확인할 사항 | 다음 조치 |
|---|---|---|
401, 10001–10004 | Bearer 헤더 누락·형식 오류, 유효하지 않거나 폐기된 키 | 헤더 수정 또는 키 교체 |
400, 20002–20004 | 필수 필드 누락, 잘못된 값, 엔드포인트에 맞지 않는 모델 | 오디오 엔드포인트, suno-music, version, 현재 필드 사용 |
402, 30001 | 요청 비용보다 부족한 credits | 다시 제출하기 전 잔액 확인 |
404, 40001 | 작업이 없거나 다른 사용자 소유 | 반환된 ID와 해당 계정 사용 |
429, 50001 | 요청 빈도 초과 | Retry-After에 따라 대기 |
200, status: "failed" | error.code의 실행 오류 | 작업 오류 확인, HTTP 200만으로 성공 판단 금지 |
오류에 request_id가 있으면 요청 메서드와 대략적인 시간도 저장하세요. 키를 공유하지 않고 문제를 조사하는 데 도움이 됩니다. 입력 검증, 인증, 잔액 문제를 수정한 뒤 다시 시도하세요.[5]
무료 이용과 키 교체의 의미
키는 요청을 인증할 뿐 생성을 무료로 만들지 않습니다. 가상의 잔액 $0.10은 100 credits입니다. 완료된 노래 요청당 60 credits이므로 한 번 요청하고 40 credits가 남아 두 번째 전체 노래 요청에는 부족합니다. 무제한 무료 Suno API key를 기대하기보다 실제 프로모션 자격과 사용 가능한 잔액을 확인하세요.[3]
편집과 내보내기 요금은 Suno API 가격 가이드를 참고하세요. 키가 노출되면 설정에서 폐기합니다. 정기 교체는 새 키 생성, 서버 비밀 값 변경, 새 자격 증명 확인, 이전 키 폐기 순서로 진행합니다. 인증 문서는 기존 대기 작업이 폐기 이후에도 완료까지 계속되고 credits가 청구될 수 있다고 설명합니다. 폐기는 새 요청을 막으며 기존 작업을 취소하지 않습니다.[1]
자주 묻는 질문
Suno API key는 어디서 받나요?
reAPI 경로에서는 API Keys 설정에서 reAPI 자격 증명을 만듭니다. Suno 공식 개발자 관심 양식은 별도의 파트너 신청입니다.[1][2]
Suno 구독에 이 키가 포함되나요?
아니요. Suno 구독과 reAPI 계정은 별개입니다. 호출하는 엔드포인트의 서비스가 발급한 자격 증명을 사용하세요. 공식 접근 설명에서 자세히 다룹니다.
무제한 생성용 무료 Suno API key를 받을 수 있나요?
자격 증명이 무제한 잔액을 뜻하지는 않습니다. 계정 잔액과 작업 단가를 확인하세요. 예시의 $0.10은 $0.06 노래 요청 한 번을 지원하며 지속적인 무료 생성은 아닙니다.[3]
reAPI에서 Suno API 인증은 어떻게 하나요?
생성 POST와 작업 조회 GET 모두에 Authorization: Bearer <key>를 보냅니다. 키는 서버에 보관하고 JSON prompt 본문에 넣지 마세요.[1]
HTTP 200인데 왜 노래가 없나요?
제출은 비동기입니다. id를 저장하고 JSON 상태가 completed 또는 failed가 될 때까지 조회하세요. 작업 실패여도 폴링 응답의 HTTP 상태는 200일 수 있습니다.[4][5]
V6 Mini나 Wild로 바꾸면 키도 바뀌나요?
Bearer 인증 흐름은 같습니다. 지원하는 작업의 version을 V6_MINI 또는 V6_WILD로 설정하고 model을 버전 이름으로 바꾸지 마세요. V6 통합 가이드에 매개변수 규칙이 있습니다.[3]
먼저 한 번의 요청을 완료하세요
동작하는 Suno API key는 시작입니다. 반환된 작업 ID를 보관하고 성공과 실패 두 종료 상태를 처리한 뒤 완료된 오디오를 저장하세요. 이 작은 흐름이 동작하면 Suno 문서의 매개변수와 요금을 확인하며 사용자 가사, 다른 V6 변형, 후속 편집을 추가할 수 있습니다.
참고 자료
- reAPI. Authentication and key management. Retrieved September 14, 2026 from Authentication; key-creation button also checked at API Keys.
- Suno. Developer API partner-interest application. Retrieved September 14, 2026 from official application.
- reAPI. Suno operation and version reference. Retrieved September 14, 2026 from Suno, Suno V6 and the public rate card.
- reAPI. Task polling reference. Retrieved September 14, 2026 from Tasks.
- reAPI. Error codes and handling. Retrieved September 14, 2026 from Errors.
작성자

카테고리
더 많은 게시물

Venice.ai 대안 2026: 5가지 서비스 비교
2026년 Venice.ai 대안을 찾고 계신가요? OpenRouter, Together AI, DeepInfra, 로컬 Ollama, reAPI를 모델 범위, 프라이버시, 가격, API 설계 기준으로 비교했습니다.


MiniMax M3 API: 백만 토큰 문맥, 가격, 코딩 가이드 2026
MiniMax M3 API로 코딩 에이전트와 다중 모달 작업을 합니다. 공식 및 reAPI 가격, 백만 토큰 문맥 동작, 사고 모드, 제한을 비교합니다.


문서에서 비디오 생성 API: PDF, PPT, XLS, DOCX, 웹페이지
Wan 3.0으로 PDF, 프레젠테이션, 스프레드시트, 문서 또는 공개 웹페이지에서 비디오를 생성합니다. 입력 제한, 요금 계산, 요청 예제를 포함합니다.
