Pay-per-call web tools built for AI agents. Your agent hits the endpoint, pays a fraction of a cent in USDC automatically, and gets the result. No accounts. No keys. No subscriptions.
Real headless Chromium. JavaScript executed, SPAs included → clean markdown. The pages plain fetch can't read.
POST /api/render
Persistent key-value state scoped to your wallet. Your payment is your login — no signup, no API keys, ever.
POST·GET /api/memory
Any URL → PNG, full-page optional. Visual verification for agent workflows.
GET /api/screenshot?url=…
PDF URL → full text + document info. Up to 20MB. The format agents hit constantly and parse badly.
POST /api/pdf
Any URL → clean markdown. Title, byline, main content with boilerplate stripped. The page-reading primitive every agent needs.
POST /api/extract
Page metadata (OpenGraph, Twitter cards, favicon) and DNS lookups (A, AAAA, MX, TXT, NS, CNAME).
GET /api/meta · /api/dns
HTTP 402 Payment Required with the price and payment details.@x402/fetch, @x402/axios, or any agent framework with x402 support) signs a USDC payment from its wallet and retries the request.import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, {
signer: privateKeyToAccount(process.env.AGENT_PRIVATE_KEY),
});
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/extract", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ url: "https://example.com/article" }),
});
console.log(await res.json()); // { title, markdown, ... }
# Machine-readable catalog — free
curl https://agent402.tools/api/pricing
# See the 402 challenge a paying agent receives
curl -i -X POST https://agent402.tools/api/extract \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'