{
  "service": "stabilityai",
  "displayName": "Stability AI",
  "categories": [
    "AI",
    "Design & Media"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "sk-...",
      "description": "Stability AI API key used with the Authorization Bearer header. Create or copy it from https://platform.stability.ai/account/keys.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://stability.ai",
  "actions": [
    {
      "id": "stabilityai.text_to_audio",
      "service": "stabilityai",
      "name": "text_to_audio",
      "description": "Generate audio from a text prompt with Stability AI and store the generated file locally.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10000,
            "description": "The text description used to generate audio."
          },
          "duration": {
            "type": "number",
            "minimum": 1,
            "maximum": 190,
            "description": "The requested duration of the generated audio in seconds."
          },
          "seed": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967294,
            "description": "The randomness seed used for generation. Use 0 or omit it for a random seed."
          },
          "steps": {
            "type": "integer",
            "description": "The number of sampling steps requested from Stability AI. Use 30-100 for stable-audio-2 and 4-8 for stable-audio-2.5."
          },
          "cfgScale": {
            "type": "number",
            "minimum": 1,
            "maximum": 25,
            "description": "How strongly the generation should follow the prompt text."
          },
          "model": {
            "type": "string",
            "enum": [
              "stable-audio-2",
              "stable-audio-2.5"
            ],
            "description": "The Stable Audio model to use for generation."
          },
          "outputFormat": {
            "type": "string",
            "enum": [
              "mp3",
              "wav"
            ],
            "description": "The output audio format returned by Stability AI."
          }
        },
        "additionalProperties": false,
        "required": [
          "prompt"
        ],
        "description": "The text-to-audio generation request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "file": {
            "type": "object",
            "properties": {
              "fileId": {
                "type": "string",
                "description": "The local transit file identifier."
              },
              "downloadUrl": {
                "type": "string",
                "description": "The local URL for downloading the generated file.",
                "format": "uri"
              },
              "sizeBytes": {
                "type": "integer",
                "description": "The generated file size in bytes."
              },
              "name": {
                "type": "string",
                "description": "The generated file name."
              },
              "mimeType": {
                "type": "string",
                "description": "The generated file MIME type."
              }
            },
            "additionalProperties": false,
            "required": [
              "fileId",
              "downloadUrl",
              "sizeBytes",
              "name",
              "mimeType"
            ],
            "description": "A generated audio file stored in local transit storage."
          },
          "model": {
            "type": "string",
            "enum": [
              "stable-audio-2",
              "stable-audio-2.5"
            ],
            "description": "The Stable Audio model to use for generation."
          },
          "outputFormat": {
            "type": "string",
            "enum": [
              "mp3",
              "wav"
            ],
            "description": "The output audio format returned by Stability AI."
          },
          "contentType": {
            "type": "string",
            "description": "The MIME type returned by Stability AI."
          },
          "seed": {
            "type": "integer",
            "description": "The seed returned by Stability AI for this generation."
          },
          "finishReason": {
            "type": "string",
            "description": "The completion reason returned by Stability AI."
          }
        },
        "additionalProperties": false,
        "required": [
          "file",
          "model",
          "outputFormat",
          "contentType"
        ],
        "description": "The generated Stability AI audio response."
      }
    }
  ]
}
