{"kind":"crawlcheck-canonical","v":1,"as_of":"2026-11-10T00:21:35.169Z","source":"https://crawlcheck.io/spec/canonical.json","definition":"CrawlCheck is the verification layer for the agentic web. It measures what a site actually serves — tested with named crawler request profiles, including desktop and smartphone Googlebot, alongside its machine files, crawl policy, declared rights and capabilities — decides findings by published rules, and signs the answer so an agent can verify it offline before it reads, cites, connects or acts. Site owners get the same measurement as a free A–F audit with every defect named.","definition_sha256":"53fddce5365f427cacf10b4ecb6da0281cacb0bed478725a520fc8d5a497f7d8","definition_also_at":["https://crawlcheck.io/","https://crawlcheck.io/llms.txt","https://crawlcheck.io/press","https://crawlcheck.io/.well-known/media-kit.json"],"one_line":"CrawlCheck is the verification layer for the agentic web: it measures what a site serves to named crawlers, decides findings by published rules, and signs the answer so an agent can verify it offline before it acts.","counts":{"crawler_identities_named":{"value":16,"unit":"named crawler request profiles in the full scan; multiple profiles can use the same crawler token","source":"https://crawlcheck.io/ai-crawlers"},"crawler_tokens_sent":{"value":15,"unit":"distinct crawler tokens represented by those request profiles","source":"https://crawlcheck.io/ai-crawlers.json"},"scanner_control_profiles":{"value":3,"unit":"comparison profiles in the full scan","source":"https://crawlcheck.io/ai-crawlers.json"},"request_profiles_sent":{"value":19,"unit":"initial identity comparison request profiles in the full scan, controls included","source":"https://crawlcheck.io/how-it-works"},"agents_in_catalogue":{"value":115,"unit":"crawlers and agents the catalogue describes (the list /ai-crawlers shows and robots.txt is resolved against)","source":"https://crawlcheck.io/ai-crawlers"},"rules_published":{"value":111,"unit":"finding rules in the rulebook (capability and MCP rules included)","source":"https://crawlcheck.io/rules"},"findings_published":{"value":93,"unit":"scan findings with a public explainer page","source":"https://crawlcheck.io/findings"},"sections":{"value":48,"unit":"report sections","source":"https://crawlcheck.io/how-it-works"},"sections_scored":{"value":26,"unit":"of those, sections that move the grade","source":"https://crawlcheck.io/how-it-works"},"sealed_days":{"value":88,"unit":"days whose measurement root is sealed (Bitcoin anchoring confirms within hours of each)","source":"https://crawlcheck.io/proof"},"observers_active":{"value":5,"unit":"non-primary observers reporting inside their freshness window (enrolled ones that are quarantined, stale, revoked or have never sent a reading are not counted)","ids":["gha-azure-1","aws-us-east-2","tor-exit","ind:vsnary-cloudways-1","gha:emmanuelorta/crawlcheck-core"],"source":"https://crawlcheck.io/.well-known/crawlcheck-observers.json"},"mcp_tools":{"value":28,"unit":"public tools on the MCP server (tools/list and the server card; owner-only tools are not counted)","source":"https://crawlcheck.io/.well-known/mcp/server-card.json"},"score_version":{"value":34,"unit":"grading contract version","source":"https://crawlcheck.io/policy"},"sites_measured":{"value":503711,"unit":"distinct domains measured","source":"https://crawlcheck.io/api/public/counts"}},"prices":{"currency":"USD","source":"https://crawlcheck.io/pricing","plans":{"fix":{"once":100,"what":"the fix list implemented on one site, with 30 days of monitoring"},"watch":{"month":29,"year":290,"domains":3},"agency":{"month":249,"year":2490,"domains":40},"developer":{"month":99,"scans_per_month":2000},"growth":{"month":499,"scans_per_month":20000},"network":{"quoted":true,"quote_above_domains":40,"domains_from":150}},"add_ons":{"evidence":{"month":49,"year":490},"intelligence":{"month":49,"year":490},"data":{"month":199,"year":1990}},"not_sold":{"studio":"folded into Agency; existing orders keep working"},"free":"Resolve, preflight, receipts, the SDKs and every scan"},"reading":"Every number above is read, at the moment of this request, from the same registry the page it names reads. Quote a number with as_of. Named-identity and rule counts change only by a versioned change (history below and /changelog); sites_measured and sealed_days grow every day.","history":[{"at":"2026-11-09T21:08:09.063Z","changed":["observers_active"],"counts":{"crawler_identities_named":16,"crawler_tokens_sent":15,"scanner_control_profiles":3,"request_profiles_sent":19,"agents_in_catalogue":115,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":5,"mcp_tools":28,"score_version":34}},{"at":"2026-11-09T17:56:06.847Z","changed":["observers_active"],"counts":{"crawler_identities_named":16,"crawler_tokens_sent":15,"scanner_control_profiles":3,"request_profiles_sent":19,"agents_in_catalogue":115,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":2,"mcp_tools":28,"score_version":34}},{"at":"2026-11-09T15:41:17.180Z","changed":["crawler_tokens_sent","scanner_control_profiles"],"counts":{"crawler_identities_named":16,"crawler_tokens_sent":15,"scanner_control_profiles":3,"request_profiles_sent":19,"agents_in_catalogue":115,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":5,"mcp_tools":28,"score_version":34}},{"at":"2026-11-09T14:16:33.934Z","changed":["agents_in_catalogue"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":115,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":5,"mcp_tools":28,"score_version":34}},{"at":"2026-11-07T21:42:38.035Z","changed":["mcp_tools"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":114,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":5,"mcp_tools":28,"score_version":34}},{"at":"2026-11-07T16:42:04.650Z","changed":["observers_active"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":114,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":5,"mcp_tools":27,"score_version":34}},{"at":"2026-11-07T16:40:28.409Z","changed":["agents_in_catalogue","observers_active"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":114,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":4,"mcp_tools":27,"score_version":34}},{"at":"2026-11-07T03:05:52.790Z","changed":["mcp_tools"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":25,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":10,"mcp_tools":27,"score_version":34}},{"at":"2026-11-07T02:34:25.982Z","changed":["mcp_tools"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":25,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":10,"mcp_tools":26,"score_version":34}},{"at":"2026-11-07T02:02:12.094Z","changed":["observers_active"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":25,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":10,"mcp_tools":33,"score_version":34}},{"at":"2026-11-07T02:00:01.200Z","changed":["crawler_identities_named","request_profiles_sent","agents_in_catalogue","rules_published","findings_published","sections","sections_scored","observers_active","mcp_tools","score_version"],"counts":{"crawler_identities_named":16,"request_profiles_sent":19,"agents_in_catalogue":25,"rules_published":111,"findings_published":93,"sections":48,"sections_scored":26,"observers_active":12,"mcp_tools":33,"score_version":34}}],"usage_terms":{"url":"https://crawlcheck.io/.well-known/aps.txt","format":"Agent Passport System aps.txt (Ed25519 over sorted-key canonical JSON)","sha256":"9d3a57284d83aea7b2cad2b0c3925300ca05853b49dccb361c2554e595371b07","publisher_did":"did:aps:z6Mkut4J8ks5YbwfeNm7b4tjb1rPv2TuU9Asbh143dSVUbCw","kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","issued":"2026-11-07T00:00:00Z","terms":{"inference":"permitted","training":"permitted","redistribution":"attribution_required","caching":"permitted"},"seal":{"day":"2026-11-07","leaf_id":"usage-terms","sealed":true,"leaf_index":9901,"root":"a4b420d1fe0efe3196bd1a8e3e84ec0530ae6ed441e9f3980c1944edbd640138","state":"in the sealed Merkle root for 2026-11-07, timestamped with OpenTimestamps","lookup":"https://crawlcheck.io/api/seal/lookup?id=usage-terms&day=2026-11-07","proof":"https://crawlcheck.io/proof/2026-11-07"},"check_any_site":"https://crawlcheck.io/api/tool/terms?domain="},"changelog":"https://crawlcheck.io/changelog","rules":"https://crawlcheck.io/rules","verify_offline":"https://crawlcheck.io/verify","keys":"https://crawlcheck.io/.well-known/http-message-signatures-directory"}