{"kind":"crawlcheck-metrics","v":1,"generated_at":"2026-10-13T08:48:54.637Z","window_days":7,"days":["2026-10-07","2026-10-08","2026-10-09","2026-10-10","2026-10-11","2026-10-12","2026-10-13"],"network":{"sites_measured":{"value":266552,"unit":"distinct domains","source":"https://crawlcheck.io/api/public/counts"},"crawler_visits":{"value":148711,"unit":"verified and unverified crawler requests to crawlcheck.io, last 90 days","source":"https://crawlcheck.io/api/public/counts"},"scans_run":{"value":3530,"unit":"scans","source":"https://crawlcheck.io/api/public/counts"},"mcp_servers_listed":{"value":40688,"unit":"servers in the official MCP Registry (25,686 with a remote endpoint)","source":"https://crawlcheck.io/api/mcp/index"},"mcp_endpoints_observed":{"value":11629,"unit":"remote endpoints sent the MCP handshake this cycle (5,712 completed it)","source":"https://crawlcheck.io/api/mcp/index"},"customer_observers":{"value":0,"unit":"observers run by customers on their own sites","source":"https://crawlcheck.io/api/v1/observers/mesh"}},"developer":{"api_calls_outside":{"value":26761,"unit":"calls to agent endpoints by anyone but CrawlCheck's own tooling, in the window","source":"https://crawlcheck.io/api/v1/metrics","note":"counted from 2026-10-09; earlier days read 0"},"resolve_calls":{"value":7266,"unit":"Resolve lookups (HTTP, DNS-over-HTTPS, private prefix, staple)"},"preflight_calls":{"value":1061,"unit":"preflight decisions requested"},"receipt_checks":{"value":61,"unit":"receipt lookups"},"mcp_calls":{"value":1841,"unit":"MCP requests (POST /mcp)"},"by_client":{"value":{"other":16871,"browser":341,"ai_agent":4109,"script":652,"node":4256,"python_sdk":532},"unit":"outside calls by kind of client, read from the user agent and not verified (python_sdk sends its own; the TypeScript SDK sends none and counts as node or browser; ai_agent = a named AI crawler or agent user agent; other = no or an unrecognised user agent)"},"active_keys":{"value":1,"unit":"licence keys that used metered calls this month","note":"includes test and sandbox licences"},"sdk_downloads_npm_last_week":{"value":2050,"unit":"downloads of @crawlcheck/sdk","source":"https://api.npmjs.org/downloads/point/last-week/@crawlcheck/sdk","note":"registry downloads include mirrors and CI; they are not users"},"sdk_downloads_pypi_last_week":{"value":1576,"unit":"downloads of crawlcheck","source":"https://pypistats.org/api/packages/crawlcheck/recent","note":"registry downloads include mirrors and CI; they are not users"},"per_day":[{"day":"2026-10-07","outside":{},"ours":{},"errors_4xx":0,"errors_5xx":0},{"day":"2026-10-08","outside":{},"ours":{},"errors_4xx":0,"errors_5xx":0},{"day":"2026-10-09","outside":{"resolve":1330,"v1":1188,"visitor":578,"mcp":2,"preflight":75,"receipt":4,"changes":1},"ours":{},"errors_4xx":397,"errors_5xx":1},{"day":"2026-10-10","outside":{"v1":6039,"visitor":853,"resolve":1934,"preflight":262,"receipt":41,"changes":58,"mcp":161},"ours":{"preflight":17,"receipt":1,"resolve":1},"errors_4xx":1438,"errors_5xx":2},{"day":"2026-10-11","outside":{"resolve":2640,"v1":4409,"changes":329,"mcp":701,"visitor":519,"preflight":716,"receipt":14},"ours":{},"errors_4xx":4125,"errors_5xx":15},{"day":"2026-10-12","outside":{"visitor":446,"mcp":693,"resolve":977,"v1":1410,"changes":27,"receipt":1,"preflight":7},"ours":{},"errors_4xx":481,"errors_5xx":0},{"day":"2026-10-13","outside":{"resolve":385,"mcp":284,"visitor":198,"v1":474,"changes":3,"preflight":1,"receipt":1},"ours":{},"errors_4xx":122,"errors_5xx":0}]},"trust":{"false_positive_rate_on_appeal":{"value":0,"unit":"share of resolved disputes where the finding was withdrawn","source":"https://crawlcheck.io/api/v1/disputes/metrics","note":"measured only where someone appealed; findings nobody disputed are not checked by this number"},"disputes_resolved_90d":{"value":1,"unit":"disputes resolved in 90 days (1 filed, 0 open); median turnaround 0.02 h","source":"https://crawlcheck.io/api/v1/disputes/metrics"},"reconstruction":{"value":{"at":"2026-10-12T19:08:32.057Z","rebuilt":20,"identical":20,"mismatched":0,"decisions_compared":32},"unit":"reports and decisions rebuilt from the permanent archive alone, and how many differed","source":"https://crawlcheck.io/trust"},"trace_coverage":{"value":100,"unit":"% of findings linked to the rule span that decided them, last scans","source":"https://crawlcheck.io/api/trace/coverage"},"slos":{"value":[{"id":"resolve_availability","target":0.999,"measured":0.9998800959232614,"status":"met"},{"id":"resolve_latency","target":0.95,"measured":0.9580335731414868,"status":"at_risk"},{"id":"preflight_availability","target":0.999,"measured":1,"status":"met"},{"id":"preflight_latency","target":0.95,"measured":0.814748201438849,"status":"missed"},{"id":"jit_latency","target":0.95,"measured":0.8416666666666667,"status":"missed"}],"unit":"service objectives, last 30 days","source":"https://crawlcheck.io/api/slo"}},"north_star":{"metric":"verified agent actions backed by a fresh signed Resolve record, by action type","decisions_issued":{"value":600,"unit":"signed preflight decisions in the window","source":"https://crawlcheck.io/api/v1/decisions"},"decisions_to_verified_agents_30d":{"value":0,"unit":"decisions issued to a named AI agent calling from its operator's published ranges, 30 days","source":"https://crawlcheck.io/api/v1/adoption"},"receipts_checked_by_outside_sites_30d":{"value":13,"unit":"receipts checked by a site CrawlCheck does not run, 30 days","source":"https://crawlcheck.io/api/v1/adoption"},"goal_reached":{"value":false,"unit":"one verified-agent decision and one outside receipt check","source":"https://crawlcheck.io/api/v1/adoption"},"per_day":[{"day":"2026-10-13","decisions_issued":0,"receipts_checked_by_sites":0,"by_action":{},"by_decision":{}},{"day":"2026-10-12","decisions_issued":1,"receipts_checked_by_sites":0,"by_action":{"transact":1},"by_decision":{"block":1}},{"day":"2026-10-11","decisions_issued":50,"receipts_checked_by_sites":4,"by_action":{"read":48,"transact":2},"by_decision":{"warn":47,"require_confirmation":1,"block":2}},{"day":"2026-10-10","decisions_issued":245,"receipts_checked_by_sites":25,"by_action":{"transact":12,"read":227,"cite":5,"connect":1},"by_decision":{"block":9,"warn":207,"allow":15,"require_confirmation":14}},{"day":"2026-10-09","decisions_issued":116,"receipts_checked_by_sites":1,"by_action":{"read":114,"transact":2},"by_decision":{"warn":114,"block":1,"require_confirmation":1}},{"day":"2026-10-08","decisions_issued":29,"receipts_checked_by_sites":0,"by_action":{"transact":2,"read":26,"cite":1},"by_decision":{"block":2,"warn":26,"require_confirmation":1}},{"day":"2026-10-07","decisions_issued":159,"receipts_checked_by_sites":53,"by_action":{"read":112,"transact":22,"cite":4,"connect":21},"by_decision":{"warn":103,"require_confirmation":33,"block":11,"allow":3,"unsupported":9}}]},"reading":"Counts only: no caller address, key or site is stored with these numbers. Outside means not CrawlCheck's own tooling; it still includes people testing by hand. Weekly editions: /api/v1/metrics?week=YYYY-Www.","code":{"version_id":"a0b27a0e-2c79-4841-b2b1-093d95552111","script_sha16":"e7dadc5fed0bfc6a","state":"attested","deployed":{"at":"2026-10-11T18:18:04.747Z","commit":"09ee2035eaf1","run":"38163186367"},"build_log_entry":227,"score_version":31,"scoring_policy_sha256":"86898d2a8c88d6b56e6710f3aadf4375cbb5342d4a2f9aa017b536d95602d671","decision_rules_sha256":"18dd5636e0896692ab518050cb401744edea2e6f1086dff94fead314959bdc3e","check":"https://crawlcheck.io/api/v1/builds/a0b27a0e-2c79-4841-b2b1-093d95552111"},"sha256":"b9c7012c18e4a44e54f9a6c2ef26dbfa1674550c74077e788d3000dc4047e534","signature":{"v":1,"alg":"Ed25519","kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","over":"sha256","message":"crawlcheck-data-v1\nb9c7012c18e4a44e54f9a6c2ef26dbfa1674550c74077e788d3000dc4047e534","sig":"nNvcPh68SIFcMSUs-UTVtIKT-wZCyXuqFLXNYIwDDla5-hsliVusdLLFg5frUjrT0vKTyagjsa1wVDcZXJARBQ","signed_at":"2026-10-13T08:48:54.637Z","key":{"kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","jwk":{"kty":"OKP","crv":"Ed25519","x":"5TmKCOx0TTHepq7HwyXBHvGQpVCSBd2lV8cLzYVqFxQ"},"published_in":"https://crawlcheck.io/.well-known/http-message-signatures-directory"},"canonical":"sha256 over canonical JSON of every field except sha256 and signature"}}