# verified.md — full reference

> Extended, unabridged companion to /llms.txt. This file inlines endpoint
> docs, the full check list with weights and rationale, pricing, and an
> integration quickstart so an agent never has to make a second hop for
> context.

## What this service does

verified.md observes 14 agent-readiness signals. Seven core access,
discovery, and understanding checks contribute to a weighted 0-100 score.
Seven optional or declarative conventions remain visible without awarding
points. Every new report records its methodology version and scope.

## Endpoints

| Method | Path                      | Description                                    |
|--------|---------------------------|--------------------------------------------------|
| POST   | /api/scan                 | Run a scan for {"domain": "example.com"}       |
| GET    | /api/report/:domain       | Latest stored scan report for a domain         |
| GET    | /report/:domain           | Latest stored human report; never scans        |
| GET    | /reports/:id              | Stored human report snapshot                   |
| GET    | /reports/:id.json         | Stored JSON evidence and fix plan              |
| GET    | /reports/:id.md           | Stored Markdown evidence and fix plan          |
| GET    | /verify/:domain           | Readiness + evidence age, scope, and version    |
| POST   | /mcp                      | Streamable HTTP MCP server (scan/report/verify tools) |
| GET    | /status                   | Service health                                 |
| GET    | /agents.md                | Manifest for AI agents                         |
| GET    | /llms.txt                 | Short LLM-facing summary                       |
| GET    | /llms-full.txt            | This file                                      |
| GET    | /.well-known/mcp.json     | MCP server card describing this API            |
| GET    | /.well-known/verified.md  | Self-attestation for the verified.md entity    |
| GET    | /badge/:domain.svg        | Embeddable SVG score badge for a domain        |
| GET    | /api/premium              | Reserved; returns 501, no payment protocol     |
| GET    | /methodology              | How the score is computed, from the check defs |
| GET    | /x402                     | Experimental background; no settlement support |
| GET    | /for/:slug                | Platform/niche agent-readiness pages           |

`GET /verify/:domain` returns the standard success envelope with
`{domain, status, score, grade, scanned_at, readiness, age_seconds,
freshness, partial, scope, methodology_version,
current_methodology_version, report_id, evidence}` in `data`.
`readiness` is `ready` only for evidence no more than seven days old,
produced by the current methodology, complete, score >= 65, and passing the
SSL, robots AI access, and bot access checks. It is `limited` for partial, stale,
legacy, version-mismatched, or lower-scoring evidence, and `unknown` when no
usable timestamped evidence exists. This is not transaction authorization.

`POST /mcp` speaks JSON-RPC 2.0 over Streamable HTTP (single response, no
SSE) for MCP versions 2025-06-18 and 2025-03-26. Call `initialize`, then send
`MCP-Protocol-Version` on subsequent requests. `scan_domain` can fetch and
write a report; `get_report` and `verify_domain` only read stored evidence.

## Methodology 2026-09-05.1

Core checks total 100 points: bot access (20); robots AI access (15); HTTPS
and redirect (15); structured data (15); meta hygiene (15); sitemap (10);
and content readability (10). Optional signals are agents.md, llms.txt,
llms-full.txt, Markdown negotiation, an MCP declaration, a
.well-known/verified.md declaration, and an x402 declaration. Optional
signals earn zero points and are never listed as blockers in the fix plan.

Check results are observations from fetched content, which is untrusted.
The JSON and Markdown snapshots list failed core checks with the observed
detail, source URL, rationale, fix guidance, platform caveat, and explicit
retest instruction. A report never authorizes external edits or purchases.

## Pricing (beta, first 10 sites)

- Scan: free, no signup.
- Agent Ready Kit: $99 per site (beta price). Every file the site is
  missing, agents.md, llms.txt, llms-full.txt, MCP card, self-attestation,
  robots amendments, JSON-LD, generated from its own content, delivered
  within 24 hours with paste-ready instructions. We re-scan and confirm.
- Done for you: $990 per site, founder rate (list $1,900). Full
  access or Cloudflare edge delivery, every failing check implemented,
  first 3 months of certification included. First 10 sites only.
- Certification: $49/mo founding rate, locked for life (list $99).
  Badge, registry entry, scheduled re-verification, and change alerts.
  Certification state and point-in-time scan evidence are separate fields.

Contact: [hello@verified.md](mailto:hello@verified.md)

## Integration quickstart

1. Scan a domain: `curl -X POST https://verified.md/api/scan -H "content-type: application/json" -d '{"domain":"example.com"}'`
2. Read the latest report: `curl https://verified.md/api/report/example.com`
3. Inspect the returned report ID at `/reports/:id.json` or download its
   Markdown fix plan at `/reports/:id.md`.
4. Read readiness: `curl https://verified.md/verify/example.com` and apply
   your own policy to `readiness`, freshness, scope, and evidence.
5. Or use MCP after initialization, sending the negotiated version on each
   later request: `curl -X POST https://verified.md/mcp -H "content-type: application/json" -H "MCP-Protocol-Version: 2025-06-18" -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_report","arguments":{"domain":"example.com"}}}'`

See [/agents.md](/agents.md) for the manifest and [/llms.txt](/llms.txt) for
the short summary this file extends.
