{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "/schemas/3.0.18/media-buy/list-creative-formats-request.json",
  "title": "List Creative Formats Request",
  "description": "Request parameters for discovering supported creative formats",
  "type": "object",
  "properties": {
    "adcp_major_version": {
      "type": "integer",
      "description": "The AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.",
      "minimum": 1,
      "maximum": 99
    },
    "format_ids": {
      "type": "array",
      "description": "Return only these specific format IDs (e.g., from get_products response)",
      "items": {
        "$ref": "/schemas/3.0.18/core/format-id.json"
      },
      "minItems": 1
    },
    "asset_types": {
      "type": "array",
      "description": "Filter to formats that include these asset types. For third-party tags, search for 'html' or 'javascript'. E.g., ['image', 'text'] returns formats with images and text, ['javascript'] returns formats accepting JavaScript tags.",
      "items": {
        "$ref": "/schemas/3.0.18/enums/asset-content-type.json"
      },
      "minItems": 1
    },
    "max_width": {
      "type": "integer",
      "description": "Maximum width in pixels (inclusive). Returns formats where ANY render has width <= this value. For multi-render formats, matches if at least one render fits."
    },
    "max_height": {
      "type": "integer",
      "description": "Maximum height in pixels (inclusive). Returns formats where ANY render has height <= this value. For multi-render formats, matches if at least one render fits."
    },
    "min_width": {
      "type": "integer",
      "description": "Minimum width in pixels (inclusive). Returns formats where ANY render has width >= this value."
    },
    "min_height": {
      "type": "integer",
      "description": "Minimum height in pixels (inclusive). Returns formats where ANY render has height >= this value."
    },
    "is_responsive": {
      "type": "boolean",
      "description": "Filter for responsive formats that adapt to container size. When true, returns formats without fixed dimensions."
    },
    "name_search": {
      "type": "string",
      "description": "Search for formats by name (case-insensitive partial match)"
    },
    "wcag_level": {
      "$ref": "/schemas/3.0.18/enums/wcag-level.json",
      "description": "Filter to formats that meet at least this WCAG conformance level (A < AA < AAA)"
    },
    "disclosure_positions": {
      "type": "array",
      "description": "Filter to formats that support all of these disclosure positions. When a format has disclosure_capabilities, match against those positions. Otherwise fall back to supported_disclosure_positions. Use to find formats compatible with a brief's compliance requirements.",
      "items": {
        "$ref": "/schemas/3.0.18/enums/disclosure-position.json"
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "disclosure_persistence": {
      "type": "array",
      "description": "Filter to formats where each requested persistence mode is supported by at least one position in disclosure_capabilities. Different positions may satisfy different modes. Use to find formats compatible with jurisdiction-specific persistence requirements (e.g., continuous for EU AI Act).",
      "items": {
        "$ref": "/schemas/3.0.18/enums/disclosure-persistence.json"
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "output_format_ids": {
      "type": "array",
      "description": "Filter to formats whose output_format_ids includes any of these format IDs. Returns formats that can produce these outputs — inspect each result's input_format_ids to see what inputs they accept.",
      "items": {
        "$ref": "/schemas/3.0.18/core/format-id.json"
      },
      "minItems": 1
    },
    "input_format_ids": {
      "type": "array",
      "description": "Filter to formats whose input_format_ids includes any of these format IDs. Returns formats that accept these creatives as input — inspect each result's output_format_ids to see what they can produce.",
      "items": {
        "$ref": "/schemas/3.0.18/core/format-id.json"
      },
      "minItems": 1
    },
    "pagination": {
      "$ref": "/schemas/3.0.18/core/pagination-request.json"
    },
    "context": {
      "$ref": "/schemas/3.0.18/core/context.json"
    },
    "ext": {
      "$ref": "/schemas/3.0.18/core/ext.json"
    }
  },
  "additionalProperties": true
}
