비디오 생성은 비동기 작업입니다. POST 로 제출하면 즉시 작업 id 가 돌아오고,
결과는 GET /v1/videos/generations/{id} 로 폴링합니다.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | VIDEO 카테고리 모델 ID (예: everyais/veo-3-1-generate-001) |
prompt | string | Yes | 1~4000자 |
duration | integer | No | 생성 길이(초) 1~120, 기본 8. 모델별 실제 지원 범위는 더 좁을 수 있습니다 |
pricingVariant | string | No | 해상도/오디오 변형 키. GET /v1/models 의 pricing.variants[].key 값을 그대로 씁니다 |
user | string | No | 최종 사용자 식별자 |
extra_body.google | object | No | negativePrompt(≤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 | 완료 — durationSeconds 와 data 포함 |
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-001 은 720p-with-audio · 1080p-with-audio · 4k-with-audio
변형을 제공합니다. 정확한 키와 단가는 GET /v1/models 응답의 pricing 필드에서 확인하세요.