# scrape402

> Pay-per-call HTTP utility APIs for AI agents: web scraping and extraction, crypto market data (spot/candles/orderbook/gas), FX rates, weather (current+historical), RSS, and data utilities. Paid via x402 USDC micropayments on Base — no signup, no API keys.

- **Domain**: `x402.shizu.me`
- **Provider**: x402.shizu.me (https://x402.shizu.me)
- **A2A protocol version**: 1.0
- **Kind**: paid_api
- **Category**: data
- **Live-responds (last probe)**: None
- **Signed card**: False
- **Streaming**: False
- **Quality score**: 86%
- **Payment protocol**: x402 · network `eip155:8453` · ≥ $0.001
- **Wallet**: `0x217e5fe265eb78b29067bf8324ef03a7d8e167c4`

## Skills
- **Web Page Scraper** — Fetch any public web page and return clean main content as JSON: title, author, publish date, hostname, excerpt, full text, and word_count. Boilerplate (nav, ad
- **Webpage to Markdown** — Fetch any public web page and return its main content as clean Markdown, ready to feed to an LLM. Boilerplate (nav, ads, footers) stripped. Input: url (public h
- **PDF to Text** — Fetch a PDF by URL and extract its text as JSON. Input: url (public http/https pointing to a PDF). Returns {url, pages, word_count, text}. Bounded to the first 
- **Structured Extract** — Scrape a public web page and pull caller-specified fields back as clean JSON. Body: {url, fields:[...], instructions?}. 'fields' is a list of field names to ext
- **Weather — Current & Historical** — Weather for any coordinate. Current (default): temperature (C), relative humidity (%), wind speed, weather code — real-time. Historical: add start_date & end_da
- **Crypto Spot Price** — Current spot price for crypto trading pairs. Input: pair — a single pair (BTC-USD) or up to 10 comma-separated pairs (BTC-USD,ETH-USD,SOL-USD) returned in ONE c
- **Crypto Order Book** — Live order book for a crypto pair (e.g. BTC-USD). Default level=1: best bid/ask with sizes, mid price, spread, and spread_bps. level=2 adds top-of-book depth (d
- **EVM Gas Price Oracle** — Current gas prices for Base or Ethereum mainnet: legacy gas price, EIP-1559 base fee and suggested priority fee (all gwei), plus the latest block number. Query:
- **Fiat Exchange Rates** — Foreign-exchange rates for 30+ fiat currencies (ECB reference data). Query: base (3-letter code, default USD), symbols (optional comma list, e.g. EUR,GBP,JPY), 
- **RSS / Atom Feed Reader** — Fetch any public RSS or Atom feed and return clean JSON: feed title plus items with title, link, published date, and plain-text summary (no XML parsing needed).
- **Crypto OHLC Candles** — Historical OHLC candles for a crypto pair (e.g. BTC-USD) — for technical analysis and backtesting. Query: pair; granularity (1m, 5m, 15m, 1h, 6h, 1d — default 1
- **Crypto News Headlines** — Latest crypto news headlines aggregated from major outlets (CoinDesk, Cointelegraph, Decrypt, The Block, Bitcoin Magazine), merged and sorted newest-first. Quer
- **Perp Funding Rates** — Live perpetual-futures funding rates from Hyperliquid: per-coin funding rate, mark price, and open interest. Query: coins (optional comma list, e.g. BTC,ETH,SOL
- **Trending Coins** — Cryptocurrencies trending on CoinGecko right now — the coins agents and humans are searching for most. Returns id, symbol, name, market-cap rank, and price data
- **DeFi Yield Screener** — DeFi yield opportunities across chains and protocols (DefiLlama data): pool, project, chain, TVL, and APY, ranked by APY. Query: chain (e.g. Ethereum, Base), pr
- **Prediction Market Odds** — Live prediction-market odds. source=polymarket (default) or kalshi. Polymarket: top active markets by 24h volume with outcome prices. Kalshi: open markets with 
- **Live Prediction-Market Surface** — The live TRADEABLE prediction-market surface, normalised for polling bots. Every liquid Polymarket market above a 24h-volume floor, each with its Yes probabilit
- **DeFi Yield Pools (filtered)** — Every DefiLlama yield pool, filtered and sorted server-side so you don't fetch the 11MB index. Query: chain, project, symbol, min_tvl (USD), min_apy (%), stable
- **DeFi Protocol TVL (filtered)** — Every DefiLlama protocol with current TVL, filtered server-side (the raw index is 8.5MB). Query: chain, category (Lending, Dexes, ...), min_tvl (USD), sort (tvl
- **DeFi TVL by Chain** — Total DeFi TVL for every chain DefiLlama tracks, ranked. Query: limit (1-500). Each: name, tvl_usd, token.
- **Stablecoin Circulating Supply** — Every tracked stablecoin with circulating supply (USD), peg type, peg mechanism, and current price. Ranked by circulating. Query: limit (1-200).
- **Token Prices (DefiLlama)** — Current token prices from DefiLlama. Query: coins — a comma list of coin ids like coingecko:bitcoin or <chain>:<address> (up to 50). Each: price, symbol, timest
- **Protocol TVL (live single number)** — Current total TVL for named protocols, one number each — the cheap poll (avoids the 10MB per-protocol history blob). Query: protocol — comma list of DefiLlama s
- **Crypto Fear & Greed Index** — Crypto market sentiment: the Fear & Greed Index (0=extreme fear, 100=extreme greed) with classification, plus optional history. Query: days (1-90, default 7). U
- **Ask Claude (flat price)** — LLM completion at a flat price — no signup, no API keys, no token math. Body: {prompt (required), system?, max_tokens? (<=512), temperature?}. Runs Anthropic's 
- **Ask Claude Pro (Sonnet, flat price)** — Smarter-model LLM completion at a flat price — Claude Sonnet for harder reasoning, analysis, and writing. Same simple contract as /ask: body {prompt (required),
- **OpenAI-Compatible LLM Gateway** — Drop-in OpenAI Chat Completions — point any OpenAI SDK's base_url here and pay per call in USDC, no account or key. POST {model, messages:[{role,content}], max_
- **OpenAI-Compatible Embeddings** — Drop-in OpenAI embeddings endpoint — same base_url as /v1/chat/completions, pay per call in USDC, no account or key. POST {input: string|array (max 16 items, 8K
- **Web Page Digest** — Read any public web page and get a clean LLM summary in ONE call — fetch, boilerplate removal, and Claude summarization fused. Query: url (public http/https); i
- **Text Classifier** — Classify text into YOUR labels in one call. Body: {text (<=4000 utf-8 bytes), labels (2-20 strings)}. Returns {label} — always exactly one of your labels. Flat 
- **Crypto Market Brief** — One call, the whole market: an LLM-written crypto briefing fusing live headlines, perp funding, Fear & Greed, trending coins, and prediction-market odds — all f
- **LLM Token Counter** — Exact token count for text using OpenAI tokenizers. Body: {text, encoding?} where encoding is cl100k_base or o200k_base (default). Returns tokens and char_count
- **Data Format Converter** — Convert structured data between csv, json, and yaml. Body: {data, from, to}. Returns the converted result. Use for data wrangling and format normalization.
- **Value Validator** — Validate a value. Body: {type, value, schema?}. type = luhn (credit-card number), iban (bank account), email, or json_schema (validate value against a provided 
- **Timezone Converter** — Convert a timestamp between IANA timezones. Inputs: from, to (e.g. UTC, America/New_York), time? (ISO8601, default now). Returns input/converted timestamps and 
- **Geospatial Compute** — Geospatial computation. op=distance (lat1,lon1,lat2,lon2 -> km and miles) or op=geohash (lat,lon,precision? -> geohash string). Inputs as query params.
- **Agent Memory: save state between runs** — Your agent forgets everything when it exits. Checkpoint here and resume next run: POST {key, value, ttl?} stores JSON private to your paying wallet; GET ?key= r
- **Agent Memory: save state between runs** — Your agent forgets everything when it exits. Checkpoint here and resume next run: POST {key, value, ttl?} stores JSON private to your paying wallet; GET ?key= r
- **Agent-to-Agent Mailbox (message passing)** — Send data from one agent to another with no shared infrastructure. POST {channel, message} leaves JSON in a named mailbox; the receiving agent GETs ?channel= to
- **Agent-to-Agent Mailbox (message passing)** — Send data from one agent to another with no shared infrastructure. POST {channel, message} leaves JSON in a named mailbox; the receiving agent GETs ?channel= to
- **Verifiable Randomness** — Cryptographically-secure randomness with a receipt. GET ?bytes= returns hex (1-256 bytes); add ?min=&max= for a uniform integer in an inclusive range. Each resp
- **Provably Fair Draw (commit-reveal randomness)** — Run a fair coin flip, lottery, or tie-break between agents that don't trust each other's dice. POST returns a sha256 commitment to a secret value — provably fix
- **Provably Fair Draw (commit-reveal randomness)** — Run a fair coin flip, lottery, or tie-break between agents that don't trust each other's dice. POST returns a sha256 commitment to a secret value — provably fix
- **JSON Change Detector (structural diff)** — Detect exactly what changed between two API responses, configs, or state snapshots. POST {a, b} returns every added, removed, and changed path with old/new valu
- **Data Notary (timestamp proof)** — Prove a piece of data existed at a point in time. POST {data} returns its sha256, a recorded timestamp, and an HMAC receipt; GET ?hash= tells you whether and wh
- **Data Notary (timestamp proof)** — Prove a piece of data existed at a point in time. POST {data} returns its sha256, a recorded timestamp, and an HMAC receipt; GET ?hash= tells you whether and wh
- **Callback Inbox for Serverless Agents** — Give an agent with no server a public URL that catches callbacks while it isn't running. POST {ttl?} mints a capture URL; any external service can POST JSON to 
- **Callback Inbox for Serverless Agents** — Give an agent with no server a public URL that catches callbacks while it isn't running. POST {ttl?} mints a capture URL; any external service can POST JSON to 
- **Pace a Loop Without a Scheduler (durable timer)** — Answer 'is it time yet?' across stateless runs. POST {interval_seconds, count} starts a durable timer; each GET ?id= returns how many ticks elapsed since your l
- **Pace a Loop Without a Scheduler (durable timer)** — Answer 'is it time yet?' across stateless runs. POST {interval_seconds, count} starts a durable timer; each GET ?id= returns how many ticks elapsed since your l

## URLs
- Agent card: https://x402.shizu.me/.well-known/agent-card.json
- Page (HTML): https://agenstry.com/agents/x402.shizu.me
- Documentation: https://x402.shizu.me/llms.txt
