Web page evidence capture API with timestamp

Capture a public web page as tamper-evident proof (archived HTML and screenshot, SHA-256 hashes and an OpenTimestamps anchor), to keep verifiable evidence of what the page showed at a given time. Not part of the free tier: needs a credits key (or x402 on the HTTP API).

$0.25POST /v1/proofMCP proof_createPaid only

What you get

  • The rendered page as HTML and a full-page PNG screenshot, both from one page load
  • SHA-256 hashes of both artifacts and links to download them
  • An OpenTimestamps anchor of the proof digest

Parameters

  • urlstringrequiredbody

    Public http(s) URL to capture

    1–2048 characters

Try it

With a key, every Run is paid from your credits and the balance updates after each call. Kept only in this browser tab; sent only to this site.

Public http(s) URL to capture. 1–2048 characters.

$0.25 per call. Not in the free tier: add your API key above.

Equivalent curl
curl -X POST "https://402check.com/v1/proof" \
  -H "Authorization: Bearer rk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/"}'

Example response

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"
  }
}

Output against our capture test fixture; ids and hashes come from that run.

HTTP

Request
curl -X POST "https://402check.com/v1/proof" \
  -H "Authorization: Bearer rk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/"}'

MCP

tools/call request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "proof_create",
    "arguments": {
      "url": "https://example.com/"
    }
  }
}

Endpoint https://402check.com/mcp. Setup for Cursor, Claude and other clients is in the docs.

Source and limits

Data from Cloudflare Browser Rendering and OpenTimestamps.

  • Not part of the free tier: it needs a credits key or x402
  • Public http(s) URLs only; private and local addresses are refused with 400 invalid_url
  • The HTML hash covers the serialized DOM after rendering, not the raw HTTP bytes
  • The anchor starts as pending; upgrading it to confirmed is not implemented in v1

Questions

How much does a capture cost?

$0.25 per successful capture. It is never free: use a credits key or x402.

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.

How do I verify a proof later?

Fetch it with proof_get (free), re-hash the artifacts and compare with sha256.

Am I charged for a failed call?

No. Credits are deducted and x402 payments settled only on a 2xx response; errors such as invalid_query or upstream_error cost nothing.