Generate a video
Creates a video generation job from a text prompt. This is an asynchronous operation that returns immediately with a job ID. Use the retrieve endpoint to check the status and get the video URL when generation is complete.
Bearer token authentication. Use your provider API key or Bifrost authentication token.
Virtual keys (prefixed with sk-bf-) can also be passed here.
In: header
Model identifier in format provider/model
Text prompt describing the video to generate
Optional reference image for image-to-video. OpenAI and Gemini require a base64 data URL (e.g., data:image/png;base64,...). Runway and Replicate accept both data URLs and plain URLs.
Duration of the video in seconds as a string (e.g., "4")
Resolution of the generated video (e.g., 1280x720, 720x1280, 1920x1080)
Text describing what to avoid in the generated video
Seed for reproducible generation
Source video URI for video-to-video generation (provider-specific, e.g. GCS URI)
Enable audio generation in the video (supported by select providers/models)
Fallback models to try if primary model fails
Response Body
curl -X POST "http://localhost:8080/v1/videos" \ -H "Content-Type: application/json" \ -d '{ "model": "string", "prompt": "string" }'{
"id": "string",
"object": "video",
"model": "string",
"status": "queued",
"progress": 0,
"prompt": "string",
"remixed_from_video_id": "string",
"seconds": "string",
"size": "string",
"created_at": 0,
"completed_at": 0,
"expires_at": 0,
"videos": [
{
"type": "url",
"url": "http://example.com",
"base64": "string",
"content_type": "string"
}
],
"error": {
"code": "string",
"message": "string"
},
"content_filter": {
"filtered_count": 0,
"reasons": [
"string"
]
},
"extra_fields": {
"request_type": "string",
"provider": "openai",
"model_requested": "string",
"model_deployment": "string",
"latency": 0,
"chunk_index": 0,
"raw_request": {},
"raw_response": {},
"cache_debug": {
"cache_hit": true,
"cache_id": "string",
"hit_type": "string",
"requested_provider": "string",
"requested_model": "string",
"provider_used": "string",
"model_used": "string",
"input_tokens": 0,
"threshold": 0,
"similarity": 0
}
}
}{
"event_id": "string",
"type": "string",
"is_bifrost_error": true,
"status_code": 0,
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"event_id": "string"
},
"extra_fields": {
"provider": "openai",
"model_requested": "string",
"request_type": "string"
}
}{
"event_id": "string",
"type": "string",
"is_bifrost_error": true,
"status_code": 0,
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"event_id": "string"
},
"extra_fields": {
"provider": "openai",
"model_requested": "string",
"request_type": "string"
}
}