Submit a video generation task
Creates an async video generation task and returns a task_id immediately (HTTP 202). Poll GET /api/v1/videos/generations/{task_id} until it succeeds. The request body can be provided either flattened ({model, prompt, ...}) or nested ({model, input: {prompt, ...}}); the input object takes precedence when present. callback fields (callBackUrl / callback_url / callbackUrl) are ignored.
Three mutually exclusive input modes:
- text-to-video: prompt only;
- image-to-video (first/last frame): first_frame_url (+ optional last_frame_url);
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. Mixing first/last-frame with any multimodal reference input returns 400 invalid_request_error.
- 型: stringX
- Request - Id Optional caller request ID echoed back for diagnostics.
Video generation input. Either flattened ({model, prompt, ...}) or nested ({model, input: {...}}). input takes precedence. Exactly one input mode must be used; mixing first/last-frame with multimodal reference inputs is rejected.
- 型: stringmodel必須
Felo-facing model name, e.g. seedance-2.0-mini.
- 型: string 列挙値aspect
_ratio 値- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- 型: integerduration最小値:4最大値:15
Integer numbers.
- 型: string 形式: urifirst
_frame _url - 型: booleangenerate
_audio - 型: objectinput
Optional nested input object; when present, its fields take precedence over sibling fields.
- aspect型: string 列挙値
_ratio Output aspect ratio; adaptive follows the input image ratio.
値- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- duration型: integer最小値:4最大値:15
Output duration in seconds.
- first型: string 形式: uri
_frame _url First frame image URL (image-to-video mode).
- generate型: boolean
_audio Whether to generate a synchronized audio track.
- last型: string 形式: uri
_frame _url Last frame image URL; must be used together with first_frame_url.
- prompt型: string最大長:2000
Prompt. Required for text-to-video and omni-reference modes.
- reference型: array string[] …3形式: uri
_audio _urls Omni-reference audio clips.
- reference型: array string[] …9形式: uri
_image _urls Omni-reference images. Mutually exclusive with first/last-frame.
- reference型: array string[] …3形式: uri
_video _urls Omni-reference videos. Mutually exclusive with first/last-frame. Supplying video changes the billing unit price and adds input duration to the token count.
- resolution型: string 列挙値
Output resolution. Higher resolution consumes more tokens and costs more.
値- 480p
- 720p
- 1080p
- 4k
- 型: string 形式: urilast
_frame _url - 型: stringprompt最大長:2000
- 型: array string[] …3形式: urireference
_audio _urls - 型: array string[] …9形式: urireference
_image _urls - 型: array string[] …3形式: urireference
_video _urls - 型: string 列挙値resolution値
- 480p
- 720p
- 1080p
- 4k
- 型: object · VideoGenerationAccepted202
Task accepted
- 列挙値kind定数:video必須値
- video
- 型: array string[]outputs必須
Empty until the task succeeds.
- 列挙値status定数:queued必須値
- queued
- 型: stringtask
_id 必須Task id to use for polling.
application/json - 型: object · GenerationError400
Invalid request (unknown model, mixed input modes, invalid fields)
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json - 型: object · GenerationError401
Invalid or missing Felo API key
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json - 型: object · GenerationError402
Insufficient balance / billing requirement not met
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json - 型: object · GenerationError403
Account not permitted (subscription required or user banned). Disabled models are also rejected before upstream calls. Existing accepted requests and tasks continue.
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json - 型: object · GenerationError429
Request or spending limit reached
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json - 型: object · GenerationError502
Upstream provider failed
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json - 型: object · GenerationError503
Generation service or billing service temporarily unavailable
OpenAI-compatible error envelope.
- 型: objecterror
- message型: string必須
- type型: string 列挙値必須値
- invalid
_request _error - server
_error
- code型: string
- param型: string null 許容
application/json
curl https://openapi.felo.ai/api/v1/videos/generations \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"model": "seedance-2.0-mini",
"prompt": "a cinematic trailer shot, 720p",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
{
"task_id": "string",
"status": "queued",
"kind": "video",
"outputs": [
"string"
]
}