agentic‑readiness docs
/
Build one › Run a scan ›

DocsCommerceUCP profile

UCP profile

Universal Commerce Protocol discovery for agentic shopping.

adoption Platform defaulttrend ▲ risingchecked once per sitechecks 4verified 2026-08-12
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 (Jun 17, 2026). A Lumar probe of 12 hosts on 2026-08-22 found four live profiles, all Shopify-hosted; Target, Walmart, Wayfair, Etsy and Nike serve no profile at all.

AdopterDepthEvidence
Shopify (all stores)default-onshopify.engineering
Google (AI Mode and Gemini checkout, Merchant Center)productionblog.google
Fenty Beauty, Steve Madden, Allbirds, Gymshark (verified by probe)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 once ucpPresent is true, so a site that has not adopted this is not assessed on it and appears in no report. 4 of these 5 can fail it. In a Lumar crawl these land on one row per site, in the crawl-level table where itemType is ucp.
CheckSeverityRaisesOn whose authority
ucpInvalidDocumenthighconformance, usabilityspecification (Universal Commerce Protocol (ucp.dev) v2026-04-08, specification overview §Profile Structure)
ucpMissingRequiredRegistrieshighconformance, usabilityspecification (Universal Commerce Protocol (ucp.dev) v2026-04-08, ucp.json $defs.business_schema)
ucpMissingTransportshighusabilityLumar readiness profile
ucpInvalidVersionmediumconformance, usabilityspecification (Universal Commerce Protocol (ucp.dev) v2026-04-08, ucp.json $defs.version + $defs.base)
ucpMissingCapabilitiesinformationalnothingspecification (Universal Commerce Protocol (ucp.dev) v2026-04-08, ucp.json $defs.business_schema)

Examples

Both of these are fixtures the test suite runs through the real collector, not snippets written for a document: the first is a shape we score as valid, the second is one we flag.

correctjsontest/e2e/test-pages/commerce/correct.ucp.json
{
  "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" }
      ]
    },
    "payment_handlers": {}
  }
}
present but wrongjsontest/e2e/test-pages/commerce/issues.ucp.json
{
  "ucp": {
    "version": "v1",
    "services": {},
    "capabilities": {}
  }
}

Specifications

Last re-read against the published documents: .

On pinning it. Two traps at this tag. profile.json is a later addition on main and does not exist at the tag, so cite ucp.json; and the key set is signing_keys here, renamed to keys on main afterwards.