Getting Started
WRL captures web pages with cryptographic proof of authenticity -- Ed25519 signatures and RFC 3161 timestamps that anyone can independently verify.
This guide walks you from your first API call to a verified capture in under five minutes.
Prerequisites
- An API key with
capturescope. See Authentication if you need to create one. curlor any HTTP client.
Step 1: Capture a page
Submit a URL to capture. WRL queues the job and returns a capture ID immediately.
curl -X POST https://api.webresourceledger.com/v1/captures \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
{
"id": "cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"statusUrl": "https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/status",
"note": "Use GET /v1/captures to list and search your captures."
}
Save the id. You will use it in the next two steps.
The capture runs in the background. WRL takes a screenshot, saves the rendered HTML and HTTP response headers, and assembles a cryptographically signed WACZ bundle. This typically takes 5--15 seconds.
Step 2: Check the result
Wait a few seconds, then fetch the capture record using the ID.
curl https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
When the capture is complete, the response includes all artifact links and a verification URL.
{
"id": "cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"status": "complete",
"url": "https://example.com",
"createdAt": "2026-03-22T10:30:00.000Z",
"completedAt": "2026-03-22T10:30:12.481Z",
"renderQuality": "full",
"artifacts": {
"screenshot": "https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/artifacts/screenshot",
"html": "https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/artifacts/html",
"headers": "https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/artifacts/headers"
},
"wacz": {
"url": "https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6/artifacts/wacz",
"bundleHash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"size": 2847362
},
"verifyUrl": "https://api.webresourceledger.com/v1/verify/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
}
Note: The capture ID acts as the access secret for retrieving artifacts. No Authorization header is required when you have the ID. Share the
verifyUrlfreely -- it renders as a human-readable verification page in any browser.
If the status is still pending when you check, wait a few more seconds and try again. The status URL in the Step 1 response is a convenient shortcut for checking just the lifecycle state. For full polling details and status values, see the API Reference.
Step 3: Verify the evidence
Note: You need Node.js 20 or later for this step. If you only need to capture and retrieve pages, you can skip this step and share the
verifyUrlfrom Step 2 instead.
The @w-r-l/verify CLI performs offline cryptographic verification against the operator's published signing key. It confirms the capture has not been tampered with since it was created.
Pass the capture URL directly -- the CLI fetches the WACZ bundle and resolves the signing key automatically.
npx @w-r-l/verify https://api.webresourceledger.com/v1/captures/cap_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
When all checks pass, the output looks like this:
Verification PASSED
File integrity PASS
Bundle integrity PASS
Digital signature PASS
Timestamp imprint PASS
Timestamp chain PASS
Captured URL: https://example.com
Signed at: 2026-03-22T10:30:12.350Z
Timestamp: 2026-03-22T10:30:12.481Z
TSA: DigiCert Timestamp Authority
You just captured a web page with cryptographic proof. The Ed25519 signature and RFC 3161 timestamp prove this content existed at this moment -- and anyone can verify it.
What's next
Authentication Manage API keys, understand scopes, and set up per-tenant access.
Verification Understand the trust model behind Ed25519 signatures and RFC 3161 timestamps.
MCP Server Use WRL with AI agents in Claude Code, Cursor, Windsurf, and other MCP clients.
Batch Captures Submit multiple URLs in a single request and handle per-item results.
Limits & Quotas Understand rate limits, monthly capture and storage quotas, and how to read quota headers.
Webhooks Receive real-time notifications when captures complete or fail.
API Reference Full endpoint details, request and response schemas, status codes, and rate limits.