Skip to main content

Overview

Runway ML provides video generation via an asynchronous task-based API. Bifrost maps the unified video schema to Runway’s task API and polls until completion.

Supported Operations

OperationSupportedEndpoint
Video Generation/v1/text_to_video, /v1/image_to_video, /v1/video_to_video
Video Retrieve/v1/tasks/{task_id}
Video Downloadvia Retrieve + URL download
Video Delete/v1/tasks/{task_id} (cancel)
Video List-
Video Remix-

1. Video Generation

Generate (POST /v1/videos)

Request Parameters
ParameterTypeRequiredNotes
modelstringRunway model
promptstringText description of the video
input_referencestringInput image for image-to-video
secondsstringDuration in seconds (default: "2")
sizestringResolution as WxH (e.g., 1280x720; default: 1280x720) — converted to W:H ratio
seedintGen models only
audioboolEnable audio generation. Veo models only
video_uristringSource video URL for video-to-video. gen4_aleph only
Extra Params
KeyTypeNotes
referencesarrayVideo reference objects [{"uri": "...", "tag": "..."}] for video-to-video
content_moderationobjectContent moderation config
reference_imagesarrayReference image objects for style/asset guidance
Generation Modes (auto-detected from inputs)
  • Text-to-video: prompt only
  • Image-to-video: prompt + input_reference
  • Video-to-video: prompt + video_urigen4_aleph only
Response: BifrostVideoGenerationResponse with id, status, videos[] Bifrost statuses (normalized): queuedin_progresscompleted / failed These values are the normalized view returned by Bifrost’s API. Runway’s native statuses are: PENDING, THROTTLED, RUNNING, SUCCEEDED, FAILED, CANCELLED.

Retrieve / Download / Delete

OperationEndpointNotes
Get statusGET /v1/videos/{id}Poll until status: completed
Download contentGET /v1/videos/{id}/contentReturns raw video bytes (MP4)
Cancel/DeleteDELETE /v1/videos/{id}Cancels the running task

Configuration

curl --location 'http://localhost:8080/api/providers' \
--header 'Content-Type: application/json' \
--data '{
    "provider": "runway",
    "keys": [
        {
            "name": "runway-key-1",
            "value": "env.RUNWAY_API_KEY",
            "models": [],
            "weight": 1.0
        }
    ]
}'
See Provider Configuration for full setup options.