Kling 3.0
텍스트나 프레임 한두 장으로 std 또는 pro 등급의 3~15초 영상을 생성하며, 멀티샷 스토리보드와 재사용 가능한 요소를 지원합니다. 초 단위로 과금됩니다.
- 비동기: 생성 호출은 작업 ID를 반환하며, 작업이 성공하면 영상이 준비됩니다.
- 세 가지 입력 방식: 텍스트만, 첫 프레임, 또는 첫 프레임과 마지막 프레임. 이 모델은 참조 이미지, 영상, 오디오를 받지 않습니다.
resolution은 등급입니다.std는 720p,pro(기본값)는 1080p로 렌더링합니다.- 멀티샷: 첫 프레임 이미지 하나로 샷을 최대 5개까지, 샷마다 프롬프트와 길이를 따로 지정합니다. 샷 길이의 합은
duration과 같아야 합니다. - 요소:
elements로 한 번 정의하는 이름 있는 피사체를 최대 3개까지 둘 수 있습니다. - 선택한 등급에서 영상 초 단위로 과금됩니다. 실패한 작업은 비용이 들지 않습니다.
API Explorer에서 이 모델을 엽니다. BeatAPI API 키를 입력해 작업을 만드세요. 실제 호출이며 본인 잔액에서 과금됩니다.
엔드포인트와 인증
POST https://api.beatapi.io/v1/videos/tasks
Authorization
string
필수
BeatAPI API 키를 Bearer <BEATAPI_API_KEY>로 보내세요. 키는 대시보드에서 만듭니다. 키는 서버에 보관하고, 브라우저나 모바일 앱에 포함하지 마세요.
본문은 Content-Type: application/json과 함께 JSON으로 보냅니다. Idempotency-Key는 선택 사항입니다. 논리적 요청마다 고유한 값(최대 255자)을 보내고, 완전히 같은 본문을 재시도할 때만 다시 사용하세요. 24시간 안에 같은 키와 본문으로 재시도하면 첫 응답을 Idempotent-Replayed: true와 함께 다시 반환하고, 같은 키에 다른 본문을 보내면 409 idempotency_conflict를 반환합니다. 2xx 이외의 응답은 저장되지 않으므로 400이나 402 이후의 재시도는 다시 실행됩니다.
요청 처리 방식
작업 만들기
아래 파라미터를 엔드포인트로 POST하세요. 201은 작업이 접수되었고 가격만큼 잔액이 보류되었다는 뜻이며, 작업은 백그라운드에서 실행됩니다. data.id를 저장하세요.
완료 기다리기
status가 succeeded 또는 failed가 될 때까지 GET /v1/tasks/{task_id}를 호출하고, 호출 사이에 data.poll_after_seconds만큼 기다리세요(이미지 5초, 영상 8초). 또는 task.succeeded와 task.failed에 대한 웹훅을 등록하세요. 처리 시간 초과로 중단된 작업은 이벤트를 보내지 않으므로 폴링은 대비책으로 유지하세요.
입력 모드
요청 파라미터
model
string
필수
실행할 모델입니다.
값: kling-v3
값이 잘못된 경우
- 누락:
"model" is required - 이 엔드포인트에 이미지 모델을 보낸 경우:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
prompt
string
필수
영상에서 일어나는 일: 피사체, 동작, 카메라 움직임, 스타일.
길이: 1–5000자
- 길이는 문자 수로 계산합니다(한중일 문자 하나는 1자).
- 멀티샷을 포함한 모든 모드에서 필수이며, 멀티샷에서는 각 샷에도
multi_prompt에 별도의 프롬프트가 있습니다.
값이 잘못된 경우
- 누락:
"prompt" is required - 비어 있거나 한도보다 긴 경우:
"prompt" has an unsupported length
images
string[]
선택
첫 프레임, 또는 첫 프레임과 마지막 프레임.
항목 수: 1–2
각 항목은 공개 https:// URL입니다. 로컬 파일은 POST /v1/files로 먼저 업로드한 뒤 반환된 data.url을 전달하세요.
- 링크 하나: 이 이미지에서 영상이 시작됩니다. 링크 두 개:
images[0]은 첫 프레임,images[1]은 마지막 프레임입니다. - 멀티샷(
multi_shots: true)은 이미지를 정확히 한 장 받습니다. - 이 모델에는 참조 이미지 필드가 없습니다. 피사체 이미지는
elements에 넣으세요.
값이 잘못된 경우
- 링크가 두 개 초과:
"images" accepts at most 2 items - 빈 배열:
"images" requires at least 1 item - https:// 링크가 아닌 경우:
"images[0]" must be a public HTTPS URL - 이미지가 없거나 두 장인
multi_shots: true:Kling V3 multi-shot mode requires exactly one image
duration
integer
선택기본값: 5
영상 길이(초)이며 정수입니다. 이 값으로 과금됩니다.
기본값: 5
범위: 3–15
- 생략하면
5가 사용되어 과금됩니다. multi_shots: true에서는multi_prompt에 있는 샷들의duration합이 이 값과 정확히 같아야 합니다.duration을 생략하면 합이 5이어야 합니다.
값이 잘못된 경우
- 범위 밖, 정수가 아님, 또는 문자열로 보낸 경우:
"duration" is outside its supported range - 멀티샷 길이의 합이
duration과 다른 경우:Kling V3 shot durations must sum to duration
aspect_ratio
string
선택기본값: 16:9
가로:세로로 나타낸 영상 모양입니다.
허용 값: 16:9, 9:16, 1:1
기본값: 16:9
- 기본값은
16:9입니다.
값이 잘못된 경우
- 목록에 없는 값:
"aspect_ratio" must be one of: [16:9 9:16 1:1]
resolution
string
선택기본값: pro
품질 등급입니다. std는 720p, pro는 1080p로 렌더링합니다. pro가 초당 가격이 더 높습니다. 이름은 픽셀 크기가 아니라 std와 pro입니다.
허용 값: std, pro
기본값: pro
- 생략하면
pro가 사용되어 과금됩니다. 4K,720p,1080p는 받지 않습니다.std또는pro를 보내세요.
값이 잘못된 경우
- 목록에 없는 값(예:
720p또는4K):"resolution" must be one of: [std pro]
sound
boolean
선택
영상에 생성된 사운드트랙을 넣을지 정합니다.
- 생략하면 사운드는
multi_shots를 따릅니다. 멀티샷 요청이면 켜지고 아니면 꺼집니다. 직접 정하려면true또는false를 보내세요.
값이 잘못된 경우
- true나 false가 아닌 경우:
"sound" must be a boolean
multi_shots
boolean
선택기본값: false
스토리보드 모드를 켭니다. 영상은 multi_prompt에 나열된 샷들로 만들어집니다. 기본값은 false입니다.
기본값: false
images에 이미지 정확히 한 장과, 샷 길이의 합이duration과 같은multi_prompt가 필요합니다.multi_shots: true없이 보낸multi_prompt는 거부됩니다.- 검사 순서: 이미지 한 장,
multi_prompt존재 여부, 길이.
값이 잘못된 경우
- true나 false가 아닌 경우:
"multi_shots" must be a boolean - 이미지가 없거나 둘 이상:
Kling V3 multi-shot mode requires exactly one image multi_prompt없음:Kling V3 multi-shot mode requires multi_prompt- 샷 길이의 합이
duration과 다른 경우:Kling V3 shot durations must sum to duration
multi_prompt
object[]
선택
멀티샷 영상의 샷을 순서대로 나열합니다. 객체 1~5개이며, 각각 프롬프트와 길이를 가집니다.
항목 수: 1–5
- 각 샷은 필수 필드 두 개를 가진 객체이며, 다른 필드는 받지 않습니다.
multi_prompt[].prompt(string, 필수): 이 샷에서 일어나는 일, 1~500자.multi_prompt[].duration(integer, 필수): 이 샷의 길이(초 단위 정수), 1~12.- 샷 길이의 합은 요청의
duration(duration을 생략하면 5)과 같아야 하며, 합계는 최대 15입니다. multi_shots: true일 때만 유효합니다.
값이 잘못된 경우
multi_shots: true없이 보낸 경우:"multi_prompt" requires multi_shots=true- 샷이 5개 초과:
"multi_prompt" accepts at most 5 items - 빈 배열:
"multi_prompt" requires at least 1 item prompt가 없는 샷:"prompt" is required in "multi_prompt[0]"duration이 없는 샷:"duration" is required in "multi_prompt[0]"- 비어 있거나 500자를 넘는 샷 프롬프트:
"multi_prompt[0].prompt" has an unsupported length - 1~12 범위 밖이거나 정수가 아닌 샷 길이:
"multi_prompt[0].duration" is outside its supported range prompt,duration이외의 키:field "name" is not supported in "multi_prompt[0]"- 샷 길이의 합이
duration과 다른 경우:Kling V3 shot durations must sum to duration
elements
object[]
선택
이미지로 한 번 정의하는 이름 있는 피사체(인물, 제품, 소품)를 최대 3개까지 둘 수 있습니다.
항목 수: 3개 이하
- 객체를 최대 3개까지 담은 배열입니다. 각 객체는 다음 키만 받습니다.
elements[].name(string, 필수): 요소 이름, 1자 이상.elements[].description(string, 선택): 요소에 대한 설명. 생략하면name이 설명으로 쓰입니다.elements[].element_input_urls(문자열 배열, 필수): 요소를 보여 주는 공개 HTTPS 링크 1~4개.elements[].element_input_audio_urls(문자열 배열, 선택): 요소의 공개 HTTPS 오디오 링크 정확히 하나.elements[].start_time과elements[].end_time(integer, 선택): 밀리초 단위 시간이며 각각 030000 사이의 정수입니다. 둘 다 보내거나 둘 다 생략하세요.8000(3~8초)이어야 합니다.end_time은start_time보다 커야 하고,end_time - start_time은 3000- 링크 제한은 요소마다 따로 적용됩니다. 각 항목에 링크 4개와 오디오 링크 1개를 둘 수 있습니다.
값이 잘못된 경우
- 요소가 3개 초과:
"elements" accepts at most 3 items - 객체가 아닌 요소:
"elements[0]" must be an object name이 없는 요소:"name" is required in "elements[0]"element_input_urls가 없는 요소:"element_input_urls" is required in "elements[0]"- 빈
name:"elements[0].name" has an unsupported length - 링크가 4개 초과:
"elements[0].element_input_urls" accepts at most 4 items - 빈
element_input_urls배열:"elements[0].element_input_urls" requires at least 1 item - https://:가 아닌 링크:
"elements[0].element_input_urls[1]" must be a public HTTPS URL - 오디오 링크가 둘 이상:
"elements[0].element_input_audio_urls" accepts at most 1 items - 0~30000 범위 밖이거나 정수가 아닌
start_time또는end_time:"elements[0].start_time" is outside its supported range - 요소가 받지 않는 키:
field "color" is not supported in "elements[0]" start_time과end_time중 하나만 있음,end_time이start_time보다 늦지 않음, 또는 구간이 3초보다 짧거나 8초보다 긴 경우:Kling V3 element segment must provide a 3-8 second start_time/end_time range
입력 미디어 제한
게이트웨이는 작업을 만들기 전에 모든 입력을 읽고, 아래 제한을 벗어난 입력은 해당 입력을 명시한 400 bad_request로 거부합니다. 과금되지 않습니다.
- 게이트웨이는 모든 이미지, 요소 링크, 오디오 링크가 공개 HTTPS 링크인지만 검사합니다. 작업 생성 전에 크기, 형식, 픽셀 크기를 측정하지 않으므로, 모델이 사용할 수 없는 입력은 제출 후 작업을 실패시킵니다. 메시지에 바꿀 부분이 표시되며 보류 금액은 전액 반환됩니다.
- 로컬 파일이 있다면
POST /v1/files로 업로드하고 반환된data.url을 전달하세요.
멀티샷 규칙
작업 생성 시 다음 순서로 검사하며, 위반한 요청은 400 bad_request로 거부되고 비용이 들지 않습니다.
- 텍스트만으로 하는 멀티샷은 지원하지 않습니다. 멀티샷 영상은 항상 이미지 한 장에서 시작합니다.
- 멀티샷 요청은 샷 길이의 합인
duration초로 과금됩니다.
이 모델이 받지 않는 필드
다음 필드를 보내면 무시되지 않고 과금 전에 거부됩니다.
reference_images,reference_videos,reference_audios,generate_audio,seed,quality,watermark,task_type,output_format→field "reference_images" is not supported by model kling-v3(보낸 필드 포함).- 그 밖의 알 수 없는 필드 →
unknown field: <name>.
요청 예시
텍스트로 영상 생성
사운드가 있는 pro 등급(1080p) 5초 클립입니다.
첫 프레임
이미지에서 영상이 시작됩니다.
첫 프레임과 마지막 프레임
더 저렴한 std 등급(720p)으로 첫 번째 이미지에서 두 번째 이미지로 이어지는 영상입니다.
멀티샷
첫 프레임 이미지 하나로 만드는 3초 샷 두 개입니다. 샷 길이(3 + 3)가 duration(6)과 같습니다.
재사용 가능한 요소
이미지 두 장으로 이름 있는 요소 하나를 정의합니다. 요소 이름은 product이며 설명은 선택 사항입니다.
응답
작업 생성(201)
작업 객체입니다. 작업이 성공할 때까지 output는 null입니다. ‘실행 중’으로 표시된 필드는 작업이 끝나면 사라집니다.
완료된 작업
GET /v1/tasks/{task_id}는 HTTP 200과 함께 status: "succeeded", 그리고 data.output에 결과를 반환합니다.
출력 필드
실패한 작업
실패한 작업도 GET /v1/tasks/{task_id}에서는 HTTP 200입니다. 실패 정보는 본문에 있습니다. 보류 금액이 전액 환불되므로 과금되지 않습니다.
전체 예시
작업을 만들고, 서버의 폴링 안내에 따라 기다린 뒤 결과 URL을 출력합니다. 환경 변수에 BEATAPI_API_KEY를 설정하고 requests를 설치하세요.
과금
sound는 가격에 영향을 주지 않습니다. 가격은duration과resolution으로만 정해지므로 사운드 유무와 관계없이 같은 가격 행이 적용됩니다.- 가격은 선택한 등급의 영상 초당 요금입니다. 아래 목록은 8초 클립 기준이므로 8로 나누면 초당 요금이 됩니다(
std초당 약 0.13). - 초 수는
duration이며, 생략하면 5입니다. 멀티샷 요청은 샷 길이의 합이며duration과 같습니다. 작업의usage.billable_duration_seconds에 표시됩니다. - 가격은 작업 생성 시 보류되고 영상이 준비되면 정산됩니다. 실패한 작업은 제출 후 콘텐츠 검수에서 거부된 경우를 포함해 전액 환불됩니다.
자주 발생하는 오류
HTTP 오류 요약
작업이 생성되기 전의 오류는 2xx가 아닌 응답으로 오며 과금되지 않습니다. error.code 또는 error.retryable로 분기하세요. message에 문제가 표시됩니다. 전체 목록과 재시도 정책은 오류에 있습니다.
인증
API 키를 Authorization: Bearer <BEATAPI_API_KEY>로 보내세요.
헤더
본문은 Content-Type: application/json과 함께 JSON으로 보냅니다. Idempotency-Key는 선택 사항입니다. 논리적 요청마다 고유한 값(최대 255자)을 보내고, 완전히 같은 본문을 재시도할 때만 다시 사용하세요. 24시간 안에 같은 키와 본문으로 재시도하면 첫 응답을 Idempotent-Replayed: true와 함께 다시 반환하고, 같은 키에 다른 본문을 보내면 409 idempotency_conflict를 반환합니다. 2xx 이외의 응답은 저장되지 않으므로 400이나 402 이후의 재시도는 다시 실행됩니다.
요청
실행할 모델입니다.
값: kling-v3
값이 잘못된 경우
- 누락:
"model" is required - 이 엔드포인트에 이미지 모델을 보낸 경우:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
영상에서 일어나는 일: 피사체, 동작, 카메라 움직임, 스타일.
길이: 1–5000자
- 길이는 문자 수로 계산합니다(한중일 문자 하나는 1자).
- 멀티샷을 포함한 모든 모드에서 필수이며, 멀티샷에서는 각 샷에도
multi_prompt에 별도의 프롬프트가 있습니다.
값이 잘못된 경우
- 누락:
"prompt" is required - 비어 있거나 한도보다 긴 경우:
"prompt" has an unsupported length
가로:세로로 나타낸 영상 모양입니다.
허용 값: 16:9, 9:16, 1:1
기본값: 16:9
- 기본값은
16:9입니다.
값이 잘못된 경우
- 목록에 없는 값:
"aspect_ratio" must be one of: [16:9 9:16 1:1]
영상 길이(초)이며 정수입니다. 이 값으로 과금됩니다.
기본값: 5
범위: 3–15
- 생략하면
5가 사용되어 과금됩니다. multi_shots: true에서는multi_prompt에 있는 샷들의duration합이 이 값과 정확히 같아야 합니다.duration을 생략하면 합이 5이어야 합니다.
값이 잘못된 경우
- 범위 밖, 정수가 아님, 또는 문자열로 보낸 경우:
"duration" is outside its supported range - 멀티샷 길이의 합이
duration과 다른 경우:Kling V3 shot durations must sum to duration
이미지로 한 번 정의하는 이름 있는 피사체(인물, 제품, 소품)를 최대 3개까지 둘 수 있습니다.
항목 수: 3개 이하
- 객체를 최대 3개까지 담은 배열입니다. 각 객체는 다음 키만 받습니다.
elements[].name(string, 필수): 요소 이름, 1자 이상.elements[].description(string, 선택): 요소에 대한 설명. 생략하면name이 설명으로 쓰입니다.elements[].element_input_urls(문자열 배열, 필수): 요소를 보여 주는 공개 HTTPS 링크 1~4개.elements[].element_input_audio_urls(문자열 배열, 선택): 요소의 공개 HTTPS 오디오 링크 정확히 하나.elements[].start_time과elements[].end_time(integer, 선택): 밀리초 단위 시간이며 각각 030000 사이의 정수입니다. 둘 다 보내거나 둘 다 생략하세요.8000(3~8초)이어야 합니다.end_time은start_time보다 커야 하고,end_time - start_time은 3000- 링크 제한은 요소마다 따로 적용됩니다. 각 항목에 링크 4개와 오디오 링크 1개를 둘 수 있습니다.
값이 잘못된 경우
- 요소가 3개 초과:
"elements" accepts at most 3 items - 객체가 아닌 요소:
"elements[0]" must be an object name이 없는 요소:"name" is required in "elements[0]"element_input_urls가 없는 요소:"element_input_urls" is required in "elements[0]"- 빈
name:"elements[0].name" has an unsupported length - 링크가 4개 초과:
"elements[0].element_input_urls" accepts at most 4 items - 빈
element_input_urls배열:"elements[0].element_input_urls" requires at least 1 item - https://:가 아닌 링크:
"elements[0].element_input_urls[1]" must be a public HTTPS URL - 오디오 링크가 둘 이상:
"elements[0].element_input_audio_urls" accepts at most 1 items - 0~30000 범위 밖이거나 정수가 아닌
start_time또는end_time:"elements[0].start_time" is outside its supported range - 요소가 받지 않는 키:
field "color" is not supported in "elements[0]" start_time과end_time중 하나만 있음,end_time이start_time보다 늦지 않음, 또는 구간이 3초보다 짧거나 8초보다 긴 경우:Kling V3 element segment must provide a 3-8 second start_time/end_time range
첫 프레임, 또는 첫 프레임과 마지막 프레임.
항목 수: 1–2
각 항목은 공개 https:// URL입니다. 로컬 파일은 POST /v1/files로 먼저 업로드한 뒤 반환된 data.url을 전달하세요.
- 링크 하나: 이 이미지에서 영상이 시작됩니다. 링크 두 개:
images[0]은 첫 프레임,images[1]은 마지막 프레임입니다. - 멀티샷(
multi_shots: true)은 이미지를 정확히 한 장 받습니다. - 이 모델에는 참조 이미지 필드가 없습니다. 피사체 이미지는
elements에 넣으세요.
값이 잘못된 경우
- 링크가 두 개 초과:
"images" accepts at most 2 items - 빈 배열:
"images" requires at least 1 item - https:// 링크가 아닌 경우:
"images[0]" must be a public HTTPS URL - 이미지가 없거나 두 장인
multi_shots: true:Kling V3 multi-shot mode requires exactly one image
멀티샷 영상의 샷을 순서대로 나열합니다. 객체 1~5개이며, 각각 프롬프트와 길이를 가집니다.
항목 수: 1–5
- 각 샷은 필수 필드 두 개를 가진 객체이며, 다른 필드는 받지 않습니다.
multi_prompt[].prompt(string, 필수): 이 샷에서 일어나는 일, 1~500자.multi_prompt[].duration(integer, 필수): 이 샷의 길이(초 단위 정수), 1~12.- 샷 길이의 합은 요청의
duration(duration을 생략하면 5)과 같아야 하며, 합계는 최대 15입니다. multi_shots: true일 때만 유효합니다.
값이 잘못된 경우
multi_shots: true없이 보낸 경우:"multi_prompt" requires multi_shots=true- 샷이 5개 초과:
"multi_prompt" accepts at most 5 items - 빈 배열:
"multi_prompt" requires at least 1 item prompt가 없는 샷:"prompt" is required in "multi_prompt[0]"duration이 없는 샷:"duration" is required in "multi_prompt[0]"- 비어 있거나 500자를 넘는 샷 프롬프트:
"multi_prompt[0].prompt" has an unsupported length - 1~12 범위 밖이거나 정수가 아닌 샷 길이:
"multi_prompt[0].duration" is outside its supported range prompt,duration이외의 키:field "name" is not supported in "multi_prompt[0]"- 샷 길이의 합이
duration과 다른 경우:Kling V3 shot durations must sum to duration
스토리보드 모드를 켭니다. 영상은 multi_prompt에 나열된 샷들로 만들어집니다. 기본값은 false입니다.
기본값: false
images에 이미지 정확히 한 장과, 샷 길이의 합이duration과 같은multi_prompt가 필요합니다.multi_shots: true없이 보낸multi_prompt는 거부됩니다.- 검사 순서: 이미지 한 장,
multi_prompt존재 여부, 길이.
값이 잘못된 경우
- true나 false가 아닌 경우:
"multi_shots" must be a boolean - 이미지가 없거나 둘 이상:
Kling V3 multi-shot mode requires exactly one image multi_prompt없음:Kling V3 multi-shot mode requires multi_prompt- 샷 길이의 합이
duration과 다른 경우:Kling V3 shot durations must sum to duration
품질 등급입니다. std는 720p, pro는 1080p로 렌더링합니다. pro가 초당 가격이 더 높습니다. 이름은 픽셀 크기가 아니라 std와 pro입니다.
허용 값: std, pro
기본값: pro
- 생략하면
pro가 사용되어 과금됩니다. 4K,720p,1080p는 받지 않습니다.std또는pro를 보내세요.
값이 잘못된 경우
- 목록에 없는 값(예:
720p또는4K):"resolution" must be one of: [std pro]
영상에 생성된 사운드트랙을 넣을지 정합니다.
- 생략하면 사운드는
multi_shots를 따릅니다. 멀티샷 요청이면 켜지고 아니면 꺼집니다. 직접 정하려면true또는false를 보내세요.
값이 잘못된 경우
- true나 false가 아닌 경우:
"sound" must be a boolean
응답
작업 객체입니다. 작업이 성공할 때까지 output는 null입니다. ‘실행 중’으로 표시된 필드는 작업이 끝나면 사라집니다.

