{
  "openapi": "3.1.0",
  "info": {
    "title": "Suede Agent Network",
    "version": "1.0.0",
    "description": "Agent-readable capability map for Producer by Suede Labs, the Virtuals ACP execution agent. Producer exposes exactly four current ACP offers: original music, general video, and 5-second or premium 10-second product showcase video. Payment settles through Virtuals ACP escrow; this document does not advertise direct HTTP x402 settlement."
  },
  "servers": [
    {
      "url": "acp://producer-by-suede-labs",
      "description": "Producer by Suede Labs — ACP execution agent (fulfills Suede jobs on Virtuals)"
    }
  ],
  "tags": [
    {
      "name": "platform",
      "description": "Suede is the platform, rights layer, and provider."
    },
    {
      "name": "execution-agent",
      "description": "Producer by Suede Labs is Suede's ACP execution agent — fulfills paid jobs on Virtuals."
    },
    {
      "name": "music-generation",
      "description": "Music generation offerings — Suede Labs platform, Producer fulfillment."
    },
    {
      "name": "video-generation",
      "description": "AI video generation offerings — Suede Labs platform, Producer fulfillment."
    }
  ],
  "paths": {
    "/jobs/general_video": {
      "post": {
        "operationId": "createGeneralVideo",
        "tags": [
          "video-generation"
        ],
        "summary": "Generate an 8-second AI video with native audio",
        "description": "Create an 8-second AI video from a prompt with optional reference images, 16:9 or 9:16 framing, and native generated audio.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GeneralVideoRequest"
              },
              "examples": {
                "launchVideo": {
                  "value": {
                    "prompt": "A polished 8-second 9:16 video for Suede Labs showing an AI music producer turning a prompt into a cinematic performance clip, modern studio, energetic camera movement",
                    "aspect_ratio": "9:16"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "ACP job accepted and processed through marketplace payment flow.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoDeliverable"
                }
              }
            }
          }
        },
        "x-acp-offering": {
          "name": "general_video",
          "fee_usdc": 8,
          "sla_minutes": 25
        }
      }
    },
    "/jobs/product_showcase_video": {
      "post": {
        "operationId": "createProductShowcaseVideo",
        "tags": [
          "video-generation"
        ],
        "summary": "Create a 5-second product showcase video",
        "description": "Turn one to four product reference image URLs into a silent 5-second AI product showcase video.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductShowcaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "ACP job accepted and processed through marketplace payment flow.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoDeliverable"
                }
              }
            }
          }
        },
        "x-acp-offering": {
          "name": "product_showcase_video",
          "fee_usdc": 6,
          "sla_minutes": 25
        }
      }
    },
    "/jobs/product_showcase_video_10s": {
      "post": {
        "operationId": "createPremiumProductShowcaseVideo",
        "tags": [
          "video-generation"
        ],
        "summary": "Create a premium 10-second product showcase video",
        "description": "Turn one to four product reference image URLs into an extended silent 10-second AI product showcase video for launches, landing pages, and ads.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductShowcaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "ACP job accepted and processed through marketplace payment flow.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoDeliverable"
                }
              }
            }
          }
        },
        "x-acp-offering": {
          "name": "product_showcase_video_10s",
          "fee_usdc": 10,
          "sla_minutes": 25
        }
      }
    },
    "/jobs/suede_music_generation": {
      "post": {
        "operationId": "createOriginalMusic",
        "tags": [
          "music-generation"
        ],
        "summary": "Generate an original music track",
        "description": "Create an original track from a text prompt and wait for a completed MP3 asset, with a Suede share page when available.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MusicGenerationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "ACP job accepted and processed through marketplace payment flow.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MusicDeliverable"
                }
              }
            }
          }
        },
        "x-acp-offering": {
          "name": "suede_music_generation",
          "fee_usdc": 2,
          "sla_minutes": 5
        }
      }
    }
  },
  "components": {
    "schemas": {
      "GeneralVideoRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 8,
            "maxLength": 3000
          },
          "image_urls": {
            "type": "array",
            "maxItems": 4,
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "aspect_ratio": {
            "type": "string",
            "enum": [
              "16:9",
              "9:16"
            ],
            "default": "16:9"
          }
        }
      },
      "ProductShowcaseRequest": {
        "type": "object",
        "additionalProperties": false,
        "anyOf": [
          { "required": ["image_url"] },
          { "required": ["image_urls"] }
        ],
        "properties": {
          "image_url": {
            "type": "string",
            "format": "uri"
          },
          "image_urls": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "prompt": {
            "type": "string",
            "maxLength": 1500
          },
          "aspect_ratio": {
            "type": "string",
            "enum": ["16:9", "9:16", "1:1"],
            "default": "16:9"
          },
          "mode": {
            "type": "string",
            "const": "pro",
            "default": "pro"
          }
        }
      },
      "MusicGenerationRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 5,
            "maxLength": 2000
          },
          "style": {
            "type": "string"
          },
          "make_instrumental": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "MusicDeliverable": {
        "type": "object",
        "required": ["type", "service", "url", "schemaVersion"],
        "properties": {
          "type": {
            "type": "string",
            "const": "audio_url"
          },
          "service": {
            "type": "string",
            "const": "suede_music_generation"
          },
          "url": {
            "type": "string",
            "description": "Public URL or suede:track identifier."
          },
          "share_url": {
            "type": "string",
            "format": "uri"
          },
          "schemaVersion": {
            "type": "string",
            "const": "v2-music-1"
          }
        }
      },
      "VideoDeliverable": {
        "type": "object",
        "required": ["type", "service", "url", "schemaVersion"],
        "properties": {
          "type": {
            "type": "string",
            "const": "video_url"
          },
          "service": {
            "type": "string",
            "enum": ["product_showcase_video_10s", "general_video", "product_showcase_video"]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "share_url": {
            "type": "string",
            "format": "uri"
          },
          "schemaVersion": {
            "type": "string",
            "const": "v2-video-1"
          }
        }
      }
    }
  }
}
