GET

/v1/schemas/runway/video/v1/recipes/multi_shot_video

kind inputactivity videohash b471eefa…extracted Aug 15, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
cbe9ae85cc6ad0ff714fd5ad664993f943b9d51a6155383212951177e4bc2acb
{
  "fetchedAt": 1786771313,
  "extractorVersion": "1",
  "verifiedAt": null
}

Request body

0 properties · 0 required · 0 $defs

This schema isn’t a plain object with properties — showing the raw JSON instead.

application/json
{
  "provider": "runway",
  "activity": "video",
  "endpointId": "v1/recipes/multi_shot_video",
  "kind": "input",
  "contentHash": "b471eefa232dead1b70fad4bfd684f412b1fe225e85273f107b43659e0188686",
  "specRevision": null,
  "provenance": {
    "sourceUrl": "https://raw.githubusercontent.com/runwayml/openapi/next/openapi.json",
    "sourceHash": "cbe9ae85cc6ad0ff714fd5ad664993f943b9d51a6155383212951177e4bc2acb",
    "fetchedAt": 1786771313,
    "extractorVersion": "1",
    "derivation": "upstream-spec",
    "verifiedAt": null
  },
  "createdAt": 1786771313,
  "supersededAt": null,
  "schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "oneOf": [
      {
        "type": "object",
        "properties": {
          "mode": {
            "description": "Workflow mode. `auto` decomposes a story prompt into exactly 5 shots.",
            "type": "string",
            "const": "auto"
          },
          "prompt": {
            "description": "Story prompt for auto mode.",
            "type": "string",
            "minLength": 1,
            "maxLength": 2500
          },
          "version": {
            "description": "Workflow version. Use a dated version (e.g. \"2026-06\") to pin behavior, or \"unsafe-latest\" to track the newest stable version (may break without notice).",
            "type": "string",
            "enum": [
              "2026-06",
              "unsafe-latest"
            ]
          },
          "firstFrame": {
            "description": "Optional image used as the first frame of the output video. See [our docs](/assets/inputs#images) on image inputs.",
            "type": "object",
            "properties": {
              "uri": {
                "description": "A HTTPS URL, Runway or data URI containing an encoded image. See [our docs](/assets/inputs#images) on image inputs for more information.",
                "example": "https://example.com/image.jpg",
                "anyOf": [
                  {
                    "description": "A HTTPS URL, Runway upload URI, or base64 data URI (e.g. `data:image/png;base64,...`, up to 5MB) containing an encoded image. See [our docs](/assets/inputs#images) on image inputs for more information.",
                    "example": "https://example.com/image.jpg",
                    "type": "string",
                    "minLength": 13,
                    "maxLength": 2048,
                    "pattern": "^https:\\/\\/.*"
                  },
                  {
                    "description": "A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.",
                    "example": "runway://<token>",
                    "type": "string",
                    "minLength": 13,
                    "maxLength": 5000,
                    "pattern": "^runway:\\/\\/.*"
                  },
                  {
                    "description": "A data URI containing encoded media.",
                    "example": "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
                    "type": "string",
                    "minLength": 13,
                    "maxLength": 5242880,
                    "pattern": "^data:image\\/.*"
                  }
                ]
              }
            },
            "required": [
              "uri"
            ],
            "additionalProperties": false
          },
          "ratio": {
            "description": "Output dimensions as width:height. 720p ratios (`1280:720`, `720:1280`, `960:960`) use the standard tier; 1080p ratios (`1920:1080`, `1080:1920`, `1440:1440`) use the pro tier. Defaults to `1280:720`.",
            "type": "string",
            "enum": [
              "1280:720",
              "720:1280",
              "960:960",
              "1920:1080",
              "1080:1920",
              "1440:1440"
            ]
          },
          "duration": {
            "description": "Total duration of the output video in seconds. Defaults to 10 seconds.",
            "type": "number",
            "enum": [
              5,
              10,
              15
            ]
          },
          "audio": {
            "description": "Whether to generate audio for the video.",
            "default": true,
            "type": "boolean"
          }
        },
        "required": [
          "mode",
          "prompt",
          "version"
        ],
        "additionalProperties": false
      },
      {
        "type": "object",
        "properties": {
          "mode": {
            "description": "Workflow mode. `custom` polishes a user-provided shot list of 3-5 shots.",
            "type": "string",
            "const": "custom"
          },
          "shots": {
            "description": "Shot list for custom mode (3-5 shots). Per-shot durations must sum to `duration`.",
            "minItems": 3,
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "prompt": {
                  "description": "Shot description prompt.",
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 512
                },
                "duration": {
                  "description": "Duration of this shot in seconds.",
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 15
                }
              },
              "required": [
                "prompt",
                "duration"
              ],
              "additionalProperties": false
            }
          },
          "version": {
            "description": "Workflow version. Use a dated version (e.g. \"2026-06\") to pin behavior, or \"unsafe-latest\" to track the newest stable version (may break without notice).",
            "type": "string",
            "enum": [
              "2026-06",
              "unsafe-latest"
            ]
          },
          "firstFrame": {
            "description": "Optional image used as the first frame of the output video. See [our docs](/assets/inputs#images) on image inputs.",
            "type": "object",
            "properties": {
              "uri": {
                "description": "A HTTPS URL, Runway or data URI containing an encoded image. See [our docs](/assets/inputs#images) on image inputs for more information.",
                "example": "https://example.com/image.jpg",
                "anyOf": [
                  {
                    "description": "A HTTPS URL, Runway upload URI, or base64 data URI (e.g. `data:image/png;base64,...`, up to 5MB) containing an encoded image. See [our docs](/assets/inputs#images) on image inputs for more information.",
                    "example": "https://example.com/image.jpg",
                    "type": "string",
                    "minLength": 13,
                    "maxLength": 2048,
                    "pattern": "^https:\\/\\/.*"
                  },
                  {
                    "description": "A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.",
                    "example": "runway://<token>",
                    "type": "string",
                    "minLength": 13,
                    "maxLength": 5000,
                    "pattern": "^runway:\\/\\/.*"
                  },
                  {
                    "description": "A data URI containing encoded media.",
                    "example": "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
                    "type": "string",
                    "minLength": 13,
                    "maxLength": 5242880,
                    "pattern": "^data:image\\/.*"
                  }
                ]
              }
            },
            "required": [
              "uri"
            ],
            "additionalProperties": false
          },
          "ratio": {
            "description": "Output dimensions as width:height. 720p ratios (`1280:720`, `720:1280`, `960:960`) use the standard tier; 1080p ratios (`1920:1080`, `1080:1920`, `1440:1440`) use the pro tier. Defaults to `1280:720`.",
            "type": "string",
            "enum": [
              "1280:720",
              "720:1280",
              "960:960",
              "1920:1080",
              "1080:1920",
              "1440:1440"
            ]
          },
          "duration": {
            "description": "Total duration of the output video in seconds. Defaults to 10 seconds.",
            "type": "number",
            "enum": [
              5,
              10,
              15
            ]
          },
          "audio": {
            "description": "Whether to generate audio for the video.",
            "default": true,
            "type": "boolean"
          }
        },
        "required": [
          "mode",
          "shots",
          "version"
        ],
        "additionalProperties": false
      }
    ],
    "discriminator": {
      "propertyName": "mode"
    }
  }
}

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"runway","endpointId":"v1/recipes/multi_shot_video","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}