개발가이드

  • 개발가이드

Kling 영상 생성 AI

텍스트·이미지·참조 주체로 3~15초 영상을 만드는 Kling 3.0 기반 생성 API

지원 API 요약

영상 작업은 접수한 뒤 상태를 조회하고, 완료되면 MP4 파일을 내려받는 흐름입니다. 취소 API는 제공하지 않으며, 실패하거나 처리 시간이 초과되면 예약된 포인트가 자동으로 전액 환불됩니다.

Method
API entry point
기능
성공 결과
POST
/rest/kling/jobs
영상 작업 접수
HTTP 202와 job_id
GET
/rest/kling/jobs/{job_id}
작업 상태 조회
HTTP 200과 현재 상태
GET
/rest/kling/jobs/{job_id}/result
MP4 영상 다운로드(Range 지원)
<job_id>.mp4

1. 작업 접수

구분
내용
API entry point 소개
POST /rest/kling/jobs
기능 소개
프롬프트와(필요 시) 입력 이미지·참조 이미지·참조 영상을 전달해 새로운 영상 생성 작업을 접수합니다.
호출 방식
text 모드는 CL_AUTH_KEY와 JSON 본문을, image·reference 모드는 첨부 파일이 있으므로 multipart/form-data를 사용합니다.
호출 결과
접수 성공 시 HTTP 202를 반환하며 duration × 초당 포인트가 예약 차감됩니다. 완료 시 확정되고, 실패·시간 초과 시 전액 환불됩니다.
응답 결과
job_id, waiting 상태, 모델 정보와 예약 포인트를 반환합니다.
요청 파라미터
이름
타입
필수
설명
prompt
String
O
영상 설명, 최대 2,000자
mode
String
X
text | image | reference, 기본 text
tier
String
X
std | pro, 기본 std
duration
Integer
X
영상 길이(초), 3~15, 기본 5
aspect_ratio
String
X
16:9 | 9:16 | 1:1, 기본 16:9
resolution
String
X
image 모드 전용이며 다른 모드에서 지정하면 APICK_VIDEO_OPTION_NOT_SUPPORTED로 거절됩니다. std 등급은 720P·1080P-SR·1440P-SR(기본 720P), pro 등급은 1080P·1440P-SR(기본 1080P)
audio
Boolean
X
오디오 생성 여부, 기본 true(정책 검수에서 오디오가 거부되면 작업이 실패하고 환불됩니다)
negative_prompt
String
X
제외할 요소를 설명하는 텍스트, 최대 1,000자
cfg_scale
Number
X
프롬프트 반영 강도, 0~1, 기본 0.5
idempotency_key
String
X
같은 요청의 재전송으로 인한 중복 접수·과금을 막는 고유 키. 영문·숫자·_·-, 8~128자

seed는 Kling에서 지원하지 않으며 전달하면 APICK_VIDEO_OPTION_NOT_SUPPORTED로 거절됩니다.

파일 필드(multipart)
필드
모드
개수
설명
image
image
1개(필수)
첫 프레임으로 사용할 이미지
last_image
image
0~1개
마지막 프레임으로 사용할 이미지(선택)
reference_image
reference
1~6개(필수 1개 이상)
주체를 참조할 이미지
reference_video
reference
0~4개
동작을 참조할 영상

이미지는 PNG·JPEG, 300~8,192px, 종횡비 0.4~2.5, 10MB 이하만 허용합니다(다른 모델보다 낮은 한도입니다). 참조 영상은 MP4·MOV·WebM, 50MB 이하만 허용합니다.

호출 방식 — text 모드
curl -X POST "https://apick.app/rest/kling/jobs" \
  -H "CL_AUTH_KEY: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"도심 야경 속을 걷는 인물의 뒷모습, 네온 반사","duration":5,"tier":"std"}'
호출 방식 — image 모드(multipart)
curl -X POST "https://apick.app/rest/kling/jobs" \
  -H "CL_AUTH_KEY: $API_KEY" \
  -F "mode=image" \
  -F "image=@first_frame.png" \
  -F "prompt=바람에 머리카락이 흩날리는 장면" \
  -F "resolution=720P"
응답 결과
{
  "data": {
    "job_id": "9c8b7a6f5e4d3c2b1a0f9e8d7c6b5a4f",
    "status": "waiting",
    "model": "kling",
    "mode": "text",
    "tier": "std",
    "duration": 5,
    "aspect_ratio": "16:9",
    "resolution": null,
    "audio": true,
    "point_per_second": 410,
    "charged_point": 2050
  },
  "api": { "success": true, "cost": 2050 }
}

2. 상태 조회

구분
내용
API entry point 소개
GET /rest/kling/jobs/{job_id}
기능 소개
접수한 작업의 현재 상태와 결과 다운로드 가능 여부를 확인합니다.
호출 방식
접수 응답의 job_id를 URL에 넣고 CL_AUTH_KEY를 전송합니다. 완료 전에는 5초 간격 조회를 권장합니다.
호출 결과
HTTP 200과 waiting, processing, completed, failed 중 하나를 반환합니다.
응답 결과
result_availableresult_expires_at으로 다운로드 가능 여부와 만료 시각을 확인합니다.
호출 방식
curl -sS "https://apick.app/rest/kling/jobs/$JOB_ID" \
  -H "CL_AUTH_KEY: $API_KEY"
응답 결과 — 완료
{
  "data": {
    "job_id": "9c8b7a6f5e4d3c2b1a0f9e8d7c6b5a4f",
    "status": "completed",
    "model": "kling",
    "mode": "text",
    "tier": "std",
    "duration": 5,
    "aspect_ratio": "16:9",
    "resolution": null,
    "audio": true,
    "point_per_second": 410,
    "charged_point": 2050,
    "result_available": true,
    "result_expires_at": "2026-09-20T12:00:00.000Z"
  },
  "api": { "success": true, "cost": 0 }
}
응답 결과 — 실패
{
  "data": {
    "job_id": "9c8b7a6f5e4d3c2b1a0f9e8d7c6b5a4f",
    "status": "failed",
    "result_available": false,
    "result_expires_at": null,
    "error": { "code": "APICK_VIDEO_GENERATION_FAILED", "message": "영상 생성에 실패했습니다. 포인트는 환불되었습니다." }
  },
  "api": { "success": true, "cost": 0 }
}

3. 결과 다운로드

구분
내용
API entry point 소개
GET /rest/kling/jobs/{job_id}/result
기능 소개
완료된 작업의 최종 영상을 MP4 파일로 내려받습니다.
호출 방식
상태 응답의 result_availabletrue일 때 호출합니다. Range 헤더로 구간 다운로드를 지원합니다(HTTP 206).
호출 결과
HTTP 200 또는 206과 video/mp4 파일을 반환합니다. 완료 후 7일 동안 반복 다운로드할 수 있습니다.
응답 결과
<job_id>.mp4 파일이며 Content-Disposition으로 파일명을 안내합니다.
호출 방식
curl -sS "https://apick.app/rest/kling/jobs/$JOB_ID/result" \
  -H "CL_AUTH_KEY: $API_KEY" \
  -o "$JOB_ID.mp4"

요금

등급·해상도
초당 포인트
5초 예시
std
410P
2,050P
pro
550P
2,750P

접수 시 duration × 초당 포인트가 예약 차감됩니다. 완료되면 그대로 확정되고, 실패하거나 처리 시간이 초과되면 예약된 포인트가 전액 환불됩니다. 접수 후에는 취소할 수 없습니다.

오류 코드

코드
HTTP
원인
APICK_VIDEO_AUTH_FAILED
401
인증에 실패했습니다.
APICK_VIDEO_PAYMENT_REQUIRED
403
최소 1회 결제 후 이용할 수 있습니다.
APICK_VIDEO_POINTS_INSUFFICIENT
402
사용 가능한 포인트가 부족합니다.
APICK_VIDEO_INVALID_REQUEST
400
요청 내용을 확인해 주세요.
APICK_VIDEO_PROMPT_REQUIRED
400
prompt를 입력해 주세요.
APICK_VIDEO_MODE_NOT_SUPPORTED
400
이 모델에서는 지원하지 않는 mode입니다.
APICK_VIDEO_DURATION_INVALID
400
duration 값이 허용 범위를 벗어났습니다.
APICK_VIDEO_SOURCE_REQUIRED
400
이 mode에는 입력 파일이 필요합니다.
APICK_VIDEO_SOURCE_INVALID
400
입력 파일 형식이나 크기를 확인해 주세요.
APICK_VIDEO_TOO_MANY_ACTIVE_JOBS
429
동시에 진행할 수 있는 작업 수를 초과했습니다.
APICK_VIDEO_CONTENT_REJECTED
422
요청한 영상을 생성할 수 없습니다. 프롬프트·입력 파일 또는 생성된 오디오가 정책(저작권·안전) 검수에서 거부된 경우이며, 예약 포인트는 전액 환불됩니다. audio=false로 재시도하면 오디오 정책 거부는 피할 수 있습니다.
APICK_VIDEO_RATE_LIMITED
429
현재 요청이 많습니다. 잠시 후 다시 시도해 주세요.
APICK_VIDEO_TEMPORARILY_UNAVAILABLE
503
현재 영상 서비스를 이용할 수 없습니다. 잠시 후 다시 시도해 주세요.
APICK_VIDEO_TIMEOUT
408
처리 시간이 초과됐습니다. 포인트는 환불되었습니다.
APICK_VIDEO_GENERATION_FAILED
500
영상 생성에 실패했습니다. 포인트는 환불되었습니다.
APICK_VIDEO_JOB_NOT_FOUND
404
작업을 찾을 수 없습니다.
APICK_VIDEO_JOB_CONFLICT
409
현재 작업 상태에서는 요청을 처리할 수 없습니다.
APICK_VIDEO_RESULT_EXPIRED
410
결과 보관 기간이 만료되었습니다.

MCP

MCP 도구로도 동일하게 사용할 수 있습니다. kling_jobs_create로 작업을 접수하고 kling_jobs_status로 상태를 조회합니다. 영상 파일은 MCP 응답 크기 제한 때문에 도구로 직접 전달하지 않으며, 상태 조회 응답의 result_url로 REST 다운로드 경로를 안내합니다. 자세한 내용은 MCP 연동 가이드/mcp/ai를 확인하세요.

업로드 용량 제한: 100MB
multipart/form-data 요청에 포함된 입력 이미지·참조 영상의 합계는 최대 100MB입니다. 이미지는 PNG·JPEG·WebP, 영상은 MP4·MOV·WebM을 지원하며 모델별 해상도·종횡비 제약은 가이드의 파라미터 표를 따릅니다.
제한을 초과하면 HTTP 413과 REQUEST_TOO_LARGE 오류가 반환되며 과금되지 않습니다.
현재 페이지 북마크