UCP Checker
UCP Score

UCP Score for ventinots.com

Nearly there

77 out of 100, grade B: nearly there. The missing 23 points are spread across Conformance and Capabilities.

Discovery 100Conformance 79Capabilities 50release 2026-01-11

How the score is made

three areas, weighted
Discovery 30%
Can a UCP agent find and read the profile: HTTPS, an answer at /.well-known/ucp, robots.txt allowing it, and five files outside UCP (llms.txt, sitemap, Open Graph, Organization schema, viewport).
100full marks
Conformance 40%
Does the profile follow the spec: valid against its release (counted three times), a dated release, keys published, few warnings, spec and schema links that resolve.
79−8.4 pts
Capabilities 30%
What an agent can do here: how many capabilities, checkout, at least one service, payment handlers, and services that answer our check.
50−15 pts
A85–100Ready for UCP agents
B70–84Nearly there
C50–69Partly ready
D30–49Hard for UCP agents
F0–29Not ready

Raise the score

fixes that move the number
part of +8
1Flatten payment.handlers to ucp.payment_handlers
Payment handlers are nested under a root "payment" object.
Older Shopify-managed profiles used payment.handlers. Spec v2026-04-08 canonicalized to ucp.payment_handlers.
Conformance · effort low
{
  "ucp": {
    "payment_handlers": {
      "com.example.pay": [...]
    }
  }
}
part of +8
2Name capabilities the way the spec does
A capability is not named in the spec's dotted form (e.g. dev.ucp.shopping.checkout).
Capabilities are named like reversed web addresses so that names never collide: "checkout" is ambiguous; "dev.ucp.shopping.checkout" is not.
Conformance · effort low
"capabilities": {
  "dev.ucp.shopping.checkout": [...]
}
part of +8
3Name payment handlers the way the spec does
A payment handler is not named in the spec's dotted form (e.g. com.google.pay).
Handlers are named like reversed web addresses (com.google.pay, com.stripe.terminal) so every store declaring the same payment method names it the same way, and an agent can recognise it.
Conformance · effort low
"payment_handlers": {
  "com.google.pay": [...]
}
part of +8
4Add version to each payment handler
A payment handler is missing the required "version" field.
Handler versions evolve independently of the profile. Agents pin their token request format to a specific handler version.
Conformance · effort low
"version": "2026-08-25"
part of +8
5Publish the public keys agents use to check your messages
Your UCP profile lists no public keys, so an agent cannot confirm that a message really came from your store.
Agents use these keys to check that checkout messages really came from you. A store that takes payment through the agent needs them. A store that sends the buyer to its own checkout page can manage without them for now.
Conformance · effort medium
{
  "keys": [
    {
      "kty": "EC",
      "crv": "P-256",
      "x": "<base64url x>",
      "y": "<base64url y>",
      "kid": "store-2026-10",
      "use": "sig",
      "alg": "ES256"
    }
  ],
  "ucp": { ... }
}

Create a P-256 (ES256) key pair: ES256 is the one algorithm every UCP agent must be able to check. Add the public key to a "keys" list at the top level of your UCP profile, as in the example, with its own "kid", and keep the private key on your server. The spec recommends a new key every 90 days: publish the new one next to the old, sign with it, and remove the old key a week later.

part of +8
6Link to the handler spec URL
A payment handler is missing its "spec" URL.
Spec URL helps agents understand what flavour of token to request (Apple Pay, Google Pay, network token, etc.).
Conformance · effort low
"spec": "https://ucp.dev/2026-08-25/specification/payment-handler-guide/"
part of +8
7Move to the latest UCP protocol version
Your profile declares a valid but older protocol version. A newer one is published.
Older versions stay valid (agents use the version you declare), but newer abilities (embedded checkout, agent payment mandates, linked customer accounts, card authentication, payment terms and store location lookup) only work against the latest version. The profile itself barely changes: the signing keys move to a root-level "keys" list, and the rest of the update is in what capabilities can say.
Conformance · effort low
"ucp": {
  "version": "2026-08-25",
  ...
},
"keys": [ ... ]   // beside "ucp", not inside it

Set the version to 2026-08-25 and publish your public keys as a root-level "keys" list. The older "signing_keys" field is still accepted, but "keys" is the one every verifier reads.

part of +8
8Publish a schema URL for the service
Service is missing its "schema" URL.
The schema lets agents validate request/response shapes before sending. Highly recommended for any non-trivial endpoint.
Conformance · effort medium
"schema": "https://yourstore.com/.well-known/ucp/schemas/shopping.json"
part of +8
9Publish a schema URL for the capability
Capability is missing its "schema" URL.
The schema URL points to a JSON Schema (or equivalent) that agents validate request/response shapes against. Without it, runtime validation degrades to "best effort."
Conformance · effort medium
"schema": "https://yourstore.com/.well-known/ucp/schemas/checkout.json"
part of +8
10Publish handler request schema
A payment handler is missing its "schema" URL.
Schema URL points to the JSON Schema for token requests. Agents validate request shape before submitting.
Conformance · effort medium
"schema": "https://yourstore.com/.well-known/ucp/schemas/payment.json"

Every check

11 passed · 5 to fix
Agent Discovery · 8 of 8
8 OK
HTTPS, UCP profile reachable, AI bot access, llms.txt, sitemap.xml, Open Graph tags, Organization schema (JSON-LD), Mobile viewport metaShow
  • HTTPS · Profile URL uses https://
  • UCP profile reachable · HTTP 200
  • AI bot access · robots.txt allows /.well-known/ucp
  • llms.txt · Found at /llms.txt
  • sitemap.xml · Found at /sitemap.xml
  • Open Graph tags · og:title and og:type/url present
  • Organization schema (JSON-LD) · Organization-typed JSON-LD detected
  • Mobile viewport meta · <meta name="viewport"> present
UCP Conformance · 2 of 4
2 OK
Profile passes schema validation, Protocol version present and well-formedShow
  • Profile passes schema validation · No structural errors
  • Protocol version present and well-formed · Version: 2026-01-11
To fix
Public keys published
No keys list at the top level of the profile. Fix 5 above.
Conformance
Problem
No validation warnings
8 warnings.
Conformance
Capability Coverage · 1 of 4
1 OK
Transports declaredShow
  • Transports declared · REST
Problem
Capabilities declared
0 of 6 capability families detected. A family counts once however many namespaces or extensions declare it.
Capabilities
Problem
Checkout capability
No checkout capability.
Capabilities
To fix
Payment handlers
1 handler declared, not named the way the spec expects (e.g. com.google.pay), so agents cannot look it up.
Capabilities

Files for agents

outside UCP · not part of the UCP Score

Files ventinots.com publishes for agents beyond its UCP profile, from our weekly look. Only what we found is listed.

Found
A2A agent card /.well-known/agent-card.json
Describes the store's own agent, for agent-to-agent calls.
25 Oct
/.well-known/agent-card.json as served 2.2 KB
{
    "protocolVersion": "1.0",
    "name": "Ventinots - Premium cowhide rugs Shop Commerce Agent",
    "description": "AI commerce agent for Ventinots - Premium cowhide rugs Shop. Search products and browse categories.",
    "url": "https://ventinots.com",
    "version": "1.2.5",
    "defaultInputModes": [
        "text"
    ],
    "defaultOutputModes": [
        "text",
        "data"
    ],
    "capabilities": {
        "streaming": false
    },
    "skills": [
        {
            "id": "product_search",
            "name": "Product Search",
            "description": "Search and discover products in Ventinots - Premium cowhide rugs Shop. Find items by name, category, price range, or attributes.",
            "tags": [
                "commerce",
                "shopping",
                "products",
                "search"
            ],
            "examples": [
                "Show me products under 50 USD",
                "What products do you have in stock?",
                "Find wireless headphones"
            ]
        },
        {
            "id": "product_details",
            "name": "Product Details",
            "description": "Get detailed information about a specific product including price, availability, description, images, and variations.",
            "tags": [
                "commerce",
                "product",
                "details",
                "pricing"
            ],
            "examples": [
                "Tell me more about product #123",
                "Is this item in stock?",
                "What colors are available?"
            ]
        },
        {
            "id": "category_browsing",
            "name": "Category Browsing",
            "description": "Browse product categories available in Ventinots - Premium cowhide rugs Shop.",
            "tags": [
                "commerce",
                "categories",
                "browsing"
            ],
            "examples": [
                "What categories do you have?",
                "Show me electronics"
            ]
        }
    ],
    "provider": {
        "organization": "Ventinots - Premium cowhide rugs Shop",
        "url": "https://ventinots.com"
    }
}
Speed among Woocommerce stores
The profile answered in 885 ms, faster than 30% of the Woocommerce stores we check.