{"name": "Declared-vs-Enforced Agent Access Verification", "provider": "TextForAgents LLC", "version": "1.0.0", "what_it_does": "Probes the enforcement layer as YOUR agent identity: a pre-flight probe compares the parsed declaration (robots.txt groups, Content-Signals, llms.txt) against what the target actually does to your declared-agent, user-agent fetcher, unsigned, and signed (Web Bot Auth) identity classes, and returns a five-way verdict \u2014 SERVED / BLOCKED-DECLARED / BLOCKED-SILENT / SERVED-DESPITE-BAN / PRICED \u2014 with request-path evidence (status, challenge type, 402 price if offered) and a graded layer hint that is never dressed up as attestation. A drift watch re-probes enrolled targets and alerts the moment either side moves.", "prices": {"probe": "$0.01/probe (x402) \u2014 one probe of one target path across the identity classes", "drift_weekly": "$9/mo per 100 enrolled targets \u2014 weekly re-probe + two-sided drift alerts", "drift_daily": "$19/mo per 100 enrolled targets \u2014 daily re-probe + two-sided drift alerts", "trial": "first 100 pre-flight probes free, one time per operator account"}, "pay_to": "0xAc2E243a075fEe442e4c6864DcF880eb4e3A3862", "how_to_start": "POST /register {\"operator\": \"your-name\"} -> token (shown once); POST /probe {\"base_url\": ..., \"path\": ..., \"agent_token\": \"YourBot\"} spends the one-time 100-probe grant, then $0.01/probe x402; POST /subscribe {\"plan\": \"weekly\"|\"daily\"} starts drift watch ($9/$19 per 100 targets); POST /targets enrolls targets.", "endpoints": {"register": "POST /register", "probe": "POST /probe", "subscribe": "POST /subscribe", "targets": "POST /targets, GET /targets", "watch_run": "POST /watch/run", "drift": "GET /drift", "history": "GET /history", "account": "GET /account", "revoke": "POST /tokens/revoke", "mcp": "POST /mcp", "web_bot_auth_key": "GET /web-bot-auth-key", "fixtures": "GET /fixture/<open|paper-ban|silent-block|declared-block|priced|redirect-loop|flip>/...", "openapi": "GET /openapi.json", "llms": "GET /llms.txt", "x402_discovery": "GET /.well-known/x402", "health": "GET /health"}, "limits": ["\"Corroborated\" is a same-host consistency grade, not independent attestation; the verdict never rests on the layer hint (status class only).", "A 429 classifies as blocked from a single probe; rate-limit vs identity-block is indistinguishable from one probe \u2014 drift/repeat probing is the disambiguation path.", "Census claims are limited to this product's own measured identity results; no third-party census rates are claimed for your population.", "Signed results state their registration status: the product key is published at /web-bot-auth-key but is not registered in a public key directory (signed_registered: false) and is never presented as verified.", "Named third-party crawler identities are never spoofed \u2014 probes run as your own declared agent identity.", "Probing is rate-limited per target (politeness floor 1.0s per host, sequential) and confined to public targets; transport failures return ERROR evidence, never a crash."], "support": "support@textforagents.com"}