GET

/v1/schemas/elevenlabs/audio/v1/music/plan?kind=output

kind outputactivity audiohash 16c502d7…extracted Oct 6, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
5dc5a9b84ae597252b6d343e1352d76f51c03d6f3a35ca5af6ddf0ecdf8890f5
{
  "fetchedAt": 1791264056,
  "extractorVersion": "1",
  "verifiedAt": null
}

Response body

0 properties · 0 required · 0 $defs

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

application/json
{
  "provider": "elevenlabs",
  "activity": "audio",
  "endpointId": "v1/music/plan",
  "kind": "output",
  "contentHash": "16c502d70713133b65b97130acc21687f7b47aecff72700978b96fb1a4379361",
  "specRevision": null,
  "provenance": {
    "sourceUrl": "https://api.elevenlabs.io/openapi.json",
    "sourceHash": "5dc5a9b84ae597252b6d343e1352d76f51c03d6f3a35ca5af6ddf0ecdf8890f5",
    "fetchedAt": 1791264056,
    "extractorVersion": "1",
    "derivation": "upstream-spec",
    "verifiedAt": null
  },
  "createdAt": 1791264056,
  "supersededAt": null,
  "schema": {
    "anyOf": [
      {
        "$ref": "#/$defs/MusicPrompt"
      },
      {
        "$ref": "#/$defs/CompositionPlan"
      }
    ],
    "title": "Response Generate Composition Plan V1 Music Plan Post",
    "$defs": {
      "AudioRefChunk": {
        "properties": {
          "song_id": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Song Id",
            "description": "The ID of the song to source the chunk from. You can find the song ID in the response headers when you generate a song."
          },
          "range": {
            "$ref": "#/$defs/TimeRange",
            "description": "The time range to extract from the song."
          }
        },
        "type": "object",
        "required": [
          "song_id",
          "range"
        ],
        "title": "AudioRefChunk"
      },
      "CompositionPlan": {
        "properties": {
          "chunks": {
            "items": {
              "oneOf": [
                {
                  "$ref": "#/$defs/GenerationChunk-Input"
                },
                {
                  "$ref": "#/$defs/AudioRefChunk"
                }
              ]
            },
            "type": "array",
            "maxItems": 30,
            "title": "Chunks",
            "description": "The chunks that make up the generation."
          }
        },
        "type": "object",
        "required": [
          "chunks"
        ],
        "title": "CompositionPlan",
        "description": "Composition plan for the `music_v2` and `music_v2_5` models. Using this field with any other model will result in an error.",
        "example": {
          "chunks": [
            {
              "duration_ms": 15000,
              "positive_styles": [
                "pop",
                "warm synths",
                "steady groove",
                "layered harmonies"
              ],
              "text": "[Verse]\nCity lights are fading\nWe keep moving through the night"
            },
            {
              "duration_ms": 15000,
              "positive_styles": [
                "uplifting",
                "bigger drums",
                "wide vocals"
              ],
              "text": "[Chorus]\nHold on to the feeling\n{very loud}Let it rise and come alive"
            },
            {
              "duration_ms": 5000,
              "positive_styles": [
                "gentle ending",
                "soft pads"
              ],
              "text": "[Instrumental Outro]"
            }
          ]
        }
      },
      "ConditionStrength": {
        "type": "string",
        "enum": [
          "low",
          "medium",
          "high",
          "xhigh"
        ],
        "title": "ConditionStrength"
      },
      "GenerationChunk-Input": {
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 6132,
            "title": "Text",
            "description": "The text config to be generated for this chunk. Can contain an optional section name in square brackets at the beginning, e.g. [Verse 1], lyrics lines, and inline directions in curly braces, e.g. {scratching}. Section names must be between 1 and 100 characters. At most 30 lines are allowed, each at most 200 characters."
          },
          "duration_ms": {
            "type": "integer",
            "maximum": 120000,
            "minimum": 3000,
            "title": "Duration Ms",
            "description": "The duration of the chunk in milliseconds. Must be between 3000ms and 120000ms."
          },
          "positive_styles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Positive Styles",
            "description": "The styles and musical directions that should be present in this chunk. Use English language for best results. The styles for the first chunk are the most important as they set the overall tone and genre. Styles for subsequent chunks can be used to add nuance, progression, emphasis, or change the direction of the song. Aim to have at least 6-7 styles in early chunks until the direction is established. Generic styles like 'great production quality' are good default styles to append to the list."
          },
          "negative_styles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Negative Styles",
            "description": "The styles and musical directions that should not be present in this chunk. Use English language for best results. Leaving empty is a good default, only use this field if you want to explicitly avoid a particular style or direction."
          },
          "context_adherence": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "title": "Context Adherence",
            "description": "How much the model adheres to the context of its surrounding chunks. Low adherence means the model can deviate from the context and be more creative. High adherence means the model will be more consistent with the context.",
            "default": "high"
          },
          "conditioning_ref": {
            "anyOf": [
              {
                "$ref": "#/$defs/AudioRefChunk"
              },
              {
                "type": "null"
              }
            ],
            "description": "The audio reference to condition the generation on. The first chunk is the most important as it will influence the generation of all subsequent chunks. Thus, if you want to apply conditioning to the entire song, start conditioning from the first chunk."
          },
          "condition_strength": {
            "anyOf": [
              {
                "$ref": "#/$defs/ConditionStrength"
              },
              {
                "type": "null"
              }
            ],
            "description": "How strongly the model adheres to the conditioning reference. Low strength means the model will be more creative and deviate from the reference. High strength means the model will be more consistent with the reference."
          }
        },
        "type": "object",
        "required": [
          "text",
          "duration_ms",
          "positive_styles"
        ],
        "title": "GenerationChunk"
      },
      "MusicPrompt": {
        "properties": {
          "positive_global_styles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Positive Global Styles",
            "description": "The styles and musical directions that should be present in the entire song. Use English language for best result."
          },
          "negative_global_styles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Negative Global Styles",
            "description": "The styles and musical directions that should not be present in the entire song. Use English language for best result."
          },
          "sections": {
            "items": {
              "$ref": "#/$defs/SongSection"
            },
            "type": "array",
            "maxItems": 30,
            "title": "Sections",
            "description": "The sections of the song."
          }
        },
        "type": "object",
        "required": [
          "positive_global_styles",
          "negative_global_styles",
          "sections"
        ],
        "title": "MusicPrompt",
        "description": "Composition plan for the `music_v1` model. Using this field with any other model will result in an error.",
        "example": {
          "negative_global_styles": [
            "metal",
            "hip-hop",
            "country"
          ],
          "positive_global_styles": [
            "pop",
            "rock",
            "jazz"
          ],
          "sections": [
            {
              "duration_ms": 10000,
              "lines": [
                "Verse 1 lyrics"
              ],
              "negative_local_styles": [
                "metal",
                "hip-hop",
                "country"
              ],
              "positive_local_styles": [
                "pop",
                "rock",
                "jazz"
              ],
              "section_name": "Verse 1"
            }
          ]
        }
      },
      "SectionSource": {
        "properties": {
          "song_id": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Song Id",
            "description": "The ID of the song to source the section from. You can find the song ID in the response headers when you generate a song."
          },
          "range": {
            "$ref": "#/$defs/TimeRange",
            "description": "The range to extract from the source song."
          },
          "negative_ranges": {
            "items": {
              "$ref": "#/$defs/TimeRange"
            },
            "type": "array",
            "maxItems": 10,
            "title": "Negative Ranges",
            "description": "The ranges to exclude from the 'range'."
          }
        },
        "type": "object",
        "required": [
          "song_id",
          "range"
        ],
        "title": "SectionSource"
      },
      "SongSection": {
        "properties": {
          "section_name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Section Name",
            "description": "The name of the section. Must be between 1 and 100 characters."
          },
          "positive_local_styles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Positive Local Styles",
            "description": "The styles and musical directions that should be present in this section. Use English language for best result."
          },
          "negative_local_styles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 50,
            "title": "Negative Local Styles",
            "description": "The styles and musical directions that should not be present in this section. Use English language for best result."
          },
          "duration_ms": {
            "type": "integer",
            "maximum": 120000,
            "minimum": 3000,
            "title": "Duration Ms",
            "description": "The duration of the section in milliseconds. Must be between 3000ms and 120000ms."
          },
          "lines": {
            "items": {
              "type": "string",
              "maxLength": 200
            },
            "type": "array",
            "maxItems": 30,
            "title": "Lines",
            "description": "The lyrics of the section. Max 30 lines per section and max 200 characters per line."
          },
          "source_from": {
            "anyOf": [
              {
                "$ref": "#/$defs/SectionSource"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional source to extract the section from. Used for inpainting."
          }
        },
        "type": "object",
        "required": [
          "section_name",
          "positive_local_styles",
          "negative_local_styles",
          "duration_ms",
          "lines"
        ],
        "title": "SongSection"
      },
      "TimeRange": {
        "properties": {
          "start_ms": {
            "type": "integer",
            "title": "Start Ms"
          },
          "end_ms": {
            "type": "integer",
            "title": "End Ms"
          }
        },
        "type": "object",
        "required": [
          "start_ms",
          "end_ms"
        ],
        "title": "TimeRange"
      }
    }
  }
}

Validate a payload

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