{
  "service": "sunoapi",
  "displayName": "SunoAPI",
  "categories": [
    "AI",
    "Design & Media"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "sunoapi_api_key",
      "description": "SunoAPI API key used with the Authorization Bearer header. Create or copy it from the API Key Management page: https://sunoapi.org/api-key."
    }
  ],
  "homepageUrl": "https://sunoapi.org",
  "actions": [
    {
      "id": "sunoapi.add_instrumental",
      "service": "sunoapi",
      "name": "add_instrumental",
      "description": "Add instrumental backing to uploaded audio through SunoAPI.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string",
            "description": "The uploaded music URL.",
            "format": "uri"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The music title."
          },
          "negativeTags": {
            "type": "string",
            "minLength": 1,
            "description": "Music styles or traits to avoid."
          },
          "tags": {
            "type": "string",
            "minLength": 1,
            "description": "The music style tags."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style adherence weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The audio consistency weight between 0 and 1."
          },
          "model": {
            "type": "string",
            "enum": [
              "V4_5PLUS",
              "V5",
              "V5_5"
            ],
            "description": "The add instrumental model.",
            "default": "V4_5PLUS"
          }
        },
        "additionalProperties": false,
        "required": [
          "uploadUrl",
          "title",
          "negativeTags",
          "tags",
          "callBackUrl",
          "model"
        ],
        "description": "The input payload for submitting a SunoAPI add instrumental task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.add_vocals",
      "service": "sunoapi",
      "name": "add_vocals",
      "description": "Add vocals to uploaded audio through SunoAPI.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string",
            "description": "The uploaded audio URL.",
            "format": "uri"
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "The vocal prompt."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The music title."
          },
          "negativeTags": {
            "type": "string",
            "minLength": 1,
            "description": "Music styles or traits to avoid."
          },
          "style": {
            "type": "string",
            "minLength": 1,
            "description": "The music and vocal style."
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style adherence weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The audio consistency weight between 0 and 1."
          },
          "model": {
            "type": "string",
            "enum": [
              "V4_5PLUS",
              "V5",
              "V5_5"
            ],
            "description": "The add vocals model.",
            "default": "V4_5PLUS"
          }
        },
        "additionalProperties": false,
        "required": [
          "uploadUrl",
          "callBackUrl",
          "prompt",
          "title",
          "negativeTags",
          "style",
          "model"
        ],
        "description": "The input payload for submitting a SunoAPI add vocals task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.boost_music_style",
      "service": "sunoapi",
      "name": "boost_music_style",
      "description": "Boost or expand a music style prompt.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The style description."
          }
        },
        "additionalProperties": false,
        "required": [
          "content"
        ],
        "description": "The input payload for boosting a music style prompt."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI object response."
      }
    },
    {
      "id": "sunoapi.convert_to_wav_format",
      "service": "sunoapi",
      "name": "convert_to_wav_format",
      "description": "Submit a SunoAPI WAV conversion task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "audioId",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI WAV conversion task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.create_music_video",
      "service": "sunoapi",
      "name": "create_music_video",
      "description": "Submit a SunoAPI music video task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          },
          "author": {
            "type": "string",
            "description": "Video author label."
          },
          "domainName": {
            "type": "string",
            "description": "Video domain name."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "audioId",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI music video task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.extend_music",
      "service": "sunoapi",
      "name": "extend_music",
      "description": "Submit a SunoAPI music extension task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "defaultParamFlag": {
            "type": "boolean",
            "description": "Whether to use custom parameters."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          },
          "continueAt": {
            "type": "number",
            "description": "The extension start point in seconds."
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "The prompt, lyrics, or instruction sent to SunoAPI."
          },
          "style": {
            "type": "string",
            "minLength": 1,
            "description": "The music style or genre."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The generated music title."
          },
          "customMode": {
            "type": "boolean",
            "description": "Whether to use SunoAPI custom mode."
          },
          "instrumental": {
            "type": "boolean",
            "description": "Whether the generated audio should be instrumental."
          },
          "personaId": {
            "type": "string",
            "minLength": 1,
            "description": "The optional SunoAPI persona identifier."
          },
          "personaModel": {
            "type": "string",
            "enum": [
              "style_persona",
              "voice_persona"
            ],
            "description": "The SunoAPI persona model.",
            "default": "style_persona"
          },
          "model": {
            "type": "string",
            "enum": [
              "V4",
              "V4_5",
              "V4_5PLUS",
              "V4_5ALL",
              "V5",
              "V5_5"
            ],
            "description": "The SunoAPI music generation model."
          },
          "negativeTags": {
            "type": "string",
            "minLength": 1,
            "description": "Music styles or traits to avoid."
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style guidance weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The input audio influence weight between 0 and 1."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "defaultParamFlag",
          "audioId",
          "customMode",
          "instrumental",
          "model",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI music extension task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.generate_lyrics",
      "service": "sunoapi",
      "name": "generate_lyrics",
      "description": "Submit a SunoAPI lyrics generation task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The lyrics prompt."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "prompt",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI lyrics generation task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.generate_mashup",
      "service": "sunoapi",
      "name": "generate_mashup",
      "description": "Submit a SunoAPI mashup task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uploadUrlList": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The audio URL.",
              "format": "uri"
            },
            "description": "The two audio URLs to mash up.",
            "minItems": 2,
            "maxItems": 2
          },
          "customMode": {
            "type": "boolean",
            "description": "Whether to use custom mode."
          },
          "prompt": {
            "type": "string",
            "description": "The mashup prompt."
          },
          "style": {
            "type": "string",
            "description": "The music style."
          },
          "title": {
            "type": "string",
            "description": "The music title."
          },
          "instrumental": {
            "type": "boolean",
            "description": "Whether the output should be instrumental."
          },
          "model": {
            "type": "string",
            "enum": [
              "V4",
              "V4_5",
              "V4_5PLUS",
              "V4_5ALL",
              "V5"
            ],
            "description": "The mashup model."
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style guidance weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The input audio influence weight between 0 and 1."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "uploadUrlList",
          "customMode",
          "model",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI mashup task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.generate_midi",
      "service": "sunoapi",
      "name": "generate_midi",
      "description": "Submit a SunoAPI MIDI generation task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "callBackUrl",
          "audioId"
        ],
        "description": "The input payload for submitting a SunoAPI MIDI generation task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.generate_music",
      "service": "sunoapi",
      "name": "generate_music",
      "description": "Submit a SunoAPI music generation task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "The prompt, lyrics, or instruction sent to SunoAPI."
          },
          "style": {
            "type": "string",
            "minLength": 1,
            "description": "The music style or genre."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The generated music title."
          },
          "customMode": {
            "type": "boolean",
            "description": "Whether to use SunoAPI custom mode."
          },
          "instrumental": {
            "type": "boolean",
            "description": "Whether the generated audio should be instrumental."
          },
          "personaId": {
            "type": "string",
            "minLength": 1,
            "description": "The optional SunoAPI persona identifier."
          },
          "personaModel": {
            "type": "string",
            "enum": [
              "style_persona",
              "voice_persona"
            ],
            "description": "The SunoAPI persona model.",
            "default": "style_persona"
          },
          "model": {
            "type": "string",
            "enum": [
              "V4",
              "V4_5",
              "V4_5PLUS",
              "V4_5ALL",
              "V5",
              "V5_5"
            ],
            "description": "The SunoAPI music generation model."
          },
          "negativeTags": {
            "type": "string",
            "minLength": 1,
            "description": "Music styles or traits to avoid."
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style guidance weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The input audio influence weight between 0 and 1."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "customMode",
          "instrumental",
          "model",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI music generation task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.generate_music_cover",
      "service": "sunoapi",
      "name": "generate_music_cover",
      "description": "Submit a SunoAPI music cover image task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI music cover task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.generate_persona",
      "service": "sunoapi",
      "name": "generate_persona",
      "description": "Submit a SunoAPI persona generation request.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The persona name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The persona description."
          },
          "vocalStart": {
            "type": "number",
            "description": "The audio segment start time in seconds."
          },
          "vocalEnd": {
            "type": "number",
            "description": "The audio segment end time in seconds."
          },
          "style": {
            "type": "string",
            "description": "The persona style label."
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "audioId",
          "name",
          "description"
        ],
        "description": "The input payload for submitting a SunoAPI persona generation task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI object response."
      }
    },
    {
      "id": "sunoapi.generate_sounds",
      "service": "sunoapi",
      "name": "generate_sounds",
      "description": "Submit a SunoAPI sounds generation task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "The sound prompt."
          },
          "model": {
            "type": "string",
            "enum": [
              "V5"
            ],
            "description": "The sound generation model."
          },
          "soundLoop": {
            "type": "boolean",
            "description": "Whether to enable loop playback."
          },
          "soundTempo": {
            "type": "integer",
            "minimum": 0,
            "description": "Sound tempo in BPM."
          },
          "soundKey": {
            "type": "string",
            "description": "Sound musical key."
          },
          "grabLyrics": {
            "type": "boolean",
            "description": "Whether to grab lyrics."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "prompt",
          "model",
          "soundLoop",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI sounds task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.get_lyrics_generation_details",
      "service": "sunoapi",
      "name": "get_lyrics_generation_details",
      "description": "Fetch SunoAPI lyrics generation task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.get_midi_generation_details",
      "service": "sunoapi",
      "name": "get_midi_generation_details",
      "description": "Fetch SunoAPI MIDI generation task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.get_music_cover_details",
      "service": "sunoapi",
      "name": "get_music_cover_details",
      "description": "Fetch SunoAPI music cover task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.get_music_generation_details",
      "service": "sunoapi",
      "name": "get_music_generation_details",
      "description": "Fetch SunoAPI music generation task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.get_music_video_details",
      "service": "sunoapi",
      "name": "get_music_video_details",
      "description": "Fetch SunoAPI music video task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.get_remaining_credits",
      "service": "sunoapi",
      "name": "get_remaining_credits",
      "description": "Get remaining SunoAPI generation credits.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "credits": {
            "type": "integer",
            "description": "Remaining credit count."
          }
        },
        "additionalProperties": false,
        "description": "Remaining SunoAPI credits."
      }
    },
    {
      "id": "sunoapi.get_timestamped_lyrics",
      "service": "sunoapi",
      "name": "get_timestamped_lyrics",
      "description": "Fetch timestamped lyrics for one generated audio item.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for a SunoAPI task and audio item."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI object response."
      }
    },
    {
      "id": "sunoapi.get_vocal_separation_details",
      "service": "sunoapi",
      "name": "get_vocal_separation_details",
      "description": "Fetch SunoAPI vocal separation task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.get_wav_conversion_details",
      "service": "sunoapi",
      "name": "get_wav_conversion_details",
      "description": "Fetch SunoAPI WAV conversion task details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching a SunoAPI task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "SunoAPI task details payload."
      }
    },
    {
      "id": "sunoapi.replace_music_section",
      "service": "sunoapi",
      "name": "replace_music_section",
      "description": "Replace a section of generated SunoAPI music.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "The replacement lyrics."
          },
          "tags": {
            "type": "string",
            "minLength": 1,
            "description": "The music style tags."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The music title."
          },
          "infillStartS": {
            "type": "number",
            "description": "The replacement start time in seconds."
          },
          "infillEndS": {
            "type": "number",
            "description": "The replacement end time in seconds."
          },
          "negativeTags": {
            "type": "string",
            "description": "Music styles or traits to avoid."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "audioId",
          "prompt",
          "tags",
          "title",
          "infillStartS",
          "infillEndS"
        ],
        "description": "The input payload for replacing a SunoAPI music section."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.separate_vocals_from_music",
      "service": "sunoapi",
      "name": "separate_vocals_from_music",
      "description": "Submit a SunoAPI vocal separation task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI audio identifier."
          },
          "type": {
            "type": "string",
            "enum": [
              "separate_vocal",
              "split_stem"
            ],
            "description": "The vocal removal mode.",
            "default": "separate_vocal"
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "taskId",
          "audioId",
          "type",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI vocal removal task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.upload_and_cover_audio",
      "service": "sunoapi",
      "name": "upload_and_cover_audio",
      "description": "Submit an uploaded audio cover generation task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string",
            "description": "The uploaded audio URL.",
            "format": "uri"
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "The prompt, lyrics, or instruction sent to SunoAPI."
          },
          "style": {
            "type": "string",
            "minLength": 1,
            "description": "The music style or genre."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The generated music title."
          },
          "customMode": {
            "type": "boolean",
            "description": "Whether to use SunoAPI custom mode."
          },
          "instrumental": {
            "type": "boolean",
            "description": "Whether the generated audio should be instrumental."
          },
          "personaId": {
            "type": "string",
            "minLength": 1,
            "description": "The optional SunoAPI persona identifier."
          },
          "personaModel": {
            "type": "string",
            "enum": [
              "style_persona",
              "voice_persona"
            ],
            "description": "The SunoAPI persona model.",
            "default": "style_persona"
          },
          "model": {
            "type": "string",
            "enum": [
              "V4",
              "V4_5",
              "V4_5PLUS",
              "V4_5ALL",
              "V5",
              "V5_5"
            ],
            "description": "The SunoAPI music generation model."
          },
          "negativeTags": {
            "type": "string",
            "minLength": 1,
            "description": "Music styles or traits to avoid."
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style guidance weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The input audio influence weight between 0 and 1."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "uploadUrl",
          "customMode",
          "instrumental",
          "model",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI upload and cover task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    },
    {
      "id": "sunoapi.upload_and_extend_audio",
      "service": "sunoapi",
      "name": "upload_and_extend_audio",
      "description": "Submit an uploaded audio extension task.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string",
            "description": "The uploaded audio URL.",
            "format": "uri"
          },
          "defaultParamFlag": {
            "type": "boolean",
            "description": "Whether to use custom parameters."
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "The prompt, lyrics, or instruction sent to SunoAPI."
          },
          "style": {
            "type": "string",
            "minLength": 1,
            "description": "The music style or genre."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The generated music title."
          },
          "customMode": {
            "type": "boolean",
            "description": "Whether to use SunoAPI custom mode."
          },
          "instrumental": {
            "type": "boolean",
            "description": "Whether the generated audio should be instrumental."
          },
          "personaId": {
            "type": "string",
            "minLength": 1,
            "description": "The optional SunoAPI persona identifier."
          },
          "personaModel": {
            "type": "string",
            "enum": [
              "style_persona",
              "voice_persona"
            ],
            "description": "The SunoAPI persona model.",
            "default": "style_persona"
          },
          "model": {
            "type": "string",
            "enum": [
              "V4",
              "V4_5",
              "V4_5PLUS",
              "V4_5ALL",
              "V5",
              "V5_5"
            ],
            "description": "The SunoAPI music generation model."
          },
          "negativeTags": {
            "type": "string",
            "minLength": 1,
            "description": "Music styles or traits to avoid."
          },
          "vocalGender": {
            "type": "string",
            "enum": [
              "m",
              "f"
            ],
            "description": "The desired vocal gender."
          },
          "styleWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The style guidance weight between 0 and 1."
          },
          "weirdnessConstraint": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The creative weirdness constraint between 0 and 1."
          },
          "audioWeight": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The input audio influence weight between 0 and 1."
          },
          "callBackUrl": {
            "type": "string",
            "description": "The callback URL used to receive completed results.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "uploadUrl",
          "defaultParamFlag",
          "customMode",
          "model",
          "callBackUrl"
        ],
        "description": "The input payload for submitting a SunoAPI upload and extend task."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "The SunoAPI task identifier."
          }
        },
        "additionalProperties": false,
        "description": "SunoAPI task submission response."
      }
    }
  ]
}
