GET

/v1/schemas/runway/audio/v1/text_to_speech

kind inputactivity audiohash 228bcb31…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": "audio",
  "endpointId": "v1/text_to_speech",
  "kind": "input",
  "contentHash": "228bcb316b7054ad88f63ff3343ff0e83e60bd53ac399bb2040e981e5af63aeb",
  "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": [
      {
        "title": "seed_audio",
        "type": "object",
        "properties": {
          "promptText": {
            "description": "A non-empty text prompt. For text-to-speech, the words to speak. For text-to-audio, a scene description that can include voice direction, dialogue, music, and sound effects.",
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
          },
          "voice": {
            "description": "The voice to use for text-to-speech generation. If omitted, a default voice is used.",
            "oneOf": [
              {
                "title": "SeedReferenceVoice",
                "description": "Clone from a single reference audio clip, then speak promptText in that voice.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "reference-audio"
                  },
                  "audioUri": {
                    "description": "A HTTPS URL, Runway or data URI containing an encoded audio. See [our docs](/assets/inputs#audio) on audio inputs for more information.",
                    "example": "https://example.com/audio.mp3",
                    "anyOf": [
                      {
                        "description": "A HTTPS URL, Runway upload URI, or base64 data URI (e.g. `data:audio/mp3;base64,...`, up to 16MB) containing an encoded audio. See [our docs](/assets/inputs#audio) on audio inputs for more information.",
                        "example": "https://example.com/audio.mp3",
                        "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": 16777216,
                        "pattern": "^data:audio\\/.*"
                      }
                    ]
                  }
                },
                "required": [
                  "type",
                  "audioUri"
                ]
              }
            ],
            "discriminator": {
              "propertyName": "type"
            }
          },
          "speechRate": {
            "description": "Relative speech speed. Negative is slower, positive is faster; 0 is normal.",
            "type": "integer",
            "minimum": -50,
            "maximum": 100
          },
          "loudnessRate": {
            "description": "Relative output loudness. Negative is quieter, positive is louder; 0 is normal.",
            "type": "integer",
            "minimum": -50,
            "maximum": 100
          },
          "pitchRate": {
            "description": "Pitch shift in semitones. Negative lowers, positive raises; 0 is unchanged.",
            "type": "integer",
            "minimum": -12,
            "maximum": 12
          },
          "sampleRate": {
            "description": "Output sample rate in Hz.",
            "type": "number",
            "enum": [
              8000,
              16000,
              24000,
              32000,
              44100,
              48000
            ]
          },
          "outputFormat": {
            "description": "Output audio container/format.",
            "type": "string",
            "enum": [
              "wav",
              "mp3",
              "ogg_opus"
            ]
          },
          "model": {
            "type": "string",
            "const": "seed_audio"
          }
        },
        "required": [
          "promptText",
          "model"
        ],
        "additionalProperties": false
      },
      {
        "title": "eleven_multilingual_v2",
        "type": "object",
        "properties": {
          "promptText": {
            "description": "A non-empty string up to 1000 characters (measured in UTF-16 code units). This should describe in detail what should appear in the output.",
            "type": "string",
            "minLength": 1,
            "maxLength": 1000
          },
          "voice": {
            "description": "The voice to use for the generated speech.",
            "oneOf": [
              {
                "title": "RunwayPresetVoice",
                "description": "A voice preset from the RunwayML API.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "runway-preset"
                  },
                  "presetId": {
                    "description": "The preset voice ID to use for the generated speech.",
                    "type": "string",
                    "enum": [
                      "Maya",
                      "Arjun",
                      "Serene",
                      "Bernard",
                      "Billy",
                      "Mark",
                      "Clint",
                      "Mabel",
                      "Chad",
                      "Leslie",
                      "Eleanor",
                      "Elias",
                      "Elliot",
                      "Grungle",
                      "Brodie",
                      "Sandra",
                      "Kirk",
                      "Kylie",
                      "Lara",
                      "Lisa",
                      "Malachi",
                      "Marlene",
                      "Martin",
                      "Miriam",
                      "Monster",
                      "Paula",
                      "Pip",
                      "Rusty",
                      "Ragnar",
                      "Xylar",
                      "Maggie",
                      "Jack",
                      "Katie",
                      "Noah",
                      "James",
                      "Rina",
                      "Ella",
                      "Mariah",
                      "Frank",
                      "Claudia",
                      "Niki",
                      "Vincent",
                      "Kendrick",
                      "Myrna",
                      "Tom",
                      "Wanda",
                      "Benjamin",
                      "Kiana",
                      "Rachel"
                    ]
                  }
                },
                "required": [
                  "type",
                  "presetId"
                ]
              }
            ],
            "discriminator": {
              "propertyName": "type"
            }
          },
          "model": {
            "type": "string",
            "const": "eleven_multilingual_v2"
          }
        },
        "required": [
          "promptText",
          "voice",
          "model"
        ]
      },
      {
        "title": "eleven_v3",
        "type": "object",
        "properties": {
          "promptText": {
            "description": "The text to convert to speech. You can include expressive audio tags like [laughs] or [whispers] in the script.",
            "type": "string",
            "minLength": 1,
            "maxLength": 5000
          },
          "voice": {
            "description": "The voice to use for the generated speech.",
            "oneOf": [
              {
                "title": "RunwayPresetVoice",
                "description": "A voice preset from the RunwayML API.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "runway-preset"
                  },
                  "presetId": {
                    "description": "The preset voice ID to use for the generated speech.",
                    "type": "string",
                    "enum": [
                      "Maya",
                      "Arjun",
                      "Serene",
                      "Bernard",
                      "Billy",
                      "Mark",
                      "Clint",
                      "Mabel",
                      "Chad",
                      "Leslie",
                      "Eleanor",
                      "Elias",
                      "Elliot",
                      "Grungle",
                      "Brodie",
                      "Sandra",
                      "Kirk",
                      "Kylie",
                      "Lara",
                      "Lisa",
                      "Malachi",
                      "Marlene",
                      "Martin",
                      "Miriam",
                      "Monster",
                      "Paula",
                      "Pip",
                      "Rusty",
                      "Ragnar",
                      "Xylar",
                      "Maggie",
                      "Jack",
                      "Katie",
                      "Noah",
                      "James",
                      "Rina",
                      "Ella",
                      "Mariah",
                      "Frank",
                      "Claudia",
                      "Niki",
                      "Vincent",
                      "Kendrick",
                      "Myrna",
                      "Tom",
                      "Wanda",
                      "Benjamin",
                      "Kiana",
                      "Rachel"
                    ]
                  }
                },
                "required": [
                  "type",
                  "presetId"
                ]
              }
            ],
            "discriminator": {
              "propertyName": "type"
            }
          },
          "stability": {
            "description": "Voice stability (0–1). Lower values allow broader emotional range; higher values are steadier.",
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "similarityBoost": {
            "description": "How closely the output tracks the original speaker (0–1). Maps to ElevenLabs similarity_boost.",
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "style": {
            "description": "Style exaggeration (0–1). Higher values amplify the speaker style.",
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "speed": {
            "description": "Speech speed multiplier (0.7–1.2). 1.0 is default; values below slow down and above speed up.",
            "type": "number",
            "minimum": 0.7,
            "maximum": 1.2
          },
          "useSpeakerBoost": {
            "description": "Boost similarity to the original speaker at a small latency cost.",
            "type": "boolean"
          },
          "languageCode": {
            "description": "ISO 639-1 language code to enforce pronunciation and normalization.",
            "type": "string",
            "minLength": 2,
            "maxLength": 5
          },
          "applyTextNormalization": {
            "description": "Text normalization mode: 'auto', 'on', or 'off' (e.g. spelling out numbers).",
            "type": "string",
            "enum": [
              "auto",
              "on",
              "off"
            ]
          },
          "seed": {
            "description": "Optional seed for more deterministic output (0–4294967295). Not guaranteed.",
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "model": {
            "type": "string",
            "const": "eleven_v3"
          }
        },
        "required": [
          "promptText",
          "voice",
          "model"
        ]
      }
    ],
    "discriminator": {
      "propertyName": "model"
    }
  }
}

Validate a payload

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