Tool reference

Create Page Proof

Use before acting on price, policy, availability, or source content that may need an audit trail.

Overview

create_page_proof $0.10 USDC MCP: create_page_proof SDK: createPageProof()

Captures a timestamped page proof with page metadata, content hashes, and optional screenshot and text snapshot URLs.

POST /v1/create-page-proof POST /x402/v1/create-page-proof

When an agent should use it

  • Capture a lightweight audit trail before an agent acts on a public webpage.
  • Record page metadata and hashes for price, policy, or availability checks.
  • Create screenshot and text artifacts for later human review.

Input fields

Schema ref: #/components/schemas/CreatePageProofInput

FieldRequiredTypeDescription
url required string Public HTTP or HTTPS URL to fetch. Localhost, private IPs, link-local addresses, embedded credentials, unsafe redirects, and non-http(s) schemes are rejected.
captureScreenshot optional boolean When true, attempt to capture a screenshot artifact for the page proof. Defaults to true.
captureText optional boolean When true, save a text snapshot artifact for the page proof. Defaults to true.
viewport optional object Optional browser viewport for page capture. Width supports 320-1920 and height supports 320-3000.

Output fields

Schema ref: #/components/schemas/CreatePageProofOutput

FieldRequiredTypeDescription
proofId required string Stable identifier for the created page proof.
url required string Public HTTP or HTTPS URL to fetch. Localhost, private IPs, link-local addresses, embedded credentials, unsafe redirects, and non-http(s) schemes are rejected.
finalUrl required string Final URL after safe redirects. Null only on schemas that explicitly allow null when a final URL could not be established.
timestamp required string ISO timestamp when the page proof was created.
statusCode required integer,null HTTP status code observed during page capture. Null means no status code was available.
title required string,null Page title when one can be extracted. Null means no title was found.
contentHash required string Hash of the returned or captured content for comparison, caching, and lightweight audit trails.
textHash required string,null Hash of the captured text snapshot. Null when text capture was disabled or no text artifact was produced.
screenshotUrl required string,null URL for the screenshot artifact. Null when screenshot capture was disabled or unavailable.
textSnapshotUrl required string,null URL for the text artifact. Null when text capture was disabled or unavailable.

curl example

curl -s https://primitive402.dev/v1/create-page-proof \
  -H 'content-type: application/json' \
  -d '{
  "url": "https://example.com",
  "captureScreenshot": false,
  "captureText": true
}' | jq

TypeScript SDK example

import { createNano402Client } from "@nano402/api/sdk";

const client = createNano402Client({
  baseUrl: "https://primitive402.dev"
});

const result = await client.createPageProof({
  "url": "https://example.com",
  "captureScreenshot": false,
  "captureText": true
});
console.log(result);

Example response snippet

{
  "proofId": "proof_...",
  "timestamp": "2026-05-08T00:00:00.000Z",
  "contentHash": "sha256:..."
}

Safety notes

  • A page proof is not a certified proof or legally binding record.
  • URL fetching and page capture use SSRF protection before navigation.
  • Screenshots and text snapshots can contain untrusted external content.

Common errors

  • 400 invalid_request: request body failed validation.
  • 402 payment_required: the x402 route was called without a valid payment header.
  • 429: rate limit exceeded.
  • 500 internal_error: unexpected server error.

Discovery

Back to tool library