API, MCP & x402

Framing. A record's status is a dated evidence statement ("as of T, source X shows Y"), never a guarantee. Honest nulls (UNVERIFIABLE when a source is unreachable) are returned rather than fabricated.

REST

POST https://verified.dropwatchhq.com/api/feed                 mint a feed {slug,name,owner,freshnessSlaHours,records:[{id,subject:{ticker?,name?},claim?}]}
POST https://verified.dropwatchhq.com/api/verify/<slug>        re-verify a minted feed (signs every record)
GET  https://verified.dropwatchhq.com/api/feed/<slug>          latest verification snapshot (status + as-of + stale flags)
GET  https://verified.dropwatchhq.com/api/subject?ticker=OLN   one-off verify a subject, signed
GET  https://verified.dropwatchhq.com/api/provenance/<id>      verification receipt
GET  https://verified.dropwatchhq.com/api/receipt/<id>         recompute + verify a receipt
POST https://verified.dropwatchhq.com/api/seed-demo            (re)build the govcon-demo feed from our live gov data

MCP (POST /mcp, JSON-RPC 2.0)

tools: verify_record [x402 $0.20], feed_status, verify_subject, verify_receipt
curl -s https://verified.dropwatchhq.com/mcp -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"feed_status","arguments":{"slug":"govcon-demo"}}}'

x402 discovery

GET https://verified.dropwatchhq.com/.well-known/x402

Pay

USDC (Base): 0x38134a7F97636E26365Fb17405566595B917a341
USDT (TRC20): TNvb5tyrzWZW9iNUwQ6TTiY87MGLs1Cgsi
Invoice / sub activation: invoice@dropwatchhq.com

DropWatch HQ · verified.dropwatchhq.com · Docs & pricing · Live demo feed · MCP · x402
Verification statuses are DATED evidence statements ("as of T, source X shows Y"), not guarantees. Public-source data can change; the freshness SLA + re-verification keep records current.