x402-extract five routes · base mainnet
LIVE · eip155:8453 · Bazaar indexed

X402 · BASE MAINNET · USDC PER CALL

APIs that charge per call.

Five endpoints your agent can pay for directly — a few cents in USDC, settled on Base, answer in the same request. No API keys, no accounts, no invoices.

402 Payment Required→ agent signs USDC→ 200 OK + answer
5
paid endpoints
$0.002
cheapest call
Base
eip155:8453 · USDC
21
external buyers, zero outreach

1 Verified on-chain; self-tests excluded from the count.

#The catalog

Every route is pay-per-call in USDC on Base. Unpaid requests get a 402 with a signed price — your agent pays, retries once, gets the answer.

POST/extract-fields$0.02

Text in, structured JSON out. Regex, not an LLM: every field comes back found with a confidence score, or null and listed in missing. It never invents data. The route strangers actually pay for.

Free demo — full result, no wallet

Scroll to the demo below — same engine, same output, $0.00.

POST/extract$0.01

URL in, clean markdown out. Readable article text from any public web page.

Free preview

curl -s "https://x402-extract-wg5z.onrender.com/validate?url=https://example.com"

Preview returns title, word count, first ~500 chars. The full extraction is the $0.01 paid call.

GET/v1/balance/:address$0.003

Native ETH balance for any wallet on Base. Machine-readable, one call, priced below the cost of running your own node query.

GET/v1/block/latest$0.002

Latest Base block number, hash, and timestamp in a single call. The cheapest route in the catalog.

GET/v1/changed?url=…&previous=…$0.008

What changed on a page since you last saw it — deterministic line diff, no LLM. Stateless: you supply the previous text, we supply the truth. Free preview, no wallet →

#Try it free

The real /extract-fields engine behind a free endpoint — full result, right here, no wallet.

Extract fields, $0.00

Verified output, not a mock. What you see is what the $0.02 paid call returns.

#You pay only on 200

Settlement is atomic with success. If the handler doesn't return 200, no payment is submitted — the 402 simply expires.

Failed fetches are never settled.

4xx/5xx responses cancel the payment before settlement. Every failure carries a machine-readable reason (timeout, dns, js_only, origin_4xx, origin_5xx, thin_content, …) so your agent knows whether to retry.

#Calling it from an agent

Official x402 Python package. The 402 → sign → retry loop is handled for you.

import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

client = x402ClientSync()
register_exact_evm_client(client,
    EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as s:
    r = s.post("https://x402-extract-wg5z.onrender.com/extract-fields", json={
        "text": "Invoice #INV-42 from Acme Ltd. Total: $1,234.50.",
        "fields": ["invoice_no", "company", "amount"]})
    print(r.json()["extracted"])
    # {'invoice_no': 'INV-42', 'company': 'Acme Ltd', 'amount': '1234.50'}

#The honest count

2

External buyers so far: 2. That's the honest count — two strangers paid in USDC on Base, eight days apart, with zero outreach between them. Self-tests never count: the tally only moves when a stranger's wallet pays, and every number on this page is verifiable on-chain.

#Machine-readable

Three documents, zero scraping — this is how agents discover and verify us.

Bazaar listing

The Coinbase CDP discovery record: prices, schemas, example payloads.

discovery/merchant?payTo=…
OpenAPI

All nine paths with x402 payment metadata.

https://x402-extract-wg5z.onrender.com/openapi.json
x402 discovery

The well-known resource file agents fetch first.

https://x402-extract-wg5z.onrender.com/.well-known/x402