Runway · JSON Structure

Runway Task Structure

Structure of an asynchronous generation task in the Runway API. All generation operations (video, image, character performance, lip sync, etc.) return a task that is polled for completion.

Type: Properties: 0
Video GenerationImage-GenerationArtificial IntelligenceMachine-LearningGenerative AIAvatarsCharactersWebRTCCreative Tools

Runway Generation Task is a JSON Structure definition published by Runway.

Meta-schema:

JSON Structure

Raw ↑
{
  "name": "Runway Generation Task",
  "description": "Structure of an asynchronous generation task in the Runway API. All generation operations (video, image, character performance, lip sync, etc.) return a task that is polled for completion.",
  "fields": [
    {
      "name": "id",
      "type": "string (UUID)",
      "required": true,
      "description": "Unique task identifier used for polling status"
    },
    {
      "name": "status",
      "type": "string enum",
      "required": true,
      "description": "Current task status",
      "enum": ["PENDING", "PROCESSING", "SUCCEEDED", "FAILED", "CANCELLED"]
    },
    {
      "name": "createdAt",
      "type": "string (ISO 8601 datetime)",
      "required": false,
      "description": "Timestamp when the task was created"
    },
    {
      "name": "output",
      "type": "array of string (URI)",
      "required": false,
      "description": "Output media URLs. Only present when status is SUCCEEDED."
    },
    {
      "name": "failure",
      "type": "string",
      "required": false,
      "description": "Failure reason description. Only present when status is FAILED."
    },
    {
      "name": "model",
      "type": "string",
      "required": false,
      "description": "The generative model used for this task"
    }
  ],
  "task_types": [
    {
      "name": "Text to Video",
      "endpoint": "POST /text_to_video",
      "models": ["gen4.5", "veo3.1", "veo3.1_fast"],
      "input_fields": ["model", "promptText", "duration", "ratio"]
    },
    {
      "name": "Image to Video",
      "endpoint": "POST /image_to_video",
      "models": ["gen4", "gen4_turbo", "gen4.5", "gen4_aleph"],
      "input_fields": ["model", "promptImage", "promptText", "duration", "ratio"]
    },
    {
      "name": "Video to Video",
      "endpoint": "POST /video_to_video",
      "models": ["gen4_aleph"],
      "input_fields": ["model", "promptVideo", "promptText", "ratio"]
    },
    {
      "name": "Text to Image",
      "endpoint": "POST /text_to_image",
      "models": ["gen4_image"],
      "input_fields": ["model", "promptText", "ratio"]
    },
    {
      "name": "Character Performance",
      "endpoint": "POST /character_performance",
      "models": ["act_two"],
      "input_fields": ["model", "character", "reference", "ratio"]
    },
    {
      "name": "Lip Sync",
      "endpoint": "POST /lip_sync",
      "models": ["gen4", "gen4_turbo"],
      "input_fields": ["model", "input", "audio"]
    },
    {
      "name": "Video Upscale",
      "endpoint": "POST /video_upscale",
      "models": ["upscale_v1"],
      "input_fields": ["model", "videoUri"]
    },
    {
      "name": "Frame Interpolation",
      "endpoint": "POST /frame_interpolation",
      "models": ["frame_interpolation_v1"],
      "input_fields": ["model", "videoUri"]
    },
    {
      "name": "Sound Effect",
      "endpoint": "POST /sound_effect",
      "models": ["sound_effect_v1"],
      "input_fields": ["model", "promptText", "videoUri", "duration"]
    }
  ],
  "lifecycle": {
    "description": "All Runway tasks follow this async lifecycle",
    "states": [
      {
        "state": "PENDING",
        "description": "Task queued but not yet processing"
      },
      {
        "state": "PROCESSING",
        "description": "Task actively generating output"
      },
      {
        "state": "SUCCEEDED",
        "description": "Task completed. Output URLs available in output field."
      },
      {
        "state": "FAILED",
        "description": "Task failed. Reason in failure field."
      },
      {
        "state": "CANCELLED",
        "description": "Task was cancelled via DELETE /tasks/{id}"
      }
    ]
  },
  "relationships": [
    {
      "name": "created_by",
      "target": "Generation Request",
      "cardinality": "one-to-one",
      "description": "Each task is created by one generation request"
    },
    {
      "name": "produces",
      "target": "Media Output (URL)",
      "cardinality": "one-to-many",
      "description": "A succeeded task produces one or more media output URLs"
    }
  ]
}

Work with this as data

Every JSON Structure here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for json structure

4 MCP tools reach this
  • find_json_structuresBrowse and filter every JSON Structure in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Structure
curl "https://apis.io/api/v1/json-structures/runway-task-structure"
All json structure
curl "https://apis.io/api/v1/json-structures?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.