API 키 발급 및 잔여 시간 확인을 위해 먼저 로그인해주세요.
API 키가 유출되지 않도록 주의하세요. 키가 유출된 경우 즉시 재발급을 눌러 기존 키를 폐기하십시오.
본 API는 AI 에이전트 및 자동화 스크립트 연동에 최적화되어 있습니다. 아래의 JSON 구조와 파라미터 명세를 참고하여 렌더링 요청을 구성하십시오.
POST https://sunsaktool-service-741834545202.asia-northeast3.run.app/api/enterprise/render
Headers:
Content-Type: application/json
x-api-key: 발급받은_API_KEY_입력
{
"renderType": "story",
"webhookUrl": "https://your-server.com/webhook/sunsak",
"quality": "1080p",
"projectSettings": {
"header": {
"text": "순삭 라디오",
"backgroundColor": "#e82c43",
"color": "#ffffff",
"fontFamily": "GmarketSans",
"fontSize": 24,
"customImage": "data:image/png;base64,...",
"logo": { "url": "https://example.com/logo.png", "size": 40 }
},
"project": {
"title": "API 연동 풀 옵션 예제",
"author": "익명",
"views": 1500000,
"titleColor": "#000000",
"titleFontSize": 22,
"titleFontFamily": "Pretendard"
},
"defaultStyle": {
"fontFamily": "Pretendard",
"fontSize": 23,
"color": "#000000",
"textAlign": "center",
"lineHeight": 1.5,
"letterSpacing": "0px"
}
},
"globalBGM": { "url": "humorous-escalation", "volume": 0.2, "startTime": 0 },
"scriptCards": [
{
"text": "첫 번째 장면(이미지)",
"media": { "url": "https://example.com/a.jpg", "type": "image", "showOn": "card-start" },
"layout": { "media": { "x": 0, "y": 0, "scale": 1.0 } }
},
{
"text": "두 번째 장면(비디오)",
"media": { "url": "https://example.com/b.mp4", "type": "video", "showOn": "card-start" },
"layout": {
"media": {
"x": 105,
"y": 50,
"scale": 0.5,
"comment": "Scale 0.5 적용 시 중앙 정렬을 위해 x(+105), y(+50) 보정값이 더해진 상태입니다."
}
}
}
]
}
webhookUrl (String): 렌더링 완료 시 결과 데이터를 수신할 서버 주소.quality (String): "1080p" 또는 "720p". (기본값: 1080p)text: 헤더 중앙 텍스트 (최대 40자)backgroundColor / color: 배경색 및 글자색 (HEX 코드)fontFamily / fontSize: 헤더 폰트 종류 및 크기icon: "none", "back", "menu" 중 택 1customImage: 헤더 배경 이미지. (시뮬레이터 크롭 도구의 Base64 결과값)logo: { "url": "Base64 또는 URL", "size": 40 } (우측 로고 이미지 및 크기)title: 영상 메인 제목 (최대 40자)author: 작성자 이름 (기본값: 익명)views: 조회수 (숫자)titleFontFamily / titleFontSize: 제목 폰트 및 크기titleColor / metaColor: 제목 및 조회수 텍스트 색상fontFamily / fontSize / color: 본문 폰트 종류, 크기, 색상textAlign: 자막 정렬 ("left", "center", "right")lineHeight: 줄 간격(행간) (기본값 1.5)letterSpacing: 글자 간격(자간) (예: "2px", "-0.5px")
영상은 여러 개의 scriptCards 배열로 구성됩니다. (duration은 TTS 길이에 맞춰 자동 계산됩니다.)
text (String): 화면에 표시될 텍스트. 줄바꿈은 \n 사용.ttsVoice (String): 구글 TTS 보이스 (예: "ko-KR-Standard-A", "ko-KR-Standard-C" 등)lineAppearanceOrder (Array): 텍스트를 한 줄씩 나타나게 할 때 사용. order가 0보다 크면 순차 등장.media: 배경 이미지/영상 설정
url: 이미지/영상 URL 또는 Base64 데이터type: "image" (이미지/GIF용) 또는 "video" (MP4/MOV용)showOn (String): 미디어가 나타날 타이밍 (기본값: "card-start")
card-start: 장면이 시작되자마자 표시linestart-0: 0번째(첫 번째) 줄 자막이 읽히기 시작할 때 표시lineend-0: 0번째(첫 번째) 줄 자막이 끝날 때 표시scale을 줄이면 이미지가 왼쪽 위로 쏠려 보이게 됩니다.
보정값(offset) = (기준너비(420) * (1 - scale)) / 2
layout.media: { "x": 105, "y": 50, "scale": 0.5 } (0.5로 줄이고 정중앙 배치한 예시)layout.text: { "x": 0, "y": 0, "scale": 1.0 }animations.media : 배경 이미지/영상의 등장 및 퇴장 효과
in (등장), out (퇴장)
animations.text : 자막 텍스트의 등장 및 퇴장 효과
in (등장), out (퇴장)
"fadeIn", "fadeOut", "none""none" (효과 없음)입니다."animations": {
"media": { "in": {"type": "fadeIn"}, "out": {"type": "none"} },
"text": { "in": {"type": "none"}, "out": {"type": "fadeOut"} }
}
ttsVoice (String): 사용할 목소리 코드
ko-KR-Standard-A: 여성 1 (차분함)ko-KR-Standard-B: 남성 1 (굵직함)ko-KR-Standard-C: 남성 2 (밝음, 추천)ko-KR-Standard-D: 여성 2 (부드러움)ttsSettings.speed (Number): 말하기 속도
0.25 ~ 4.01.0 (순삭툴 권장: 1.35)API 요청 시 fontFamily 값으로 아래의 정확한 문자열을 사용해야 합니다.
"Pretendard" (기본 고딕)
"'Noto Sans KR', sans-serif"
"GmarketSans" (개성있는 제목)
"'IBM Plex Sans KR', sans-serif"
"'Do Hyeon', sans-serif" (레트로)
"'Nanum Myeongjo', serif" (명조)
"'Gowun Batang', serif" (고운 바탕)
"'Black Han Sans', sans-serif" (강력한 제목)
"'Gaegu', cursive" (귀여운 손글씨)
"'Hi Melody', cursive"
"'Noto Serif KR', serif"
"'Spoqa Han Sans Neo', sans-serif"
"'Dokdo', cursive" (거친 붓글씨)
"Cafe24Ssurround"
"KOTRA_HOPE"
"'Nanum Gothic', sans-serif"
globalBGM.url에 아래의 이름을 정확히 입력하세요.
ranking-bgm
big-cafe
blue-jacket
Cheerful Breeze
Cute Puppy
Humorous Escalation
laughter-in-the-breeze
smiley-composure
spider
Wagging Tails
white-color
sfxUrl에 아래 이름을 정확히 입력하세요. (스크롤하여 확인 가능)
What, rizz, faaah, boom, 까꿍, 깜짝 2, 깜짝 놀라는 전자음 1, 깜짝 놀라는 전자음 2, 깜짝 놀라는 전자음 3, 놀람.발견, 두둥탁!, 등장신(트랜스포머)2, 띠-으-, 띠딩2, 띠링, 띠용띠용(전자음), 띵, 마우스 더블클릭소리, 비우욱, 빠르게 사르르 녹는 느낌, 뽀욕 (고무장난감 누르는), 뾰로로롱 (하프), 뾰로롱, 뿅, 삐-우-우-으-, 수우우우, 수으으윽, 쉭, 스스우욱, 스우우, 스우우우으, 스우우욱, 스우우츠으, 스우윽, 스우윽2, 스으으윽, 스으으윽2, 스으으윽3, 스으츠, 쏘오오, 쒹, 쓔우욱, 예~, 우우윽, 우우흐으으, 으르르츠흐, 으으스윽, 으흐츠, 책장 넘기기 1, 책장 넘기기 2, 책장 넘기기 3, 책장 넘기기 4, 츠으으, 카툰 스핀, 카툰 쌩쌩이 출발, 카툰 쌩쌩이, 카툰 웃음, 카툰 팝, 쿠-우-우-웅, 쿵 효과음, 키보드 타이핑, 퉁우우, 팝, 푸직, 화면전환효과음 01, 화면전환효과음 02, 화면전환효과음 03, 화면전환효과음 04, 화면전환효과음 05, 화면전환효과음 06, 화면전환효과음 07, 화면전환효과음 08, 화면전환효과음 09, 화면전환효과음 10, 화면전환효과음 11, 화면전환효과음 12, 화면전환효과음 13, 화면전환효과음 14, 화면전환효과음 15, 화면전환효과음 16, 화면전환효과음 17, 화면전환효과음 18, 화면전환효과음 19, 화면전환효과음 20, 화면전환효과음 21, 화면전환효과음 22, 후우우욱, 후윽, 훅, 휙(만화적), 펑