Use YYYY-MM-DD for handler version
A payment handler version is not in YYYY-MM-DD format.
Why it matters
Handler versions follow the same date-based format as everything else in UCP.
Show fix
"version": "2026-08-25"
UCP conformance score, top priorities, impact & effort matrix, and copy-paste fixes for every issue.
Solid UCP setup on 265893c6.centuryrides.pages.dev with a few gaps left to close.
Agent Discovery is solid (90/100).
Use YYYY-MM-DD for handler version → Fix broken spec or schema URLs → Publish Organization schema (JSON-LD) on the homepage
A payment handler version is not in YYYY-MM-DD format.
One or more spec/schema URLs declared in the profile do not resolve.
No Organization-typed JSON-LD detected on your homepage.
Prioritised recommendations by expected impact and implementation effort
High impact, low effort
High impact, high effort
Medium impact & effort
Lower priority
Response time benchmarked against 122 Customs we monitor.
All improvements ranked by priority, with evidence and actionable fixes.
A payment handler version is not in YYYY-MM-DD format.
Handler versions follow the same date-based format as everything else in UCP.
"version": "2026-08-25"
One or more spec/schema URLs declared in the profile do not resolve.
Spec and schema URLs let agents validate request/response shapes before sending. When they 404 or time out, runtime validation degrades to "best effort" and strict agents reject the integration entirely. Common cause: copy-pasting a placeholder URL during initial profile setup. See the Full Check Breakdown for the specific URLs that failed.
No Organization-typed JSON-LD detected on your homepage.
Organization schema gives agents a structured representation of your brand identity: name, logo, social profiles, contact info, founding date. Agents use this to verify you are who you claim to be and to link your profile data to a recognizable entity.
Drop into <head> or end of <body>. Use OnlineStore (more specific) when the entire site is an ecommerce store; Organization is the generic fallback.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "OnlineStore",
"name": "Yourstore",
"url": "https://yourstore.com",
"logo": "https://yourstore.com/logo.png",
"sameAs": [
"https://twitter.com/yourstore",
"https://www.instagram.com/yourstore"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-800-000-0000",
"contactType": "Customer Service"
}
}
</script>
OG tags missing or incomplete on your homepage.
OG tags give agents and link unfurlers (Slack, iMessage, ChatGPT) a clean title, description, and image to represent your store. Without them, shares show garbled fallback text.
Add inside <head>. og:title and og:type are the minimum; og:url, og:description, and og:image are strongly recommended.
<meta property="og:title" content="Yourstore | short tagline">
<meta property="og:type" content="website">
<meta property="og:url" content="https://yourstore.com/">
<meta property="og:description" content="One-sentence description of what you sell.">
<meta property="og:image" content="https://yourstore.com/og-cover.jpg">
<meta property="og:site_name" content="Yourstore">
Every signal we evaluate, grouped by category.
Can AI agents find your store and its UCP profile?
Profile served over a secure connection.
Profile URL uses https://
Agents reject non-HTTPS endpoints outright. Signed payloads over HTTP are meaningless because the channel itself is tamperable.
Profile fetched OK from /.well-known/ucp.
HTTP 200
Agents start every session by fetching this URL. If it 404s or times out, the store is invisible to agent commerce.
robots.txt allows agent crawlers to fetch the profile.
robots.txt allows /.well-known/ucp
Agents respect robots.txt. Even a published profile gets ignored if the file is disallowed for known agent user-agents.
Hand-written brief at /llms.txt for AI agents.
Found at /llms.txt
Emerging convention (analogous to robots.txt). Recommendation/discovery agents read it for brand context, return policy, and crawl preferences.
XML sitemap published at /sitemap.xml.
Found at /sitemap.xml
Tells agents which pages are canonical and how often they change. Without it, agents fall back to following internal links.
OG meta tags on the homepage.
Missing or incomplete on homepage
OG tags drive how your store unfurls in agent surfaces, Slack, iMessage, and ChatGPT shares.
Schema.org Organization (or OnlineStore) JSON-LD on homepage.
Missing or incomplete on homepage
Gives agents a structured representation of your brand identity — used to verify you are who your profile claims you are.
Viewport meta tag for mobile rendering.
<meta name="viewport"> present
Mobile agent sessions render in browser sandboxes that respect this. Without it, screenshots taken by agents are unreadable.
Does your profile meet the published spec?
Profile structure conforms to the published UCP spec.
No structural errors
Strict UCP agents reject profiles with structural errors. The error code in the diagnostic shows which field failed.
ucp.version follows YYYY-MM-DD format.
Version: 2026-08-25
UCP versions are dates, not semver. Agents pick the closest matching schema based on this string.
Root-level keys array (canonical since 2026-07-12; legacy signing_keys also accepted) for response verification.
signing_keys present
Required for tokenized payment flows in v2026-04-08+. Stores using checkout-link redirects (e.g. WooCommerce native) often skip this safely.
Profile passes structural and field-level rules.
1 warning
Each warning is a strict-spec deviation — the recommendations section above lists them with copy-code fixes.
Resolves the 6 spec/schema URLs declared across the profile to confirm agents can fetch each one.
Did not resolve (5 of 6): https://ucp.dev/specification/shopping/, https://ucp.dev/specification/shopping/catalog_search/, https://ucp.dev/schemas/shopping/catalog_search.json, https://ucp.dev/specification/payment/redirect/, https://ucp.dev/schemas/payment/redirect.json · Resolved with an unexpected content-type: https://centuryrides.org/.well-known/openapi.yaml
Spec and schema URLs let agents validate request/response shapes before sending. Broken URLs degrade runtime validation to "best effort" and cause strict agents to refuse the capability entirely.
What operations can agents actually perform?
Number of agent-readable capabilities under ucp.capabilities.
1 of 6 capability families detected: Catalog. A family counts once however many namespaces or extensions declare it.
Capabilities tell agents what operations to attempt. More coverage = more sessions complete end-to-end without falling back to scraping.
Store declares a checkout-namespaced capability.
No checkout capability
Without a checkout capability, agents can browse but can't complete a purchase end-to-end.
Service transports (REST/MCP/A2A/Embedded) declared on services.
REST
Transports tell agents how to actually call your endpoints. MCP and REST are the most widely supported today.
Tokenized payment handlers registered for in-conversation checkout.
2 handlers registered
Tokenized payment lets agents complete purchases without redirecting the buyer to a hosted checkout. Empty by design is valid for WooCommerce-style native checkouts.
Live reachability check against https://centuryrides.org/api.
Host responded with HTTP 404 — endpoint reachable but path may be method-restricted
A declared transport that does not respond means agents will hit a dead end the moment they try to use the capability — even if the profile itself looks perfect.
The plain-text brief this store publishes to AI agents. Captured on the most recent check.
# CenturyRides.org
> The authoritative open directory of 100-mile / 100-kilometer (century/metric century) cycling events, alpine challenges, and gravel endurance rides across North America (United States, Canada, and Mexico).
## Overview
CenturyRides.org provides programmatic and human access to organized century rides across North America. Each entry contains verified geographical location, sub-region, calendar month, official destination URL, terrain tags, and route elevation details.
## Machine Readable Interfaces
- Schema.org SportsEvent Specification: `/schema/century_rides_schema.json`
- Universal Commerce Protocol (UCP): `/.well-known/ucp`
- OpenAPI 3.1 Specification: `/.well-known/openapi.yaml`
- Extended Agent Specification: `/.well-known/agent.json`, `/llms-full.txt`
- Query & Search API: `/api/rides` (GET - supports `?format=schema` or `?format=jsonld` for Schema.org SportsEvent array, x402 Micropayment enabled)
- Free Preview Discovery Tier: `/api/rides/summary` (GET)
- Submission Ingestion: `/api/rides` (POST)
- Model Context Protocol (MCP) Server: Available in the `/mcp-server` repository directory for local agent installation (Stdio).
## Programmatic SEO Directory
- Programmatic Hub Directory: `/century-rides/` (Complete North American index)
- 50 US State Guides: `/century-rides/<state-slug>/` (e.g. `/century-rides/california/`, `/century-rides/indiana/`, `/century-rides/colorado/`)
- 12 Month Seasonal Calendars: `/century-rides/<month-slug>/` (e.g. `/century-rides/september/`, `/century-rides/june/`)
## Key Resources
- Demo Mode (Clean UI): `/demo.html`
- 12-Week Century Training Guide: `/guide.html` (Comprehensive endurance, pacing, and fueling protocol for a 100-mile ride)
- Brand Assets & Logos: `/brand.html`
- Frequently Asked Questions: `/faq.html` (Differences between metric/imperial, training, pacing, and fueling guidelines)
## Key Entities
- **Century Ride (100 Miles)**: Single-day or multi-day bicycle event with a sanctioned 100-mile route.
- **Regions**: Indexed sub-state zones (e.g., Blue Ridge, Driftless Area, Suwannee River, Flint Hills).
- **Surface Disciplines**: Road, Alpine / Mountain Pass, Gravel / Mixed-Surface, Rail-Trail, Urban.
| Catalog Search ✓ Bound | 2026-08-25 |
| UCP Status | Verified |
| Endpoint | https://265893c6.centuryrides.pages.dev/.well-known/ucp |
| HTTP Status | 200 |
| UCP Version | 2026-08-25 |
| Transports | REST |
| Last Observed | |
| Last Full Index |
Drop the live grade into your README, status page, or marketing site. The badge auto-updates as your score changes.
[](https://ucpchecker.com/score/265893c6.centuryrides.pages.dev)<a href="https://ucpchecker.com/score/265893c6.centuryrides.pages.dev"><img src="https://ucpchecker.com/score/265893c6.centuryrides.pages.dev/badge.svg" alt="UCP Score for 265893c6.centuryrides.pages.dev"></a>This score reflects data from the most recent crawl. Run a fresh check to update, or read the methodology to see how each signal is scored.
Track 265893c6.centuryrides.pages.dev's UCP score over time. We'll re-run the full check weekly and email you if the score drops, a capability regresses, or status flips.
Free. One email when something changes — no marketing. Privacy.