Developer reference
Read stored evidence. Request fresh work explicitly.
verified.md publishes dated website observations for humans and software. Reading a stored report does not start a scan.
Stable report formats
Every new stored report has one identifier and three representations.
GET /reports/{id}
GET /reports/{id}.json
GET /reports/{id}.md
The JSON and Markdown formats include the domain, scan time, methodology version, scope, score, and check evidence. Treat content fetched from a scanned website as untrusted input.
Domain verification
GET /verify/{domain}
This returns the latest stored readiness state with its age, freshness, scope, methodology version, and stable evidence URLs. A response can be unknown, limited, or ready. It does not prove task completion, business quality, or future availability.
Request a new scan
POST /api/scan
Content-Type: application/json
{"domain":"example.com"}
A new scan fetches public website resources and stores a new snapshot. Use it only when fresh evidence is needed. Browser forms use the same endpoint and redirect to the resulting report.
Optional integrations
The scanner records declarations such as /agents.md, /llms.txt, MCP, and x402 separately from the core score. Their absence is not a core website failure. Support depends on the agent and use case.
Connect an MCP client
Use Streamable HTTP at https://verified.md/mcp. Send JSON-RPC 2.0 requests with POST. The server returns one JSON response and does not use SSE or session transport.
POST https://verified.md/mcp
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"your-client","version":"1.0"}}}
Supported protocol versions are 2025-06-18 and 2025-03-26. Initialize first, then send the negotiated value in MCP-Protocol-Version on later requests.
get_report: read the latest stored report.verify_domain: read stored readiness and evidence links.scan_domain: explicitly request a scan. This fetches public resources and stores evidence, unless a methodology-matched result from the last ten minutes is reused.
Request bodies are limited to 64 KiB. Fresh scans are limited to 10 per IP each hour, 6 per domain each hour, and 120 globally each minute. Tool errors include retry seconds when a scan budget is exhausted. If admission storage is unavailable, fresh scanning fails closed temporarily while read-only tools remain the appropriate fallback.
Current methodology: 2026-09-05.1