# CentStream > Paid micro-API for AI agents. x402 protocol: a plain GET returns HTTP 402 with payment > details; the client signs a USDC payment (EIP-3009, no gas needed from the payer) and > retries with the X-PAYMENT header. No API keys, no accounts, no subscriptions. ## Pricing - 0.05 USDC per call on base - asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USD Coin) - scheme: exact, x402Version: 1 - payTo: 0x75F93F8aD9A437D415F277dEF4Cc268a8Bf1C45C - verify/settle facilitator: https://facilitator.payai.network ## Endpoints (all paid, JSON envelope {ok, data, meta}) - GET /v1/crypto/price?symbols=btc,eth — Crypto prices (CoinGecko, Binance fallback). Cache 60s. - GET /v1/gas?chain=base — Current gas price via public RPCs (two sources, auto-fallback). Cache 15s. - GET /v1/fiat/rates?base=eur — Fiat FX rates, ECB reference rates via frankfurter.app. Cache 1h. - GET /v1/weather?lat=52.52&lon=13.41 — Current weather by coordinates (open-meteo, no key). Cache 10min. - GET /v1/ipinfo — Geolocation of the caller's IP from Cloudflare request data. Zero upstream calls. - GET /v1/qr?text=https://example.com&size=256 — QR code as SVG, generated in-worker (pure JS, no external service). - GET /v1/meta?url=https://blog.cloudflare.com — OpenGraph / meta tags of a web page (fetch + parse). Cache 5min. - GET /v1/dns?name=example.com&type=MX — DNS records via DoH (Cloudflare primary, Google fallback). Cache 60s. - GET /v1/wiki?lang=en&q=Cloudflare — Wikipedia article summary, 300+ languages (REST, action-API fallback). Cache 1h. - GET /v1/dict?q=serendipity — English dictionary entry: definitions, examples, synonyms. Cache 24h. - GET /v1/holidays?country=US&year=2026 — Public holidays by country and year (110+ countries). Cache 24h. - GET /v1/news?feed=bbc&limit=5 — News via RSS: bbc, guardian, npr, techcrunch, theverge — or any custom https feed. Cache 5min. - GET /v1/rand?type=token&len=64&n=2 — Cryptographic randomness in-worker: uuid v4, hex tokens, PINs, random ints. - GET /v1/convert?value=26.2&from=mi&to=km — Unit conversion in-worker: length, mass, data, speed, temperature. - GET /v1/time?tz=Europe/Moscow — Current time in any IANA timezone (Intl in-worker): ISO, offset, weekday. - GET /v1/hash?text=hello&algo=sha-256 — Hash of text in-worker: SHA-1/256/384/512, hex or base64. - POST /v1/batch/s5 {"requests":[{"path":"/v1/hash","params":{"text":"hi"}}]} — Batch: up to 5 lookups in ONE paid call ($0.25 total) — one signature, one round trip. [$0.25 per call] - POST /v1/batch/s20 {"requests":[{"path":"/v1/time"},{"path":"/v1/gas","params":{"chain":"base"}}]} — Batch: up to 20 lookups in ONE paid call ($1.00 total) — best value for agents. [$1.00 per call] ## Free surfaces - GET / — human-readable documentation - GET /health — service + upstream status - GET /openapi.json — OpenAPI 3.1 schema - GET /llms.txt — this file ## Client integration - JavaScript/TypeScript: npm i x402-fetch viem, then const paidFetch = wrapFetchWithPayment(fetch, account); await paidFetch(url) - Python: any x402 client (e.g. x402 package) speaking scheme "exact" on base - Rate limit: 30 req/min per IP - Reliability: cache-first with stale-while-error (flag meta.stale = true), dual upstreams for crypto prices and gas.