Metered utilities · card or x402
The utility company for the machine web.
Small, precise web APIs, metered in credits (1 credit = $0.001). Humans buy credits with a card; agents pay per request with x402 (USDC on Base).
-
Browser
Render and capture the public web
-
Crypto
Hashes, keys, JWT, TOTP, AEAD
-
Credits
Prepaid bundles — card or USDC
-
System
Keys, registration, feedback
-d '{"url": "https://example.com"}'
{ "error": { "code": "PAYMENT_REQUIRED", "details": {
"accepts": [{ "scheme": "exact", "maxAmountRequired": "3000", … }] } } }
x-payment-response: { "transaction": "0x1b1c03…", "network": "base" }
{ "ok": true, "utility": "browser.screenshot", "chargedCredits": 3,
"artifact": { "url": "…/v1/artifacts/art_kx2…" } }
Rate card
Utilities, priced per call
1 credit = $0.001
| Utility | What it does | Credits | ≈ USD |
|---|---|---|---|
| browser.screenshot | Full-page website screenshot as PNG, JPEG, or WebP for AI agents — render a URL or HTML and capture. | 3 | $0.003 |
| browser.pdf | HTML/URL to PDF rendering — print a public page or HTML string as A4/Letter PDF. | 5 | $0.005 |
| browser.extract | Structured page content extraction: title, text, links, metadata, plus schema-guided fields (CSS selectors or JSON-LD/meta match) from a URL or HTML. | 2 | $0.002 |
| browser.snapshot | Agent page snapshot: combined text, links, optional screenshot, and content hash in one call. | 7 | $0.007 |
| browser.inspect | Debug view: HTTP status, console logs, network requests, and redirects. | 4 | $0.004 |
| browser.markdown | Render a URL or HTML to clean GitHub-flavored Markdown for AI agents — default page-read format without screenshot/PDF weight. | 3 | $0.003 |
| browser.a11y | Accessibility tree snapshot (roles, names, structure) for agent interaction planning — lighter than a screenshot, more structured than raw text. | 3 | $0.003 |
| crypto.hash | Hash and checksum APIs: SHA-256, SHA-512, SHA-3, BLAKE2b/BLAKE3, MD5, CRC32. | 1 | $0.001 |
| crypto.hmac | HMAC sign and verify message authentication codes (SHA-256, SHA-512, BLAKE2b). | 1 | $0.001 |
| crypto.random | Secure random bytes, tokens, UUIDs, and passphrases. | 1 | $0.001 |
| crypto.password | Password hash and verify with Argon2 (argon2id/argon2i, PHC format). | 5 | $0.005 |
| crypto.signature | Ed25519 / ECDSA P-256 keypairs, digital signing, and signature verification. | 2 | $0.002 |
| crypto.symmetric | Authenticated encryption (AEAD): AES-GCM and ChaCha20-Poly1305. | 2 | $0.002 |
| crypto.jwt | Sign, verify, and decode JWT / JSON Web Tokens (HS256, RS256, EdDSA). | 2 | $0.002 |
| crypto.totp | Generate and verify TOTP 2FA two-factor codes (RFC 6238). | 1 | $0.001 |
| crypto.key_derivation | Key derivation with HKDF, Argon2id, or PBKDF2 from passwords or key material. | 5 | $0.005 |
| net.dns | DNS lookup for A, AAAA, MX, TXT, CNAME, NS, SOA, CAA, PTR records over DoH. | 1 | $0.001 |
| net.rdap | WHOIS/RDAP domain or IP registration data (registrar, dates, nameservers). | 1 | $0.001 |
| net.email | Email deliverability posture: SPF, DMARC, DKIM, MX, and MTA-STS for a domain. | 2 | $0.002 |
| net.ip | IP intelligence: ASN, org, reverse DNS, geolocation country, and registry. | 1 | $0.001 |
| net.cidr | Subnet calculator: CIDR ranges, host counts, membership tests, and IP conversions. | 1 | $0.001 |
| net.certs | Certificate Transparency history via crt.sh (issued certs, issuers, SANs, validity). | 2 | $0.002 |
| net.fetch | HTTP GET/HEAD of a public URL without a browser: status, headers, body (size-capped), redirects — for robots.txt, JSON APIs, and static files. | 1 | $0.001 |
| net.url_expand | Unshorten and follow redirects for a public URL: final URL, status, and hop chain (SSRF-safe) — for phishing/marketing link inspection. | 1 | $0.001 |
| net.tls | Live TLS reachability to a public host (DoH-pinned IP + SNI) plus Certificate Transparency cert summary (issuer, SANs, days-to-expiry). | 2 | $0.002 |
| parse.pdf | Extract text from a PDF (public URL, base64, or util.beauty artifact) without a browser — page count, content hash, optional per-page text. | 2 | $0.002 |
| system.suggest | Suggest a new utility, improvement, or docs change (agent feedback). | 1 | $0.001 |
| system.register | Create a prepaid account and receive one API key (shown once). | 1 | $0.001 |
| system.keys | List or rotate API keys for the registering wallet — x402-only auth (prepaid API keys cannot call this). | 1 | $0.001 |
| credits.purchase | Buy a prepaid credit bundle (starter / builder / scale / pro) with volume discounts. Card: /credits · USDC catalog: /v1/credits/bundles. | SKU | $1–$70 |
Two ways to pay
x402 for agents. Credits for teams.
x402 pay-per-request
Live · Base · self-serve
The public path. Call any paid endpoint with no credentials and the response is
HTTP 402 with machine-readable terms: price, asset,
recipient, expiry, and replay rules. Sign a USDC transfer authorization, retry with proof,
get your result. No signup, no key, no stored balance — and no gas for the payer.
- ·Settles real USDC on Base mainnet before your request runs
- ·Terms are bound to the exact request — proofs can’t be replayed
- ·Preview any price without a 402:
GET /v1/x402/quote
Every settlement returns its on-chain transaction hash in the X-PAYMENT-RESPONSE header — on success and error responses alike. Start at /start.
Prepaid credits
Card · StripeFor humans and teams. Pay with a card on /credits — Stripe Checkout, fixed bundles ($1–$70), then receive an API key once. Every call deducts its listed price from your balance.
- ·Card checkout via Stripe (no crypto wallet required)
- ·Authenticate with
Authorization: BearerorX-API-Key - ·Full ledger +
Idempotency-Key— retries can’t double-charge
POST /v1/credits/purchase
Invoice / volume? Contact us.
For machines, on purpose
Every capability is discoverable
An agent should never need to read a marketing page — this one included. The whole surface is self-describing: capabilities, prices, payment instructions, limits, and error semantics are all machine-readable, and every error carries a stable, enumerable code.
- GET /v1/meta — utilities, pricing, payment modes, limits
- GET /openapi.json — OpenAPI 3.1, the contract
- GET /skill.md — installable Claude Code skill
- GET /prompt.txt — paste into any agent harness
- GET /llms.txt — orientation for language models
- /start — wallet → first paid call
{
"service": "util.beauty",
"payment": {
"modes": ["prepaid", "x402"],
"creditUsdMicros": 1000
},
"utilities": [
{ "name": "browser.snapshot",
"endpoint": "…/v1/browser/snapshot",
"credits": 7, "usdMicros": 7000 },
…
],
"limits": { "maxTimeoutMs": 30000, … },
"openapiUrl": "https://util.beauty/openapi.json"
}
Quickstart
Two paths. First paid call.
Humans · card
Pick a bundle, pay with Stripe, copy your API key once, call any utility.
- Open /credits
- Choose starter → pro ($1–$70)
- Pay with card · key shown on success
Agents · x402
No signup. Discover → quote → pay USDC on Base in the same request lifecycle.
curl https://util.beauty/v1/meta
curl "https://util.beauty/v1/x402/quote?utility=crypto.hash"
Full agent recipe on /start →
Agents: install the skill with one curl, or paste /prompt.txt. Schemas live in the API reference.
The fine print
Honest metering. Prices are quoted up front, responses state the exact charge, and billing is per attempt: invalid requests are rejected free before payment, but executed requests are charged whether the target page cooperates or not.
Sensible limits. Renders time out at 30 seconds; request bodies up to 1 MiB; artifacts up to 25 MiB, retained for 7 days.
Public web only. Requests to private networks, loopback, and internal addresses are refused with URL_BLOCKED.
A utility, not a crawler. util.beauty renders pages you point it at. It does not evade access controls, and it identifies itself honestly.