Web page proof lookup API
Fetch a proof created earlier with proof_create by its id, to re-check its hashes, artifact links and timestamp anchor status.
What you get
- The stored proof: id, URL, capture time and SHA-256 hashes
- Links to the archived HTML (served sandboxed) and the PNG screenshot
- The OpenTimestamps anchor and its status
Parameters
idstringrequiredpathProof id (ULID) returned by proof_create
pattern ^[0-9A-HJKMNP-TV-Z]{26}$
Try it
Example response
{
"id": "01M5YCTV80A6V3J9N5RXW7TC8E",
"url": "https://example.com/page",
"capturedAt": "2026-10-27T10:00:00.000Z",
"sha256": {
"html": "28c6b4d8ba18e876196fb1d376671e3be48b283f8c1fe6e2481ec62f66b9664e",
"png": "4353a1de7e0dcc4e87350e22d5c9ee9f3e70e8ce9c31533ec991bee8870c4814"
},
"artifacts": {
"html": "https://402check.com/v1/proof/01M5YCTV80A6V3J9N5RXW7TC8E/html",
"png": "https://402check.com/v1/proof/01M5YCTV80A6V3J9N5RXW7TC8E/png"
},
"anchor": {
"provider": "opentimestamps",
"otsBase64": "APAQqrvM",
"status": "pending"
}
}
The proof created in the proof_create example, read back.
HTTP
curl "https://402check.com/v1/proof/01M5YCTV80A6V3J9N5RXW7TC8E"
MCP
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "proof_get",
"arguments": {
"id": "01M5YCTV80A6V3J9N5RXW7TC8E"
}
}
}
Endpoint https://402check.com/mcp. Setup for Cursor, Claude and other clients is in the docs.
Source and limits
Data from 402check proof store (Cloudflare R2).
- Free and outside the free-tier count
- Unknown ids answer 404 not_found; malformed ids 400 invalid_id
Questions
How much does it cost?
Nothing. proof_get is free and does not count against the free tier.
Do I need an account?
No. Call it without credentials on the free tier, pay per call with x402 over HTTP, or send a prepaid rk_ key bought by card.
Where do the artifacts live?
At /v1/proof/{id}/html and /v1/proof/{id}/png, also free.