{"slug":"attest-tollkit-dev-attest-b965a6","title":"Prove what a web page said","host":"attest.tollkit.dev","method":"POST","resource":"https://attest.tollkit.dev/attest","category":"company","description":"Prove what a web page said: signed, timestamped evidence of a page's content, with a screenshot. Returns the rendered text and its SHA-256 hash, a screenshot and its hash, response headers, the serving IP and TLS certificate, all signed so anyone can verify it later without trusting us. Use for web ","price_listed":0.25,"price_asked":0.25,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":255,"reported_calls_30d":3,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"url":"https://fly.io/pricing"},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"properties":{"input":{"properties":{"body":{"properties":{"screenshot":{"default":true,"description":"Capture and hash a screenshot. On by default — an attestation without one is much weaker evidence. Turn it off for a faster, text-only record.","type":"boolean"},"url":{"description":"Absolute https:// URL of the page to attest to. Anything a dispute could turn on: terms of service, a price, a published policy, a competitor's claim, a listing that may be edited later.","format":"uri","type":"string"}},"required":["url"],"type":"object"},"bodyType":{"enum":["json"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","body"],"type":"object"},"output":{"properties":{"example":{"$schema":"https://json-schema.org/draft/2020-12/schema","description":"A signed, timestamped record of what a page contained. The `attestation` object is the evidence; `content` holds the bytes its hashes are over. Store the whole response — this service keeps no copy, by design, so that the record cannot be altered or withdrawn later.","properties":{"attestation":{"properties":{"algorithm":{"type":"string"},"claim":{"description":"Exactly what was signed. Re-serialize this with sorted keys and no whitespace, keccak256 it, and you get `digest`.","properties":{"attestedBy":{"description":"Signer address, inside the signed payload.","type":"string"},"capturedAt":{"description":"ISO 8601 render time.","type":"string"},"finalUrl":{"description":"Where the browser ended up.","type":"string"},"headers":{"description":"Lowercased, sorted; set-cookie removed.","type":"object"},"httpStatus":{"type":"integer"},"redirected":{"type":"boolean"},"remoteAddress":{"description":"IP that served it.","type":["string","null"]},"screenshotSha256":{"type":["string","null"]},"textLength":{"type":"integer"},"textSha256":{"type":"string"},"title":{"type":["string","null"]},"tlsIssuer":{"type":["string","null"]},"tlsSubject":{"type":["string","null"]},"tlsValidFrom":{"type":["string","null"]},"tlsValidTo":{"type":["string","null"]},"url":{"description":"The URL as submitted.","type":"string"},"version":{"type":"integer"}},"type":"object"},"digest":{"description":"keccak256 of the canonical claim.","type":"string"},"signature":{"description":"EIP-191 personal_sign over the digest.","type":"string"},"signer":{"type":"string"}},"required":["claim","digest","signature","signer"],"type":"object"},"content":{"properties":{"screenshotBase64":{"type":["string","null"]},"screenshotMimeType":{"type":["string","null"]},"text":{"type":"string"},"textTruncated":{"type":"boolean"}},"type":"object"},"verify":{"description":"Free, unauthenticated verification endpoint.","type":"string"}},"required":["attestation","content"],"type":"object"}},"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.25,"price_match":true,"latency_ms":255,"error":null}],"description_full":"Prove what a web page said: signed, timestamped evidence of a page's content, with a screenshot. Returns the rendered text and its SHA-256 hash, a screenshot and its hash, response headers, the serving IP and TLS certificate, all signed so anyone can verify it later without trusting us. Use for web evidence, archiving terms of service or prices, compliance records, citation checks and disputes. $0.25 per page; verification is free.","last_updated":"2026-09-21T06:00:13.962Z","schemes":["exact"]}