{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ucp.dev/2026-08-25/schemas/shopping/catalog_search.json",
  "name": "dev.ucp.shopping.catalog.search",
  "title": "Catalog Search",
  "description": "Product catalog search capability.",
  "type": "object",
  "$defs": {
    "search_request": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Free-text search query."
        },
        "context": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/context.json"
        },
        "signals": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/signals.json"
        },
        "attribution": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/shopping/types/attribution.json"
        },
        "filters": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/shopping/types/search_filters.json"
        },
        "pagination": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/pagination.json#/$defs/request"
        }
      }
    },
    "search_response": {
      "type": "object",
      "required": [
        "ucp",
        "products"
      ],
      "properties": {
        "ucp": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/ucp.json#/$defs/response_catalog_schema"
        },
        "products": {
          "type": "array",
          "items": {
            "$ref": "https://ucp.dev/2026-08-25/schemas/shopping/types/product.json"
          },
          "description": "Products matching the search criteria."
        },
        "pagination": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/pagination.json#/$defs/response"
        },
        "actions": {
          "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/actions.json",
          "description": "Outstanding extension-defined Actions for this catalog search response.",
          "ucp_request": "omit"
        },
        "messages": {
          "type": "array",
          "items": {
            "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/message.json"
          },
          "description": "Errors, warnings, or informational messages about the search results."
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "https://ucp.dev/2026-08-25/schemas/common/types/policy.json"
          },
          "description": "Policies (e.g., return/refund terms) that apply to the products in these search results. `applies_to` targets are relative to the response root; when absent or empty, refer to the URLs in `links[]`."
        }
      }
    }
  },
  "version": "2026-08-25"
}