{"openapi":"3.1.0","info":{"title":"x402-gateway","version":"0.3.0","description":"Pay-per-call MCP gateway, 12 tools with per-tool prices on Base: markdown=$0.001, token_price=$0.002, wallet_portfolio=$0.002, whale_alerts=$0.002, cross_chain_balance=$0.002, changelog_openapi=$0.005, changelog_git=$0.005, mermaid=$0.005, html_to_markdown=$0.001, qr_generator=$0.001, og_image_generator=$0.001, jobs=$0.002. MCP flat rate $0.001 USDC per call."},"servers":[{"url":"https://x402.freeq.one"}],"paths":{"/tools/markdown":{"post":{"summary":"markdown — Fetch a URL and convert its main content to clean, LLM-ready Markdown (strips nav/ads/sidebars). Options: output_format (markdown|text|json), css_selector, max_length, include_links, include_images.","x402":{"price_usd":0.001,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL to fetch and convert"},"options":{"type":"object","description":"Conversion options (output_format, css_selector, max_length, include_links, include_images)"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/token_price":{"post":{"summary":"token_price — Get the live price of a token by symbol (e.g. ETH, USDC, MATIC).","x402":{"price_usd":0.002,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string","description":"Token symbol, e.g. ETH"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/wallet_portfolio":{"post":{"summary":"wallet_portfolio — Get a complete wallet portfolio for an Ethereum address: native ETH balance, ERC-20 balances, NFT holdings, recent transfers.","x402":{"price_usd":0.002,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address (0x-prefixed, 42 chars)"},"include_tokens":{"type":"boolean","description":"Include ERC-20 balances (default true)"},"include_nfts":{"type":"boolean","description":"Include NFT holdings (default false)"},"include_transfers":{"type":"boolean","description":"Include recent transfers (default false)"},"transfer_limit":{"type":"integer","description":"Max transfers (1-100, default 20)"},"chain":{"type":"string","description":"Chain key: eth, arb, base, polygon, opt"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/whale_alerts":{"post":{"summary":"whale_alerts — Scan recent blocks for large ETH transfers involving an address. Filter by direction (in/out/both) and threshold.","x402":{"price_usd":0.002,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address to monitor"},"direction":{"type":"string","description":"in, out, or both (default both)"},"min_value_eth":{"type":"number","description":"Minimum ETH value threshold"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/cross_chain_balance":{"post":{"summary":"cross_chain_balance — Aggregate native balance and token/NFT counts for an address across eth, arb, base, polygon, opt.","x402":{"price_usd":0.002,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address"},"chains":{"type":"array","items":{"type":"string"},"description":"Chains to query: eth, arb, base, polygon, opt"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/changelog_openapi":{"post":{"summary":"changelog_openapi — Diff two OpenAPI specs and generate a structured breaking-change changelog (no LLM — deterministic diff). Provide base_spec_url and new_spec.","x402":{"price_usd":0.005,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["new_spec"],"properties":{"base_spec_url":{"type":"string","description":"URL of the base (old) OpenAPI spec"},"new_spec":{"type":"object","description":"New OpenAPI specification as a JSON object"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/changelog_git":{"post":{"summary":"changelog_git — Diff git commits and generate a structured breaking-change changelog. Provide repository_url, base_commit, and optional target_commit.","x402":{"price_usd":0.005,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["repository_url","base_commit"],"properties":{"repository_url":{"type":"string","description":"Git repo URL (https)"},"base_commit":{"type":"string","description":"Base commit SHA"},"target_commit":{"type":"string","description":"Head commit SHA (optional, defaults to repo HEAD)"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/mermaid":{"post":{"summary":"mermaid — Render a Mermaid diagram to an image (PNG or SVG). Returns a base64-encoded image (MCP content type image). Options: format (png|svg), theme (default|dark|forest|neutral), scale (1-4, PNG only).","x402":{"price_usd":0.005,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"Mermaid diagram source code, e.g. 'graph TD; A-->B'. Max 50000 chars."},"format":{"type":"string","enum":["png","svg"],"description":"Output format (default png). SVG returns vector text."},"theme":{"type":"string","enum":["default","dark","forest","neutral"],"description":"Mermaid theme (default 'default')."},"scale":{"type":"number","description":"Raster scale 1-4, PNG only (default 2)."}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/html_to_markdown":{"post":{"summary":"html_to_markdown — Convert an HTML string to clean, LLM-ready Markdown. Handles headings, links, images, tables, lists and code blocks. Options: heading style (atx|setext), bullet list marker, code block style, emphasis delimiters.","x402":{"price_usd":0.001,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["html"],"properties":{"html":{"type":"string","description":"HTML source string to convert to Markdown"},"options":{"type":"object","description":"Conversion options (headingStyle, bulletListMarker, codeBlockStyle, emDelimiter, strongDelimiter)"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/qr_generator":{"post":{"summary":"qr_generator — Generate a QR code or barcode as an image (SVG or PNG). Returns a base64-encoded image (MCP content type image). Symbologies: qrcode/qr, code128, code39, ean13, ean8, upca, upce, isbn10, isbn13, issn, itf, gs1-128, databar.","x402":{"price_usd":0.001,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["format","data"],"properties":{"format":{"type":"string","enum":["qrcode","code128","code39","ean13","ean8","upca","upce","isbn10","isbn13","issn","itf","gs1-128","databar"],"description":"Barcode symbology; use qrcode (or qr) for QR codes"},"data":{"type":"string","description":"Data to encode (URL or text for QR; numeric for EAN/UPC)"},"type":{"type":"string","enum":["svg","png"],"description":"Output image format (default svg)"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/og_image_generator":{"post":{"summary":"og_image_generator — Generate an Open Graph social-card image (1200x630 PNG) from a title and description. Returns a base64-encoded image (MCP content type image). Optional image URL embeds a header graphic. Title truncated to 60 chars, description to 120.","x402":{"price_usd":0.001,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"Card title, max 60 chars"},"description":{"type":"string","description":"Card description, max 120 chars"},"image":{"type":"string","description":"Optional http(s) header image URL"}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/tools/jobs":{"post":{"summary":"jobs — Search live job postings by keywords and locations. Returns structured results: title, company, location, apply URL, work types, employment type, seniority, industry, salary, and description. Supports onsite/remote/hybrid preferences. One call covers the whole market for a keyword + location pair.","x402":{"price_usd":0.002,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["keywords"],"properties":{"keywords":{"type":"array","items":{"type":"string"},"description":"Search terms, e.g. ['software engineer', 'rust']"},"searches":{"type":"array","description":"Search criteria list: {location: string (city/region/country), work_type: 'onsite'|'remote'|'hybrid'|''}","items":{"type":"object","properties":{"location":{"type":"string"},"work_type":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Tool result"},"402":{"description":"x402 payment challenge"}}}},"/mcp":{"post":{"summary":"MCP JSON-RPC (initialize, tools/list, tools/call)","x402":{"price_usd":0.001,"asset":"USDC","network":"eip155:8453"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":"integer"},"method":{"const":"initialize"}},"required":["jsonrpc","id","method"]},{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":"integer"},"method":{"const":"tools/list"}},"required":["jsonrpc","id","method"]},{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":"integer"},"method":{"const":"tools/call"},"params":{"type":"object","properties":{"name":{"type":"string","enum":["markdown","token_price","wallet_portfolio","whale_alerts","cross_chain_balance","changelog_openapi","changelog_git","mermaid","html_to_markdown","qr_generator","og_image_generator","jobs"]},"arguments":{"type":"object"}},"required":["name"]}},"required":["jsonrpc","id","method","params"]}]}}}},"responses":{"200":{"description":"MCP JSON-RPC response"}}}},"/tools":{"get":{"summary":"Free tool registry"}},"/health":{"get":{"summary":"Health check"}}}}