{"openapi":"3.1.0","info":{"title":"x402 Agent Tools","version":"1.0.0","description":"Pay-per-call web tools for AI agents. USDC on Base via x402 (HTTP 402). No API key or signup."},"servers":[{"url":"https://x402-agent-tools.x402agenttools.workers.dev"}],"paths":{"/v1/markdown":{"get":{"summary":"Any public web page URL -> clean Markdown (Readability + Turndown). Returns {url,title,byline,length,markdown}.","x-x402-price":"$0.01","x-x402-network":"eip155:8453","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"string (required)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/extract":{"get":{"summary":"Structured JSON extraction from a web page: title, meta/OpenGraph, JSON-LD, headings, links, tables, contact emails, plus Markdown body.","x-x402-price":"$0.04","x-x402-network":"eip155:8453","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"string (required)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/crawl":{"get":{"summary":"Same-origin multi-page crawl (up to 10 pages, breadth-first) returning Markdown for each page.","x-x402-price":"$0.16","x-x402-network":"eip155:8453","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"string (required)"},{"name":"max_pages","in":"query","required":false,"schema":{"type":"integer"},"description":"int 1-10 (default 5)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/token-risk":{"get":{"summary":"Base mainnet token/contract risk check via public RPC: ERC-20 metadata, owner, EIP-1967 proxy, risky bytecode selectors (mint/blacklist/pause/fee setters), heuristic risk score.","x-x402-price":"$0.04","x-x402-network":"eip155:8453","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"0x contract address (required)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/token-price":{"get":{"summary":"Current USD price of a Base token by contract address (GeckoTerminal, fallback DefiLlama), with 24h change, volume, liquidity/FDV where available.","x-x402-price":"$0.005","x-x402-network":"eip155:8453","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"0x Base token contract address (required)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/wallet-profile":{"get":{"summary":"Base wallet profile via public RPC: ETH and USDC balances, nonce (tx count), contract-or-EOA, recent USDC transfers (last ~10k blocks).","x-x402-price":"$0.02","x-x402-network":"eip155:8453","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"},"description":"0x address (required)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/fx":{"get":{"summary":"Fiat exchange rates (ECB reference rates via frankfurter.app), latest or historical.","x-x402-price":"$0.002","x-x402-network":"eip155:8453","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"ISO currency, default USD"},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"comma list, optional"},{"name":"amount","in":"query","required":false,"schema":{"type":"number"},"description":"number, default 1"},{"name":"date","in":"query","required":false,"schema":{"type":"string"},"description":"YYYY-MM-DD, optional"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/alerts/pass":{"get":{"summary":"7-day access pass to the crypto/market alerts feed. Returns an HMAC-signed Bearer token for GET /v1/alerts?since=. Informational data only, not investment advice.","x-x402-price":"$1","x-x402-network":"eip155:8453","parameters":[],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/alerts/latest":{"get":{"summary":"One-shot: latest factual market alerts (symbol, time, signal type, price, % move, timeframe, source). Informational data only, not investment advice.","x-x402-price":"$0.01","x-x402-network":"eip155:8453","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"int 1-50 (default 20)"}],"responses":{"200":{"description":"JSON result"},"402":{"description":"Payment required (x402 v2, exact scheme, USDC on Base)"}}}},"/v1/alerts/sample":{"get":{"summary":"Free: 3 alerts delayed 60+ min. Informational data only, not investment advice. Alerts are automated factual observations (price/volume moves); no buy/sell recommendation is made or implied.","responses":{"200":{"description":"JSON"}}}},"/v1/alerts":{"get":{"summary":"Live alerts feed; requires Bearer token from /v1/alerts/pass. Informational data only, not investment advice. Alerts are automated factual observations (price/volume moves); no buy/sell recommendation is made or implied.","security":[{"bearer":[]}],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"JSON"},"401":{"description":"missing/invalid/expired token"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}}}