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.

ServicePaid callsPaid successFetch successAvg latencyUSDC 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.

Try:Own pages:view them

Recent calls

TimeServiceURLWordsStatusErrorChargedCacheEarned
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}'