{"price_usd":"0.001","network":"eip155:8453","prices":{"shortlink_create":"0.002","shortlink_stats":"0.001","markdown":"0.002","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.002","qr_generator":"0.002","og_image_generator":"0.002","jobs":"0.002","verify_semaphore":"0.002","verify_worldid":"0.005","verify_batch":"0.005","verify_stablecoin":"0.005","wallet_verify_siwe":"0.002","wallet_verify_nostr":"0.002","wallet_verify_solana":"0.002","wallet_checksum":"0.002","llm_chat":"0.002","pdf_to_markdown":"0.01","docx_to_markdown":"0.005","pptx_to_markdown":"0.005","xlsx_to_markdown":"0.005","epub_to_markdown":"0.005","document_to_markdown":"0.01"},"tools":[{"name":"shortlink_create","title":"Short Link Creator","description":"Create a permanent short link on freeq.one (e.g. https://freeq.one/MySlug). Optional: custom slug, expires_at (ISO date) for a TTL link that auto-expires — same price. Returns short_url plus a one-time manage_secret that gates FREE stats (GET /tools/shortlink_stats with X-Link-Secret) and FREE deletion of the link. Store the secret — it is shown only at creation.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Destination URL to shorten (http/https)","example":"https://imapp.blogspot.com/2026/08/uuid-generator-free-uuid-v4-v7-creator.html"},"slug":{"type":"string","description":"Optional custom slug (3-40 chars, a-z0-9-). Random if omitted.","example":"uuid-tool"},"expires_at":{"type":"string","description":"Optional ISO 8601 expiry; link 404s after this time. Omit for a permanent link.","example":"2027-01-01T00:00:00Z"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":false,"idempotentHint":false,"openWorldHint":false},"price_usd":"0.002"},{"name":"shortlink_stats","title":"Short Link Stats","description":"Click stats for a freeq.one short link: total clicks, last-30-day clicks, last click time. FREE for the link owner — pass the manage_secret returned at creation as the link_secret field. The paid call is for agents checking a link they did not create (liveness/traffic check).","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Slug of the short link (the part after freeq.one/)","example":"uuid-tool"},"link_secret":{"type":"string","description":"Optional manage_secret — when correct, stats are returned free of click-limit truncation and the call is still priced $0.001 (kept paid for agent verification flows)","example":"a7a7011bcaa56e6cf069d5a21fa6f932"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.001"},{"name":"markdown","title":"Markdown Extractor","description":"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.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL to fetch and convert","example":"https://en.wikipedia.org/wiki/Base_(blockchain)"},"options":{"type":"object","description":"Conversion options (output_format, css_selector, max_length, include_links, include_images)","example":{"max_length":20000}}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"token_price","title":"Token Price Lookup","description":"Get the live USD price of any token by symbol (e.g. BTC, ETH, SOL, PEPE).","inputSchema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string","description":"Token symbol, e.g. ETH","example":"ETH"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"wallet_portfolio","title":"Wallet Portfolio","description":"Get a complete wallet portfolio for an Ethereum address: native ETH balance, ERC-20 balances, NFT holdings, recent transfers.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address (0x-prefixed, 42 chars)","example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"include_tokens":{"type":"boolean","description":"Include ERC-20 balances (default true)","example":true},"include_nfts":{"type":"boolean","description":"Include NFT holdings (default false)","example":false},"include_transfers":{"type":"boolean","description":"Include recent transfers (default false)","example":false},"transfer_limit":{"type":"integer","description":"Max transfers (1-100, default 20)","example":20},"chain":{"type":"string","description":"Chain key: eth, arb, base, polygon, opt","example":"eth"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"whale_alerts","title":"Whale Alerts Scanner","description":"Scan recent blocks for large ETH transfers involving an address. Filter by direction (in/out/both) and threshold.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address to monitor","example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"direction":{"type":"string","description":"in, out, or both (default both)","example":"both"},"min_value_eth":{"type":"number","description":"Minimum ETH value threshold","example":100}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"cross_chain_balance","title":"Cross-Chain Balance Checker","description":"Aggregate native balance and token/NFT counts for an address across eth, arb, base, polygon, opt.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address","example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},"chains":{"type":"array","items":{"type":"string"},"description":"Chains to query: eth, arb, base, polygon, opt","example":["eth","base","arb"]}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"changelog_openapi","title":"OpenAPI Changelog Generator","description":"Diff two OpenAPI specs and generate a structured breaking-change changelog (no LLM — deterministic diff). Provide base_spec_url and new_spec.","inputSchema":{"type":"object","required":["new_spec"],"properties":{"base_spec_url":{"type":"string","description":"URL of the base (old) OpenAPI spec","example":"https://petstore3.swagger.io/api/v3/openapi.json"},"new_spec":{"type":"object","description":"New OpenAPI specification as a JSON object","example":{"openapi":"3.1.0","info":{"title":"My API v2","version":"2.0.0"},"paths":{}}}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"changelog_git","title":"Git Changelog Generator","description":"Diff git commits and generate a structured breaking-change changelog. Provide repository_url, base_commit, and optional target_commit.","inputSchema":{"type":"object","required":["repository_url","base_commit"],"properties":{"repository_url":{"type":"string","description":"Git repo URL (https)","example":"https://github.com/expressjs/express"},"base_commit":{"type":"string","description":"Base commit SHA","example":"04bb13b6c5a17b8c07aaac20a9ea4b1cbafa0e0d"},"target_commit":{"type":"string","description":"Head commit SHA (optional, defaults to repo HEAD)","example":"v4.21.2"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"mermaid","title":"Mermaid Diagram Renderer","description":"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).","inputSchema":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"Mermaid diagram source code, e.g. 'graph TD; A-->B'. Max 50000 chars.","example":"graph TD\n  A[Client] -->|402| B[x402 Gateway]\n  B -->|settle| C[USDC on Base]\n  B -->|forward| D[Upstream API]"},"format":{"type":"string","enum":["png","svg"],"description":"Output format (default png). SVG returns vector text.","example":"svg"},"theme":{"type":"string","enum":["default","dark","forest","neutral"],"description":"Mermaid theme (default 'default').","example":"default"},"scale":{"type":"number","description":"Raster scale 1-4, PNG only (default 2).","example":2}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"html_to_markdown","title":"HTML to Markdown Converter","description":"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.","inputSchema":{"type":"object","required":["html"],"properties":{"html":{"type":"string","description":"HTML source string to convert to Markdown","example":"<h1>Hello</h1><p>This is <b>rich text</b> being converted to <a href=\"https://example.com\">Markdown</a>.</p>"},"options":{"type":"object","description":"Conversion options (headingStyle, bulletListMarker, codeBlockStyle, emDelimiter, strongDelimiter)","example":{"headingStyle":"atx"}}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"qr_generator","title":"QR/Barcode Generator","description":"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.","inputSchema":{"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","example":"qrcode"},"data":{"type":"string","description":"Data to encode (URL or text for QR; numeric for EAN/UPC)","example":"https://x402.freeq.one"},"type":{"type":"string","enum":["svg","png"],"description":"Output image format (default svg)","example":"svg"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"og_image_generator","title":"OG Image Generator","description":"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.","inputSchema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"Card title, max 60 chars","example":"Jobs API — Pay Per Call"},"description":{"type":"string","description":"Card description, max 120 chars","example":"Search live job postings with USDC micro-payments on Base"},"image":{"type":"string","description":"Optional http(s) header image URL","example":"https://files.catbox.moe/x402-card.png"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"jobs","title":"Job Search","description":"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.","inputSchema":{"type":"object","required":["keywords"],"properties":{"keywords":{"type":"array","items":{"type":"string"},"description":"Search terms, e.g. ['software engineer', 'rust']","example":["software engineer"]},"searches":{"type":"array","description":"Search criteria list: {location: string (city/region/country), work_type: 'onsite'|'remote'|'hybrid'|''}","example":[{"location":"Berlin","work_type":"hybrid"}],"items":{"type":"object","properties":{"location":{"type":"string","example":"Berlin"},"work_type":{"type":"string","example":"hybrid"}}}}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"verify_semaphore","title":"Semaphore ZK Proof Verifier","description":"Verify a Semaphore ZK proof locally using Groth16 (embedded official vkey). No external dependency. Send the proof object from @semaphore-protocol/proof generateProof().","inputSchema":{"type":"object","required":["proof"],"properties":{"proof":{"type":"object","description":"Semaphore proof: { merkleTreeDepth, merkleTreeRoot, nullifier, message, scope, points }"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.002"},{"name":"verify_worldid","title":"World ID Proof Verifier","description":"Verify a World ID 4.0 proof via the Worldcoin Developer Portal API. Generates an RP signature server-side, then proxies the full IDKit proof to developer.world.org. Returns { valid, nullifier, worldcoin_response }.","inputSchema":{"type":"object","required":["proof"],"properties":{"proof":{"type":"object","description":"IDKit proof payload: { protocol_version, responses, action?, session_id? }"},"action":{"type":"string","description":"Action string (must match what IDKit used). Required for uniqueness proofs, omitted for session proofs."},"environment":{"type":"string","enum":["production","staging"],"description":"Worldcoin environment. Defaults to production."}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"verify_batch","title":"Batch Semaphore Proof Verifier","description":"Batch verify up to 10 Semaphore proofs in a single request. Returns per-proof results with total count and average duration.","inputSchema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","description":"Array of up to 10 Semaphore proof objects to verify","maxItems":10,"items":{"type":"object","properties":{"proof":{"type":"object","description":"Semaphore proof object"}}}}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"verify_stablecoin","title":"Stablecoin Issuer / GENIUS / Reserve Verifier","description":"Verify a stablecoin: issuer identity, GENIUS Act qualification status, and latest reserve attestation. Resolves the token from chain+address, a known symbol (USDC, USDT, PYUSD, USDS, FDUSD, USDe), or a tx hash. Free preview: preview=true validates the input and returns the issuer only — no payment required.","inputSchema":{"type":"object","properties":{"chain":{"type":"string","description":"Chain for address lookup: base (default), ethereum, arbitrum, optimism, polygon"},"address":{"type":"string","description":"Token contract address (0x + 40 hex). e.g. 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USDC on Base)"},"symbol":{"type":"string","description":"Known symbol: USDC, USDT, PYUSD, USDS, FDUSD, USDe (alternative to address)"},"tx_hash":{"type":"string","description":"Transaction hash — resolves the token contract from the tx's ERC-20 Transfer log"},"preview":{"type":"boolean","description":"true = free registry-only check: input validation + issuer identity, no on-chain calls, no attestation payload. No payment required."}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"wallet_verify_siwe","title":"SIWE Signature Verifier","description":"Verify a Sign-In-With-Ethereum (EIP-4361) signature. Stateless oracle: checks the signature against the message and returns the wallet address + chainId. Never mints sessions or consumes nonces. Get a checksummed address first via wallet_checksum.","inputSchema":{"type":"object","required":["message","signature"],"properties":{"message":{"type":"string","description":"EIP-4361 SIWE message (line 2 must be a checksummed address)"},"signature":{"type":"string","description":"0x-prefixed personal_sign signature over the exact message bytes"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"price_usd":"0.002"},{"name":"wallet_verify_nostr","title":"NIP-98 Nostr Auth Verifier","description":"Verify a NIP-98 Nostr HTTP auth event. Returns the signer pubkey. Stateful replay protection: each event id can only be verified once.","inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","description":"Base64-encoded NIP-98 event, or 'Nostr <base64>' Authorization header value"},"url":{"type":"string","description":"Expected u-tag URL (optional; defaults to the request URL)"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"price_usd":"0.002"},{"name":"wallet_verify_solana","title":"Solana Signature Verifier","description":"Verify an ed25519 Solana wallet signature over a message containing a 'Nonce: <value>' line. Returns the signer pubkey. Consumes the nonce — one verification per nonce.","inputSchema":{"type":"object","required":["pubkey","message","signature"],"properties":{"pubkey":{"type":"string","description":"Base58 Solana public key of the signer"},"message":{"type":"string","description":"Signed message containing a 'Nonce: <value>' line (get one via the /auth/solana/nonce endpoint pattern)"},"signature":{"type":"string","description":"Base58 ed25519 signature"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"price_usd":"0.002"},{"name":"wallet_checksum","title":"Ethereum Address Checksum","description":"Convert an Ethereum address to its EIP-55 checksummed form. SIWE messages require the checksummed address on line 2 before signing.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Ethereum address in any casing (0x...)","example":"0x90b0dc893406d6ea63bb077ed59f5e8340f98d84"}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"price_usd":"0.002"},{"name":"llm_chat","title":"LLM Chat","description":"Chat with a language model. OpenAI-compatible /v1/chat/completions interface. Supports 50+ models. Free models (auto, eco, premium) are $0 — paid models (gpt-5.2, claude-opus-5, deepseek-v4-pro, ...) are charged at cost. See /tools/llm_chat/models for the full model list and rates.","inputSchema":{"type":"object","required":["messages"],"properties":{"model":{"type":"string","description":"Model ID. Examples: auto/eco/premium (free, $0.002), openai/gpt-5.2, anthropic/claude-opus-5, google/gemini-3.1-pro, deepseek/deepseek-v4-pro. Short names accepted (gpt-5.2, claude-opus-5). See /tools for full list.","example":"auto"},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant"],"description":"Message role","example":"user"},"content":{"type":"string","description":"Message text content","example":"Say hello in one short sentence."}}},"description":"Conversation messages array","example":[{"role":"user","content":"Say hello in one short sentence."}]},"temperature":{"type":"number","description":"Sampling temperature 0-2 (default 0.7)","example":0.7},"max_tokens":{"type":"integer","description":"Maximum tokens to generate (default 1024, max 4096). Lower values reduce cost for paid models.","example":256}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":false,"idempotentHint":false,"openWorldHint":true},"price_usd":"0.002"},{"name":"pdf_to_markdown","title":"PDF to Markdown","description":"Convert a PDF document to clean, LLM-ready Markdown. Provide a direct URL to the PDF or base64-encoded file bytes. Auto-extracts headings, paragraphs, lists and tables. Ideal for feeding reports, papers and contracts into RAG pipelines.","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"Direct URL to the PDF document","example":"https://x402.freeq.one/samples/report.pdf"},"file_b64":{"type":"string","description":"Base64-encoded PDF bytes (alternative to url)","maxLength":28000000},"max_length":{"type":"integer","description":"Truncate output to N characters","example":100000}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.01"},{"name":"docx_to_markdown","title":"DOCX to Markdown","description":"Convert a DOCX (Word) document to clean, LLM-ready Markdown. Provide a direct URL or base64-encoded file bytes. Preserves headings, lists, tables and formatting. Works for contracts, resumes, reports and letters.","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"Direct URL to the DOCX file","example":"https://x402.freeq.one/samples/contract.docx"},"file_b64":{"type":"string","description":"Base64-encoded DOCX bytes (alternative to url)","maxLength":28000000},"max_length":{"type":"integer","description":"Truncate output to N characters","example":100000}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"pptx_to_markdown","title":"PPTX to Markdown","description":"Convert a PPTX (PowerPoint) presentation to Markdown. Provide a direct URL or base64-encoded file bytes. Each slide becomes a heading with its text content — pitch decks and slide reports become LLM-readable text.","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"Direct URL to the PPTX file","example":"https://x402.freeq.one/samples/deck.pptx"},"file_b64":{"type":"string","description":"Base64-encoded PPTX bytes (alternative to url)","maxLength":28000000},"max_length":{"type":"integer","description":"Truncate output to N characters","example":100000}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"xlsx_to_markdown","title":"XLSX/CSV to Markdown + JSON","description":"Convert an XLSX spreadsheet or CSV to Markdown table AND a JSON array of row objects in one call. Provide a direct URL or base64-encoded file bytes. All sheets are included; multi-sheet workbooks are flattened in sheet order.","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"Direct URL to the XLSX or CSV file","example":"https://x402.freeq.one/samples/data.xlsx"},"file_b64":{"type":"string","description":"Base64-encoded XLSX/CSV bytes (alternative to url)","maxLength":28000000},"max_length":{"type":"integer","description":"Truncate the markdown output to N characters (JSON rows unaffected)","example":50000}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"epub_to_markdown","title":"EPUB to Markdown","description":"Convert an EPUB e-book to clean Markdown. Provide a direct URL or base64-encoded file bytes. Chapters become headings; metadata (title, author) is included. Feed whole books into LLM context or RAG.","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"Direct URL to the EPUB file","example":"https://x402.freeq.one/samples/book.epub"},"file_b64":{"type":"string","description":"Base64-encoded EPUB bytes (alternative to url)","maxLength":28000000},"max_length":{"type":"integer","description":"Truncate output to N characters","example":200000}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.005"},{"name":"document_to_markdown","title":"Document to Markdown (auto-detect)","description":"Convert any document to Markdown with automatic format detection. One endpoint for pdf, docx, pptx, xlsx, csv, epub, html and plain text — provide a URL or base64 bytes and the type is detected from the file contents. Spreadsheets return both a Markdown table and a JSON array of rows.","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"Direct URL to any supported document (pdf, docx, pptx, xlsx, csv, epub, html, text)","example":"https://x402.freeq.one/samples/report.pdf"},"file_b64":{"type":"string","description":"Base64-encoded document bytes (alternative to url)","maxLength":28000000},"max_length":{"type":"integer","description":"Truncate output to N characters","example":100000}}},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"data":{"type":"object"},"meta":{"type":"object","properties":{"format":{"type":"string"}}}},"required":["ok","tool","data"]},"annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":true},"price_usd":"0.01"},{"name":"giftcard_buy","title":"Gift Card Buy","description":"Buy a digital gift card and receive the code instantly. The price is returned in the 402 Payment-Required challenge before you sign (face value + fee). Stock is fulfilled from pre-purchased inventory first; otherwise sourced on demand. Payment settles on Base via x402.","inputSchema":{"type":"object","required":["product_id","email"],"properties":{"product_id":{"type":"string","description":"Gift card product id, e.g. foot-locker-usa. List available at /tools/giftcard/api/products."},"value":{"type":"number","description":"Face value in the product's currency (e.g. 25 for a $25 card). Optional if the product has a fixed denomination."},"email":{"type":"string","description":"Delivery email for the gift card code."}}},"outputSchema":null,"annotations":{"readOnlyHint":false,"idempotentHint":false,"openWorldHint":false},"price_usd":"dynamic","price_display":"face value + fee (min $0.01, max $50.25)","endpoint":"/tools/giftcard/api/buy"},{"name":"webhook_catch","title":"Webhook Catch","description":"Ephemeral webhook receiver. Creates a single-use HTTPS URL that catches any POST (Stripe, GitHub, internal) for 1 hour — webhook senders need no payment, the receiver stores up to 100 events. Read captured events for $0.01 per read, extend the hook for $0.05/hour. In-memory storage, auto-deletes on expiry. Perfect for agent integration testing.","inputSchema":{"type":"object","properties":{"ttl_minutes":{"type":"number","description":"Hook lifetime in minutes (5–1440). Default 60."}}},"outputSchema":null,"annotations":{"readOnlyHint":false,"idempotentHint":false,"openWorldHint":false},"price_usd":"0.05","price_display":"$0.05/create, $0.01/read, $0.05/hr extend","endpoint":"/tools/webhook_catch"}]}