← 문서 목록

POST /v1/videos/generations

비디오 생성(초당 과금). 제출 후 전용 폴링 엔드포인트로 결과를 받습니다.

비디오 생성은 비동기 작업입니다. POST 로 제출하면 즉시 작업 id 가 돌아오고, 결과는 GET /v1/videos/generations/{id} 로 폴링합니다.

Parameters

ParameterTypeRequiredDescription
modelstringYesVIDEO 카테고리 모델 ID (예: everyais/veo-3-1-generate-001)
promptstringYes1~4000자
durationintegerNo생성 길이(초) 1~120, 기본 8. 모델별 실제 지원 범위는 더 좁을 수 있습니다
pricingVariantstringNo해상도/오디오 변형 키. GET /v1/modelspricing.variants[].key 값을 그대로 씁니다
userstringNo최종 사용자 식별자
extra_body.googleobjectNonegativePrompt(≤4000자) · seed · enhancePrompt

Request

{
  "model": "everyais/veo-3-1-generate-001",
  "prompt": "a timelapse of a blooming flower",
  "duration": 8,
  "pricingVariant": "1080p-with-audio"
}

Response (제출 완료)

{
  "id": "cm...",
  "object": "video.generation.job",
  "created": 1709884800,
  "model": "everyais/veo-3-1-generate-001",
  "status": "processing"
}

GET /v1/videos/generations/{id}

작업 상태·결과 폴링. POST 응답의 id 를 이 경로에 넣습니다.

⚠️ /v1/outputs/{requestId} 로는 조회되지 않습니다. 비디오 작업 id 와 요청 id 는 별도 공간이라 그쪽으로 폴링하면 항상 404 입니다.

진행 중일 때는 Retry-After: 5 헤더가 붙습니다 — 5초 간격 폴링을 권장합니다.

status 값은 4가지입니다.

status의미
processing제출·프로바이더 처리·정산 진행 중
completed완료 — durationSecondsdata 포함
failed실패 또는 타임아웃 — error 포함
cancelled취소됨
{
  "id": "cm...",
  "object": "video.generation.job",
  "created": 1709884800,
  "model": "everyais/veo-3-1-generate-001",
  "status": "completed",
  "durationSeconds": 8,
  "data": [{ "url": "https://..." }]
}

드물게 프로바이더 호출 결과를 확정하지 못한 경우 processing 과 함께 outcome_unknown: true 가 내려오고, 운영자 확인이 필요하면 requires_manual_review: true 가 추가됩니다.

작업이 없거나·만료(24시간)됐거나·다른 API 키의 것이면 404 job_not_found 입니다.

과금

총 비용 = durationSeconds × 초당 단가 입니다. pricingVariant 를 지정하면 해당 변형 단가가 우선 적용됩니다. 예를 들어 everyais/veo-3-1-generate-001720p-with-audio · 1080p-with-audio · 4k-with-audio 변형을 제공합니다. 정확한 키와 단가는 GET /v1/models 응답의 pricing 필드에서 확인하세요.