agentic‑readiness docs
/
Scan at scale Blog Build one › Run a scan ›

DocsCommerceUCP profile

UCP profile

Universal Commerce Protocol discovery for agentic shopping.

adoption Platform defaulttrend ▲ risingchecked once per sitechecks 17verified 2026-10-04
Set up UCP profile on your site The commerce profile agents read to learn what your store supports, and the fields it must carry.
Free Publish a UCP profile

Why an agent cares

The profile is how an agent discovers that a business supports agentic commerce and how to connect to it. A profile that declares no usable capability or no connectable transport is discoverable and useless, which is the shape we look for.

Adoption

Platform default. A major platform ships it by default or in one click, so its footprint is measurable at web scale. For this one in particular, the entire measurable footprint comes from a single platform enabling it by default.

Direction of travel: ▲ rising, as at .

Shopify turned UCP on by default for every store in June 2026, and every live profile we have found is Shopify-hosted. Target, Walmart, Wayfair, Etsy and Nike serve none, so the footprint is one platform's default rather than adoption across retail.

AdopterDepthEvidence
Shopify (all stores)default-onshopify.engineering
Google (AI Mode and Gemini checkout, Merchant Center)productionblog.google
Fenty Beauty, Allbirds, Gymshark, Steve Madden, Death Wish Coffee, Mejuri, Brooklinen, Glossier, Kith, UNTUCKit, Chubbies (11 verified by Lumar probe, 2026-09-15)productionshopify.engineering
Etsy, Walmart, Target, Wayfair (co-developers)announcednrf.com
Salesforce, BigCommerceannouncedbigcommerce.com

What we check

Absence is never a finding. Every check below runs only when this technology is detected, so a site that has not adopted this is not assessed on it and appears in no report. 17 of these 19 can fail it. In Lumar these appear once per site, in the site-wide results of each crawl.
CheckSeverityRaisesOn whose authority
UCP Invalid Documenthighconformance, usabilityspecification: UCP specification overview
UCP Missing Required Registrieshighconformance, usabilityspecification: UCP specification overview
UCP Missing TransportshighusabilityLumar readiness bar, beyond UCP specification overview
UCP Insecure URLhighconformance, usability, security (CWE-319)specification: UCP specification overview
UCP Schema Authority Mismatchhighconformance, usability, security (CWE-345)specification: UCP specification overview
UCP Private Key Exposedhighconformance, usability, security (CWE-522)specification: UCP public key schema, JSON Web Key (JWK)
UCP AP2 Mandate Without Signing Keyhighusability, security (CWE-347)specification: UCP payment mandates extension
UCP OAuth Issuer Mismatchhighconformance, usability, security (CWE-345)specification: OAuth Authorization Server Metadata, UCP identity linking
UCP OAuth Private Key Exposedhighconformance, usability, security (CWE-522)specification: OpenID Connect Discovery, JSON Web Key (JWK)
UCP OAuth Unsigned Signing Algorithmhighconformance, usability, security (CWE-347)specification: OAuth Authorization Server Metadata
UCP Redirected Profilehighconformance, usabilityspecification: UCP specification overview
UCP OAuth Weak RSA Keymediumusability, security (CWE-326)specification: JSON Web Algorithms
UCP Weak RSA Keymediumusability, security (CWE-326)specification: JSON Web Algorithms
UCP Invalid Versionmediumconformance, usabilityspecification: UCP specification overview
UCP Internal Endpointmediumusability, security (CWE-200)Lumar readiness bar, beyond UCP specification overview
UCP Test Keymediumusability, security (CWE-1394)Lumar readiness bar, beyond UCP specification overview, HTTP Message Signatures, CFRG keys in JOSE, JSON Web Key (JWK), JSON Web Signature, JOSE examples
UCP Invalid Cache-Controlmediumconformance, usabilityspecification: UCP specification overview
UCP Missing Capabilitiesinformationalnothingspecification: UCP specification overview
UCP Partially Assessedcoverage notenothingour own coverage

Examples

Both run through the same checks as a live scan: the first passes, the second is flagged.

correctjson
{
  "ucp": {
    "version": "2026-01-01",
    "services": {
      "dev.ucp.shopping": [
        {
          "version": "2026-01-01",
          "spec": "https://ucp.dev/2026-01-01/specification/overview",
          "transport": "rest",
          "schema": "https://ucp.dev/2026-01-01/services/shopping/rest.openapi.json",
          "endpoint": "https://business.example.com/ucp/v1"
        }
      ]
    },
    "capabilities": {
      "dev.ucp.shopping.checkout": [
        {
          "version": "2026-01-01",
          "schema": "https://ucp.dev/2026-01-01/schemas/shopping/checkout.json"
        }
      ],
      "dev.ucp.common.identity_linking": [
        {
          "version": "2026-01-01",
          "schema": "https://ucp.dev/2026-01-01/schemas/common/identity_linking.json"
        }
      ],
      "dev.ucp.common.payment.ap2_mandate": [
        {
          "version": "2026-01-01",
          "schema": "https://ucp.dev/2026-01-01/schemas/common/payment_ap2_mandate.json"
        }
      ]
    },
    "payment_handlers": {}
  },
  "keys": [
    {
      "kid": "store-2026",
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "hhsWfvG6EQ1kRa2CH_90BaGBZ2UIlQ4oJEnVnJBsTkk"
    }
  ]
}
present but wrongjson
{
  "ucp": {
    "version": "v1",
    "services": {
      "dev.ucp.shopping": [
        {
          "version": "2026-08-25",
          "transport": "rest",
          "endpoint": "http://shop.example.com/ucp/v1"
        },
        {
          "version": "2026-08-25",
          "transport": "mcp",
          "endpoint": "http://169.254.169.254/ucp/mcp"
        }
      ]
    },
    "capabilities": {
      "dev.ucp.shopping.checkout": [
        {
          "version": "2026-08-25",
          "schema": "https://ucp.dev@evil.example/schemas/shopping/checkout.json"
        }
      ],
      "dev.ucp.common.payment.ap2_mandate": [
        {
          "version": "latest",
          "schema": "https://ucp.dev/2026-08-25/schemas/common/payment_ap2_mandate.json"
        }
      ]
    }
  },
  "keys": [
    {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs"
    },
    {
      "kty": "EC",
      "crv": "P-256",
      "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
      "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0",
      "d": "not-a-real-private-key"
    }
  ]
}

Specifications

DocumentRevisionKind
RFC 7515 — JSON Web SignaturePublished RFCspecification
RFC 7518 — JSON Web AlgorithmsPublished RFCspecification
UCP specification overviewRelease of 25 August 2026specification
UCP identity linkingRelease of 25 August 2026specification
RFC 8414 — OAuth Authorization Server MetadataPublished RFCspecification
OpenID Connect DiscoveryVersion 1.0specification
UCP payment mandates extensionRelease of 25 August 2026specification
Universal Commerce ProtocolLiving documentguidance
UCP profile schemasRelease of 25 August 2026specification
UCP public key schemaRelease of 25 August 2026specification
RFC 8037 — CFRG keys in JOSEPublished RFCspecification
RFC 7520 — JOSE examplesPublished RFCspecification
RFC 9421 — HTTP Message SignaturesPublished RFCspecification
RFC 7517 — JSON Web Key (JWK)Published RFCspecification

Last re-read against the published documents: .