x402 · usdc nanopayments
Live dashboard
Pay-per-call web context services for AI agents: metadata probes, structured extraction, and context fitted to a token budget — from $0.001 a call in USDC over x402.
Paid calls settled
—
USDC earned
—
Paid success rate
—
Fetch success rate
—
Avg latency
—
Paid success rate counts only attempts the caller was charged for; fetch success rate also includes technical failures that were never billed. Unpaid 402 challenges are handshakes, not failures.
Per-service stats
Paid success rate = settled responses ÷ attempts the caller was charged for. Fetch success rate also counts technical failures that were never charged. Unpaid 402 challenges are part of the handshake and never count as failures. Rates from fewer than 5 attempts show their sample size.
| Service | Paid calls | Paid success | Fetch success | Avg latency | USDC earned |
|---|---|---|---|---|---|
| Metadata probe/api/public/metadata | — | — | — | — | — |
| Extract/api/public/extract | — | — | — | — | — |
| Context optimize/api/public/optimize | — | — | — | — | — |
| Extract + optimize/api/public/extract-and-optimize | — | — | — | — | — |
token economics
Tokens without vs with FetchWeb
Worked example on docs.example.com/api/reference — API reference page with a 2,000-token budget and the task “rate limits and auth”. Token counts are estimates (~4 characters per token), not tokenizer-exact.
without optimization
Send full extracted content to the LLM
- Estimated tokens in
- 18,430
- Estimated LLM cost
- $0.0553
You pay for every token in the prompt — including the changelog, the newsletter box and the related-posts rail. Long pages also risk blowing the context limit.
with fetchweb
Fit to budget, then send to the LLM
- Estimated tokens out
- 1,974
- Tokens saved
- 16,456 · 89%
- Estimated LLM cost after
- $0.00592
- Saved on the LLM call
- $0.0494
- FetchWeb call (Extract + optimize)
- −$0.00400
- Net savings
- $0.0454
omission manifest
- Changeloglow_value · −4,120
- Newsletter signupboilerplate · −210
- Related postslow_value · −1,380
Query-aware reduction. Pass the task and the optimizer keeps the sections that answer it instead of truncating.
Transparent omissions. Every dropped section returns named, with its reason and tokens removed.
Success-only billing. Failed calls are never charged, so the saving above is the worst case, not the best.
Earnings over time
Paid calls and USDC earned per day (last 14 days).
No paid calls yet.
Playground
Pick a service, fill its inputs and send the request. Without a payment header the API answers 402 with payment requirements — exactly what a buying agent sees before it pays.
Recent calls
| Time | Service | URL | Words | Status | Error | Charged | Cache | Earned |
|---|---|---|---|---|---|---|---|---|
| No calls yet — send a test request above. | ||||||||
Integrate in a minute
Buying agents can auto-discover the price and schema at /api/public/discovery.
# 1. discover services, prices + schemas
curl https://fetchweb.net/api/public/discovery
curl https://fetchweb.net/api/public/pricing
# 2. probe cheaply before paying for a full read ($0.001)
curl "https://fetchweb.net/api/public/metadata?url=https://example.com"
# 3. fetch + fit to a token budget ($0.004)
curl -X POST https://fetchweb.net/api/public/extract-and-optimize \
-H 'content-type: application/json' \
-d '{"url":"https://example.com","max_tokens":2000,"query":"pricing"}'
# 4. pay and retry with the signed x402 header
curl -X POST https://fetchweb.net/api/public/extract-and-optimize \
-H 'content-type: application/json' \
-H "x-payment: $SIGNED_X402_PAYLOAD" \
-d '{"url":"https://example.com","max_tokens":2000,"query":"pricing"}'
# or compress context you already have ($0.0015)
curl -X POST https://fetchweb.net/api/public/optimize \
-H 'content-type: application/json' \
-d '{"content":"# Long doc ...","max_tokens":1500}'