{
  "id": "ucp.profile.hosting",
  "protocol": "ucp",
  "layer": "discovery",
  "role": "merchant",
  "status": "required",
  "title": "Host the UCP profile with HTTPS, no redirects and public caching",
  "description": "The spec sets hosting rules for profiles and the artifacts they reference.",
  "goal": "Platforms cache profiles and treat them as your stable identity. A redirect or a no-store header can stop a platform from processing your requests.",
  "note": "These are MUST rules in the UCP overview, section Profile Requirements, Hosting. ETag or Last-Modified is a SHOULD.",
  "how_to_implement": {
    "steps": [
      "Serve the profile and referenced schemas over HTTPS.",
      "Return the profile directly with 200; no 3xx redirects.",
      "Send Cache-Control: public, max-age=60 or higher; never private, no-store or no-cache.",
      "Add an ETag or Last-Modified validator."
    ]
  },
  "resources": [
    {
      "label": "UCP spec overview (latest): versioning and hosting",
      "url": "https://ucp.dev/latest/specification/overview/",
      "type": "spec",
      "publisher": "UCP"
    }
  ],
  "audit": {
    "method": "http_get",
    "automatable": true,
    "url_pattern": "/.well-known/ucp",
    "expect": {
      "status": 200,
      "no_redirect": true,
      "headers": {
        "cache-control": "public; max-age>=60; not private|no-store|no-cache"
      },
      "headers_any": [
        "etag",
        "last-modified"
      ]
    },
    "human": "GET without following redirects returns 200 (not 3xx); Cache-Control contains public and max-age >= 60 and no private/no-store/no-cache; ETag or Last-Modified present."
  },
  "how_to_verify": "GET without following redirects returns 200 (not 3xx); Cache-Control contains public and max-age >= 60 and no private/no-store/no-cache; ETag or Last-Modified present.",
  "artifacts": [
    "Cache-Control",
    "ETag"
  ],
  "depends_on": [
    "ucp.discovery.well-known"
  ],
  "status_note": "These are MUST rules in the UCP overview, section Profile Requirements, Hosting. ETag or Last-Modified is a SHOULD.",
  "verified": true,
  "slug": "ucp-profile-hosting",
  "category": "discovery",
  "url": "https://vreeman.ai/commerce/checklist#ucp.profile.hosting",
  "updated": "2026-10-12",
  "sources": [
    {
      "label": "UCP spec overview (latest): versioning and hosting",
      "url": "https://ucp.dev/latest/specification/overview/",
      "type": "spec",
      "publisher": "UCP"
    }
  ],
  "related_slugs": [
    "ucp-discovery-well-known"
  ]
}