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