{
  "openapi": "3.1.0",
  "info": {
    "title": "MoneyTools Tools",
    "version": "1.1.0",
    "description": "89 small, cheap, read-only tools for AI agents: on-chain data and wallet safety (token safety, approvals, tx/calldata decoding, EIP-712 risk, NFT, Safe multisig, contract reads, logs, balances, BTC/Solana), DeFi math (APY, vesting, liquidation, impermanent loss, loans), web/domain checks (HTTP, DNS, SSL, security headers, SPF/DMARC, sitemaps, feeds, broken links, phishing look-alikes), agent-protocol validators (x402, MCP, OpenAPI, llms.txt, A2A), developer/text utilities, validators (phone, IBAN, card Luhn, Taiwan ID) and TW/US calendars. Run by MoneyTools (moneytools.dev). Each tool has a free daily tier; after that it costs the listed price per successful call via x402 (USDC on Base, paid to the MoneyTools team wallet) or 1 prepaid MoneyTools credit. Failed calls are never charged. All tools are read-only: we never sign, send or hold funds or keys. Third-party data (public RPCs, Sourcify, DefiLlama, KyberSwap quotes, LI.FI status, mempool.space, ethereum-lists, Cert Spotter/crt.sh, RDAP, public DNS resolvers, ECB/Frankfurter, ExchangeRate-API, Taiwan government open calendar) is attributed in responses; not financial advice."
  },
  "servers": [
    {
      "url": "https://tools.moneytools.dev"
    }
  ],
  "paths": {
    "/v1/token-safety": {
      "get": {
        "operationId": "token_safety_check",
        "summary": "Token safety round-trip check",
        "description": "Before buying an ERC-20: simulates USDC→token→USDC with aggregator quotes and reads the contract (owner, proxy, paused, supply). Flags no-sell-route (honeypot pattern), high round-trip loss (tax / thin liquidity). Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "ERC-20 contract address",
            "schema": {
              "type": "string",
              "example": "0x4200000000000000000000000000000000000006"
            }
          },
          {
            "name": "usd",
            "in": "query",
            "required": false,
            "description": "test size in USD, 1-5000 (default 10)",
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/v1/address": {
      "get": {
        "operationId": "address_profile",
        "summary": "Address profile (7 chains)",
        "description": "Profile an EVM address or ENS name across Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche: EOA vs contract vs EIP-7702 delegated, nonce, native balances in USD, primary ENS name, known-contract label. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "0x address or ENS name",
            "schema": {
              "type": "string",
              "example": "vitalik.eth"
            }
          },
          {
            "name": "chains",
            "in": "query",
            "required": false,
            "description": "comma list to limit chains (default all 7)",
            "schema": {
              "type": "string",
              "example": "ethereum,base"
            }
          }
        ]
      }
    },
    "/v1/ens": {
      "get": {
        "operationId": "ens_resolve",
        "summary": "ENS resolve / reverse",
        "description": "Resolve an ENS name to an address (+ url/avatar/twitter/github records, optional L2 addresses), or an address to its primary ENS name with forward verification. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "ENS name (or pass address)",
            "schema": {
              "type": "string",
              "example": "vitalik.eth"
            }
          },
          {
            "name": "address",
            "in": "query",
            "required": false,
            "description": "0x address for reverse lookup",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chains",
            "in": "query",
            "required": false,
            "description": "also resolve ENSIP-11 addresses on these chains",
            "schema": {
              "type": "string",
              "example": "base"
            }
          }
        ]
      }
    },
    "/v1/gas": {
      "get": {
        "operationId": "gas_compare",
        "summary": "Multi-chain gas estimator",
        "description": "Current gas on 7 EVM chains: base fee, priority fee, suggested maxFee, and the USD cost of a transfer, ERC-20 transfer, approve and DEX swap. Tells you the cheapest chain right now. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chains",
            "in": "query",
            "required": false,
            "description": "comma list (default all 7)",
            "schema": {
              "type": "string",
              "example": "base,ethereum,arbitrum"
            }
          }
        ]
      }
    },
    "/v1/token": {
      "get": {
        "operationId": "erc20_info",
        "summary": "ERC-20 token facts + balance",
        "description": "Name, symbol, decimals, total supply, owner, paused, upgradeable-proxy detection and (optional) a holder's balance for any ERC-20. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain name",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "ERC-20 contract address",
            "schema": {
              "type": "string",
              "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
            }
          },
          {
            "name": "holder",
            "in": "query",
            "required": false,
            "description": "address to read the balance of",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/allowances": {
      "get": {
        "operationId": "allowance_revoke_plan",
        "summary": "Token approvals + revoke plan",
        "description": "Find risky ERC-20 approvals for a wallet (default: common tokens × 20 well-known routers/spenders, or your own lists) and get UNSIGNED approve(spender,0) revoke transactions. Read-only. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain name",
            "schema": {
              "type": "string",
              "example": "ethereum"
            }
          },
          {
            "name": "owner",
            "in": "query",
            "required": true,
            "description": "wallet address",
            "schema": {
              "type": "string",
              "example": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
            }
          },
          {
            "name": "tokens",
            "in": "query",
            "required": false,
            "description": "comma list of token addresses or symbols (USDC,USDT,...)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "spenders",
            "in": "query",
            "required": false,
            "description": "comma list of spender addresses",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/tx": {
      "get": {
        "operationId": "tx_explain",
        "summary": "Transaction explainer",
        "description": "Explain a transaction in plain words: status, fee in USD, decoded method and arguments, token/NFT transfers, approvals (incl. unlimited / setApprovalForAll), other events. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain name",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "hash",
            "in": "query",
            "required": true,
            "description": "0x transaction hash",
            "schema": {
              "type": "string",
              "example": "0x8a294a941c5f95e36bb69ac788206291baa09460f9e88a495c94570c74e158e9"
            }
          }
        ]
      }
    },
    "/v1/calldata": {
      "get": {
        "operationId": "calldata_decode",
        "summary": "Calldata decoder",
        "description": "Decode raw EVM calldata before signing: function name and typed arguments via the open Sourcify signature DB (or your ABI / signature), plus a plain-language meaning for risky selectors (approve, setApprovalForAll, permit...). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "data",
            "in": "query",
            "required": true,
            "description": "0x calldata",
            "schema": {
              "type": "string",
              "example": "0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
            }
          },
          {
            "name": "signature",
            "in": "query",
            "required": false,
            "description": "e.g. transfer(address,uint256)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/abi": {
      "get": {
        "operationId": "contract_abi",
        "summary": "Verified contract ABI",
        "description": "Fetch a verified contract's ABI from Sourcify (open data) with proxy resolution: implementation ABI merged, function and event signature lists. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain name",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "contract address",
            "schema": {
              "type": "string",
              "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
            }
          },
          {
            "name": "full",
            "in": "query",
            "required": false,
            "description": "true = include the full ABI JSON",
            "schema": {
              "type": "string",
              "example": "false"
            }
          }
        ]
      }
    },
    "/v1/verify-signature": {
      "get": {
        "operationId": "signature_verify",
        "summary": "Signature verifier (EOA + smart wallets)",
        "description": "Verify a personal_sign message or EIP-712 typed-data signature against an address, including smart-contract wallets (ERC-1271 / ERC-6492). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "expected signer (0x address)",
            "schema": {
              "type": "string",
              "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
            }
          },
          {
            "name": "signature",
            "in": "query",
            "required": true,
            "description": "0x signature (65+ bytes hex)",
            "schema": {
              "type": "string",
              "example": "0x63f1769398941dfea46d40d30c729a55e1bee0f000781ade7ac775b759dce0d55c404e2b015ce2f08893cad56457c4e3a77e01f6bd9a0b00ebe162c7b603aa511b"
            }
          },
          {
            "name": "message",
            "in": "query",
            "required": false,
            "description": "signed text (personal_sign)",
            "schema": {
              "type": "string",
              "example": "Sign in to MoneyTools example"
            }
          },
          {
            "name": "typedData",
            "in": "query",
            "required": false,
            "description": "EIP-712 JSON instead of message (JSON-encoded string)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chain",
            "in": "query",
            "required": false,
            "description": "chain for smart-wallet checks (default base)",
            "schema": {
              "type": "string",
              "example": "base"
            }
          }
        ]
      }
    },
    "/v1/typed-data-risk": {
      "get": {
        "operationId": "typed_data_risk",
        "summary": "EIP-712 signature risk check",
        "description": "Before an agent signs EIP-712 data: identifies Permit / Permit2 / EIP-3009 (x402) / Seaport / CoW / delegation messages, explains them in one sentence and flags unlimited amounts, far deadlines, unknown spenders and NFT-drain listings. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "typedData",
            "in": "query",
            "required": true,
            "description": "EIP-712 JSON {domain, types, primaryType, message} (object in a POST body, or a JSON string in the query) (JSON-encoded string)",
            "schema": {
              "type": "string",
              "example": "{\"domain\":{\"name\":\"USD Coin\",\"version\":\"2\",\"chainId\":8453,\"verifyingContract\":\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"},\"types\":{\"Permit\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\"}]},\"primaryType\":\"Permit\",\"message\":{\"owner\":\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\",\"spender\":\"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\"value\":\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\"nonce\":\"0\",\"deadline\":\"1893456000\"}}"
            }
          },
          {
            "name": "expectedChainId",
            "in": "query",
            "required": false,
            "description": "flag if the domain chainId differs",
            "schema": {
              "type": "string",
              "example": "8453"
            }
          }
        ]
      }
    },
    "/v1/x402-validate": {
      "get": {
        "operationId": "x402_validate",
        "summary": "x402 endpoint validator",
        "description": "Lint any x402 paid endpoint like a client would: 402 status, PAYMENT-REQUIRED header decode, CAIP-2 network, integer amount, payTo/asset, EIP-712 domain extra, CORS expose headers, bazaar discovery, /.well-known/x402. Score + fixes. Unpaid request only. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "https URL of the paid endpoint",
            "schema": {
              "type": "string",
              "example": "https://api.moneytools.dev/v1/precheck"
            }
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "description": "GET (default) or POST",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/http-check": {
      "get": {
        "operationId": "http_inspect",
        "summary": "HTTP / API inspector",
        "description": "Fetch a URL and report status, redirect chain, latency, size, cache headers, CORS, parsed rate-limit headers (RateLimit-*, X-RateLimit-*, Retry-After) and a security-headers grade. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "http(s) URL",
            "schema": {
              "type": "string",
              "example": "https://api.github.com"
            }
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "description": "GET (default) or HEAD",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/meta": {
      "get": {
        "operationId": "url_metadata",
        "summary": "Page metadata / Open Graph",
        "description": "Title, description, canonical, language, favicon, Open Graph + Twitter card, JSON-LD types, feeds, word count and what's missing for link previews. Metadata only, not page content. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "page URL",
            "schema": {
              "type": "string",
              "example": "https://github.com"
            }
          }
        ]
      }
    },
    "/v1/dns": {
      "get": {
        "operationId": "dns_lookup",
        "summary": "DNS + email-auth lookup",
        "description": "A/AAAA/CNAME/MX/TXT/NS/CAA (or chosen types) via DNS-over-HTTPS, DNSSEC flag, SPF/DMARC/DKIM detection and common misconfigurations. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "hostname",
            "schema": {
              "type": "string",
              "example": "moneytools.dev"
            }
          },
          {
            "name": "types",
            "in": "query",
            "required": false,
            "description": "comma list, e.g. A,MX,TXT",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/domain": {
      "get": {
        "operationId": "domain_rdap",
        "summary": "Domain registration (RDAP)",
        "description": "Registrar, creation/expiry dates, age in days, status codes, nameservers and DNSSEC from RDAP; flags very new domains (phishing signal) and near expiry. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "domain name",
            "schema": {
              "type": "string",
              "example": "moneytools.dev"
            }
          }
        ]
      }
    },
    "/v1/robots": {
      "get": {
        "operationId": "robots_check",
        "summary": "robots.txt / AI-crawler check",
        "description": "May this user agent fetch this URL? RFC 9309 evaluation of robots.txt with the matching rule, crawl-delay, sitemaps, llms.txt presence and an allow/deny table for 12 AI crawlers. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "page URL",
            "schema": {
              "type": "string",
              "example": "https://www.nytimes.com/section/world"
            }
          },
          {
            "name": "userAgent",
            "in": "query",
            "required": false,
            "description": "user agent token (default *)",
            "schema": {
              "type": "string",
              "example": "GPTBot"
            }
          }
        ]
      }
    },
    "/v1/json-validate": {
      "post": {
        "operationId": "json_schema_validate",
        "summary": "JSON Schema validator",
        "description": "Validate JSON data against a JSON Schema (draft 4, 7, 2019-09, 2020-12) and get precise error paths. Use it to check tool outputs or API payloads. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "schema",
                  "data"
                ],
                "properties": {
                  "schema": {
                    "description": "JSON Schema"
                  },
                  "data": {
                    "description": "JSON value to validate"
                  },
                  "draft": {
                    "description": "4 | 7 | 2019-09 | 2020-12 (default)",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/time": {
      "get": {
        "operationId": "time_convert",
        "summary": "Time-zone converter & date math",
        "description": "op=now|convert|diff|add: current time in many zones, convert a local time between IANA zones (DST-aware), difference incl. business days, add ISO-8601 durations. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "op",
            "in": "query",
            "required": false,
            "description": "now | convert | diff | add",
            "schema": {
              "type": "string",
              "example": "convert"
            }
          },
          {
            "name": "datetime",
            "in": "query",
            "required": false,
            "description": "ISO 8601 or unix",
            "schema": {
              "type": "string",
              "example": "2026-11-04T09:00"
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "source IANA zone (default UTC)",
            "schema": {
              "type": "string",
              "example": "Asia/Taipei"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "target zones, comma list",
            "schema": {
              "type": "string",
              "example": "America/New_York,UTC"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "end datetime for diff",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "add",
            "in": "query",
            "required": false,
            "description": "ISO duration for add, e.g. P1DT2H",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/cron": {
      "get": {
        "operationId": "cron_next_runs",
        "summary": "Cron next-run calculator",
        "description": "Next N run times of a 5-field cron expression (or @daily etc.) in any IANA time zone, with a plain-language description. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "expression",
            "in": "query",
            "required": true,
            "description": "cron expression",
            "schema": {
              "type": "string",
              "example": "0 20 * * 1-5"
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA zone (default UTC)",
            "schema": {
              "type": "string",
              "example": "Asia/Taipei"
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "1-50 (default 5)",
            "schema": {
              "type": "string",
              "example": "5"
            }
          }
        ]
      }
    },
    "/v1/fx": {
      "get": {
        "operationId": "currency_convert",
        "summary": "Currency converter",
        "description": "Convert fiat amounts with daily reference rates (ECB via Frankfurter; other currencies e.g. TWD from ExchangeRate-API open access, attributed). Not tradable quotes. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "ISO 4217 code",
            "schema": {
              "type": "string",
              "example": "USD"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "one or more codes, comma list",
            "schema": {
              "type": "string",
              "example": "TWD,EUR"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "default 1",
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/v1/units": {
      "get": {
        "operationId": "unit_convert",
        "summary": "Unit converter",
        "description": "Length, mass, volume, area (incl. 坪/ping), speed, time, data (KB vs KiB), energy, pressure, temperature and exact wei/gwei/ETH conversion. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "number",
            "schema": {
              "type": "string",
              "example": "1.5"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "unit",
            "schema": {
              "type": "string",
              "example": "eth"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "unit",
            "schema": {
              "type": "string",
              "example": "gwei"
            }
          }
        ]
      }
    },
    "/v1/encode": {
      "get": {
        "operationId": "hash_encode",
        "summary": "Hash / encode / decode",
        "description": "sha256/sha1/sha512/md5/keccak256, function selector, HMAC-SHA256, base64(url), hex, URL encoding, UUIDs, JWT decode (unverified), EVM checksum address. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "op",
            "in": "query",
            "required": true,
            "description": "operation, e.g. sha256, keccak256, selector, base64-decode, jwt-decode",
            "schema": {
              "type": "string",
              "example": "selector"
            }
          },
          {
            "name": "input",
            "in": "query",
            "required": false,
            "description": "input text",
            "schema": {
              "type": "string",
              "example": "transfer(address,uint256)"
            }
          },
          {
            "name": "inputEncoding",
            "in": "query",
            "required": false,
            "description": "utf8 (default) | hex | base64",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": false,
            "description": "HMAC key",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/qr": {
      "get": {
        "operationId": "qr_payment_link",
        "summary": "QR code + crypto payment link",
        "description": "SVG QR code for any text/URL, or build an EIP-681 payment link + QR for a token amount to an address (for an agent asking a human to pay). We never receive the funds. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "util"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "text or URL to encode",
            "schema": {
              "type": "string",
              "example": "https://moneytools.dev"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "recipient 0x address (payment-link mode)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chain",
            "in": "query",
            "required": false,
            "description": "chain (default base)",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "description": "USDC (default), native symbol, USDT...",
            "schema": {
              "type": "string",
              "example": "USDC"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "human amount",
            "schema": {
              "type": "string",
              "example": "1.5"
            }
          }
        ]
      }
    },
    "/v1/nft": {
      "get": {
        "operationId": "nft_metadata",
        "summary": "NFT metadata + owner",
        "description": "ERC-721/1155 token: standard, collection name, owner, tokenURI resolved (IPFS/Arweave/data URI) and the metadata JSON with image URL; says whether metadata is on-chain, IPFS or a mutable server. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "ethereum"
            }
          },
          {
            "name": "contract",
            "in": "query",
            "required": true,
            "description": "NFT contract",
            "schema": {
              "type": "string",
              "example": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"
            }
          },
          {
            "name": "tokenId",
            "in": "query",
            "required": true,
            "description": "token id",
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/v1/tx-status": {
      "get": {
        "operationId": "tx_status",
        "summary": "Transaction status + confirmations",
        "description": "Is my transaction pending, confirmed, reverted or not found? Confirmations and a per-chain finality hint. Cheap polling for agents waiting on a tx. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "hash",
            "in": "query",
            "required": true,
            "description": "0x tx hash",
            "schema": {
              "type": "string",
              "example": "0x8a294a941c5f95e36bb69ac788206291baa09460f9e88a495c94570c74e158e9"
            }
          }
        ]
      }
    },
    "/v1/block-at-time": {
      "get": {
        "operationId": "block_at_time",
        "summary": "Block number at a timestamp",
        "description": "Find the last block at or before a date/time on any of 7 EVM chains (interpolation search). For historical balance queries, snapshots and log ranges. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "timestamp",
            "in": "query",
            "required": true,
            "description": "unix seconds or ISO 8601",
            "schema": {
              "type": "string",
              "example": "2026-11-01T00:00:00Z"
            }
          }
        ]
      }
    },
    "/v1/rpc-health": {
      "get": {
        "operationId": "rpc_health",
        "summary": "Public RPC health & latency",
        "description": "Probe the keyless public RPC endpoints of 7 EVM chains right now: up/down, latency, head block, lag. Returns the recommended RPC per chain. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chains",
            "in": "query",
            "required": false,
            "description": "comma list (default all 7)",
            "schema": {
              "type": "string",
              "example": "base,ethereum"
            }
          }
        ]
      }
    },
    "/v1/chain-info": {
      "get": {
        "operationId": "chain_info",
        "summary": "Chain registry lookup",
        "description": "Chain id → name, native currency, public RPCs, explorers, CAIP-2 id and a ready wallet_addEthereumChain object (ethereum-lists/chains, CC0). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chainId",
            "in": "query",
            "required": true,
            "description": "numeric chain id or common name",
            "schema": {
              "type": "string",
              "example": "8453"
            }
          }
        ]
      }
    },
    "/v1/stablecoin-peg": {
      "get": {
        "operationId": "stablecoin_peg",
        "summary": "Stablecoin peg monitor",
        "description": "Current price and deviation in bps for 15 major stablecoins (USDT, USDC, DAI, USDS, USDe, PYUSD, FDUSD, EURC...) with on_peg / watch / depeg status. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "symbols",
            "in": "query",
            "required": false,
            "description": "comma list (default all)",
            "schema": {
              "type": "string",
              "example": "USDC,USDT,USDE"
            }
          }
        ]
      }
    },
    "/v1/bridge-status": {
      "get": {
        "operationId": "bridge_status",
        "summary": "Cross-chain transfer status",
        "description": "Track a bridge transfer by its source tx hash: pending / done / failed, bridge used, sending and receiving tx with amounts (LI.FI public status API). Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "hash",
            "in": "query",
            "required": true,
            "description": "source-chain tx hash",
            "schema": {
              "type": "string",
              "example": "0xe4132a8d8083f5b8a0ba101c06c8885dfd6a7a31ae5c0908e23c03d2e085d836"
            }
          },
          {
            "name": "fromChain",
            "in": "query",
            "required": false,
            "description": "source chain (speeds up lookup)",
            "schema": {
              "type": "string",
              "example": "arbitrum"
            }
          }
        ]
      }
    },
    "/v1/dex-price": {
      "get": {
        "operationId": "dex_price",
        "summary": "Token price from DEX quotes",
        "description": "Executable-style price of any ERC-20 in USDC from DEX aggregator quotes (KyberSwap, quote only), price impact at a chosen size, route DEXes and deviation vs DefiLlama reference. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "ERC-20 address",
            "schema": {
              "type": "string",
              "example": "0x4200000000000000000000000000000000000006"
            }
          },
          {
            "name": "sizeUsd",
            "in": "query",
            "required": false,
            "description": "size for impact check (default 1000)",
            "schema": {
              "type": "string",
              "example": "1000"
            }
          }
        ]
      }
    },
    "/v1/safe": {
      "get": {
        "operationId": "safe_multisig_info",
        "summary": "Safe multisig inspector",
        "description": "Is this address a Safe multisig? Owners, threshold (m-of-n), nonce, version, enabled modules, guard, fallback handler, plus risk warnings (1-of-n, modules). Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "ethereum"
            }
          },
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "Safe address",
            "schema": {
              "type": "string",
              "example": "0x164cb3676F4A465403F269730F0B4dE0E9D47298"
            }
          }
        ]
      }
    },
    "/v1/contract-read": {
      "get": {
        "operationId": "contract_read",
        "summary": "Read any contract (eth_call)",
        "description": "Call any view function with a human signature and args, e.g. balanceOf(address) returns (uint256); decoded result. Optional historical block. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "contract",
            "schema": {
              "type": "string",
              "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
            }
          },
          {
            "name": "signature",
            "in": "query",
            "required": true,
            "description": "function signature with returns",
            "schema": {
              "type": "string",
              "example": "balanceOf(address) returns (uint256)"
            }
          },
          {
            "name": "args",
            "in": "query",
            "required": false,
            "description": "comma list or JSON array",
            "schema": {
              "type": "string",
              "example": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
            }
          },
          {
            "name": "block",
            "in": "query",
            "required": false,
            "description": "block number (default latest)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/abi-encode": {
      "get": {
        "operationId": "abi_encode",
        "summary": "ABI-encode calldata",
        "description": "Build calldata from a function signature and arguments (selector + encoded args). Unsigned bytes only, for agents preparing a tx for a human or wallet to review. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "signature",
            "in": "query",
            "required": true,
            "description": "function signature",
            "schema": {
              "type": "string",
              "example": "transfer(address,uint256)"
            }
          },
          {
            "name": "args",
            "in": "query",
            "required": true,
            "description": "comma list or JSON array",
            "schema": {
              "type": "string",
              "example": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045,1000000"
            }
          }
        ]
      }
    },
    "/v1/proxy": {
      "get": {
        "operationId": "proxy_inspect",
        "summary": "Proxy / upgradeability inspector",
        "description": "Is this contract upgradeable? Detects EIP-1967 (impl/admin/beacon), EIP-1167 clones, legacy OZ and Safe-style proxies and EIP-7702 delegated EOAs; returns implementation and admin. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "contract address",
            "schema": {
              "type": "string",
              "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
            }
          }
        ]
      }
    },
    "/v1/logs": {
      "get": {
        "operationId": "event_logs",
        "summary": "Contract event logs (decoded)",
        "description": "Recent events of a contract (≤5000 blocks), decoded with your event signature or automatically via the open Sourcify signature DB. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "contract",
            "schema": {
              "type": "string",
              "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
            }
          },
          {
            "name": "event",
            "in": "query",
            "required": false,
            "description": "event signature",
            "schema": {
              "type": "string",
              "example": "Transfer(address indexed from, address indexed to, uint256 value)"
            }
          },
          {
            "name": "blocks",
            "in": "query",
            "required": false,
            "description": "look-back blocks (default 1000, max 5000)",
            "schema": {
              "type": "string",
              "example": "10"
            }
          },
          {
            "name": "fromBlock",
            "in": "query",
            "required": false,
            "description": "start block",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toBlock",
            "in": "query",
            "required": false,
            "description": "end block",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "max logs 1-100",
            "schema": {
              "type": "string",
              "example": "20"
            }
          }
        ]
      }
    },
    "/v1/token-balances": {
      "get": {
        "operationId": "token_balances",
        "summary": "Wallet token balances",
        "description": "Native + ERC-20 balances for a wallet in one multicall: major tokens on the chain by default or your own list of token addresses/symbols. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "owner",
            "in": "query",
            "required": true,
            "description": "wallet address",
            "schema": {
              "type": "string",
              "example": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
            }
          },
          {
            "name": "tokens",
            "in": "query",
            "required": false,
            "description": "comma list of addresses or symbols",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/ens-available": {
      "get": {
        "operationId": "ens_available",
        "summary": "ENS name availability",
        "description": "Is name.eth available? Registered / grace period / available, expiry date, yearly base price and registration link. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "description": "label or label.eth",
            "schema": {
              "type": "string",
              "example": "moneytools"
            }
          }
        ]
      }
    },
    "/v1/vault": {
      "get": {
        "operationId": "erc4626_vault",
        "summary": "ERC-4626 vault reader",
        "description": "Yield vault facts: underlying asset, total assets, share price (assets per share), deposits open, and a holder's position. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "chain",
            "in": "query",
            "required": true,
            "description": "chain: base, ethereum, arbitrum, optimism, polygon, bsc, avalanche",
            "schema": {
              "type": "string",
              "example": "base"
            }
          },
          {
            "name": "vault",
            "in": "query",
            "required": true,
            "description": "ERC-4626 vault address",
            "schema": {
              "type": "string",
              "example": "0xbeeF010f9cb27031ad51e3333f9aF9C6B1228183"
            }
          },
          {
            "name": "holder",
            "in": "query",
            "required": false,
            "description": "holder address",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/address-validate": {
      "get": {
        "operationId": "address_validate",
        "summary": "Multi-chain address validator",
        "description": "Which network is this address for, and is it well-formed? EVM checksum, Bitcoin (legacy/P2SH/SegWit/Taproot), Litecoin, Dogecoin, Tron, Solana, Cosmos bech32, TON. Catches typos before sending. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "any crypto address",
            "schema": {
              "type": "string",
              "example": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
            }
          }
        ]
      }
    },
    "/v1/sol-account": {
      "get": {
        "operationId": "solana_account",
        "summary": "Solana account + token balances",
        "description": "SOL balance (USD), account type (wallet/program), and SPL + Token-2022 balances for any Solana address via public RPC. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "Solana address",
            "schema": {
              "type": "string",
              "example": "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
            }
          }
        ]
      }
    },
    "/v1/btc-address": {
      "get": {
        "operationId": "btc_address",
        "summary": "Bitcoin address balance",
        "description": "Confirmed and pending BTC balance (USD), tx count, address type and reuse for any Bitcoin address (mempool.space public API). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "BTC address",
            "schema": {
              "type": "string",
              "example": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
            }
          }
        ]
      }
    },
    "/v1/btc-fees": {
      "get": {
        "operationId": "btc_fees",
        "summary": "Bitcoin fee estimator",
        "description": "Recommended sat/vB for next block, 30 min, 1 hour and economy, and what your transaction will cost in sats and USD. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "onchain"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "vbytes",
            "in": "query",
            "required": false,
            "description": "tx size in vB (default 141)",
            "schema": {
              "type": "string",
              "example": "141"
            }
          }
        ]
      }
    },
    "/v1/vesting": {
      "get": {
        "operationId": "vesting_schedule",
        "summary": "Token vesting calculator",
        "description": "Cliff + linear vesting with optional TGE unlock: vested/unvested on any date and the monthly unlock schedule. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "defi"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "total",
            "in": "query",
            "required": true,
            "description": "total tokens",
            "schema": {
              "type": "string",
              "example": "1000000"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "vesting start date",
            "schema": {
              "type": "string",
              "example": "2026-01-01"
            }
          },
          {
            "name": "durationMonths",
            "in": "query",
            "required": true,
            "description": "total months",
            "schema": {
              "type": "string",
              "example": "36"
            }
          },
          {
            "name": "cliffMonths",
            "in": "query",
            "required": false,
            "description": "cliff months",
            "schema": {
              "type": "string",
              "example": "12"
            }
          },
          {
            "name": "tgePercent",
            "in": "query",
            "required": false,
            "description": "% unlocked at start",
            "schema": {
              "type": "string",
              "example": "10"
            }
          },
          {
            "name": "at",
            "in": "query",
            "required": false,
            "description": "date to evaluate (default today)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/apy": {
      "get": {
        "operationId": "apr_apy",
        "summary": "APR ↔ APY & compounding",
        "description": "Convert APR to APY (or back) for any compounding frequency, project earnings over N days with optional performance fee, doubling time. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "defi"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "apr",
            "in": "query",
            "required": false,
            "description": "APR %",
            "schema": {
              "type": "string",
              "example": "12"
            }
          },
          {
            "name": "apy",
            "in": "query",
            "required": false,
            "description": "APY % (instead of apr)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "compounding",
            "in": "query",
            "required": false,
            "description": "daily|weekly|monthly|hourly|block or times/year",
            "schema": {
              "type": "string",
              "example": "daily"
            }
          },
          {
            "name": "principal",
            "in": "query",
            "required": false,
            "description": "amount",
            "schema": {
              "type": "string",
              "example": "1000"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "description": "days",
            "schema": {
              "type": "string",
              "example": "365"
            }
          },
          {
            "name": "feePercent",
            "in": "query",
            "required": false,
            "description": "performance fee %",
            "schema": {
              "type": "string",
              "example": "0"
            }
          }
        ]
      }
    },
    "/v1/liquidation": {
      "get": {
        "operationId": "liquidation_price",
        "summary": "Liquidation price calculator",
        "description": "Perp (isolated margin: side, entry, leverage, maintenance margin) or lending (collateral, debt, liquidation threshold → health factor) liquidation price and distance. Risk math, not advice. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "defi"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "description": "perp | lending",
            "schema": {
              "type": "string",
              "example": "perp"
            }
          },
          {
            "name": "side",
            "in": "query",
            "required": false,
            "description": "long | short",
            "schema": {
              "type": "string",
              "example": "long"
            }
          },
          {
            "name": "entry",
            "in": "query",
            "required": false,
            "description": "entry price",
            "schema": {
              "type": "string",
              "example": "3000"
            }
          },
          {
            "name": "leverage",
            "in": "query",
            "required": false,
            "description": "x",
            "schema": {
              "type": "string",
              "example": "5"
            }
          },
          {
            "name": "maintenanceMargin",
            "in": "query",
            "required": false,
            "description": "%",
            "schema": {
              "type": "string",
              "example": "0.5"
            }
          },
          {
            "name": "collateral",
            "in": "query",
            "required": false,
            "description": "lending: collateral amount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "debt",
            "in": "query",
            "required": false,
            "description": "lending: debt value",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "price",
            "in": "query",
            "required": false,
            "description": "lending: collateral price",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "liquidationThreshold",
            "in": "query",
            "required": false,
            "description": "lending: LT %",
            "schema": {
              "type": "string",
              "example": "80"
            }
          }
        ]
      }
    },
    "/v1/impermanent-loss": {
      "get": {
        "operationId": "impermanent_loss",
        "summary": "Impermanent loss calculator",
        "description": "LP value vs holding after a price move: full-range (Uniswap v2) and concentrated range (v3, lower/upper) impermanent loss. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "defi"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "entryPrice",
            "in": "query",
            "required": false,
            "description": "price at deposit",
            "schema": {
              "type": "string",
              "example": "3000"
            }
          },
          {
            "name": "newPrice",
            "in": "query",
            "required": false,
            "description": "current price",
            "schema": {
              "type": "string",
              "example": "4500"
            }
          },
          {
            "name": "priceRatio",
            "in": "query",
            "required": false,
            "description": "or new/entry ratio",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lower",
            "in": "query",
            "required": false,
            "description": "v3 range lower",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "upper",
            "in": "query",
            "required": false,
            "description": "v3 range upper",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/loan": {
      "get": {
        "operationId": "loan_amortization",
        "summary": "Loan / mortgage amortization",
        "description": "Monthly payment, total interest and schedule for annuity (本息平均攤還) or equal-principal (本金平均攤還) loans. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "defi"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "principal",
            "in": "query",
            "required": true,
            "description": "loan amount",
            "schema": {
              "type": "string",
              "example": "10000000"
            }
          },
          {
            "name": "annualRate",
            "in": "query",
            "required": true,
            "description": "annual rate %",
            "schema": {
              "type": "string",
              "example": "2.2"
            }
          },
          {
            "name": "months",
            "in": "query",
            "required": true,
            "description": "term in months",
            "schema": {
              "type": "string",
              "example": "360"
            }
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "description": "annuity | equal-principal",
            "schema": {
              "type": "string",
              "example": "annuity"
            }
          }
        ]
      }
    },
    "/v1/security-headers": {
      "get": {
        "operationId": "security_headers_audit",
        "summary": "Security headers audit (A-F)",
        "description": "Graded audit of HSTS, CSP (unsafe-inline/eval, wildcards), clickjacking, nosniff, Referrer/Permissions-Policy, cookie flags, version leaks and CORS misconfig, with fixes. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "page URL",
            "schema": {
              "type": "string",
              "example": "https://moneytools.dev"
            }
          }
        ]
      }
    },
    "/v1/ssl": {
      "get": {
        "operationId": "ssl_certificate",
        "summary": "TLS certificate expiry (CT logs)",
        "description": "Latest unexpired certificates for a domain from Certificate Transparency logs: issuer, names, expiry date, days left, expiring-soon warning. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "hostname",
            "schema": {
              "type": "string",
              "example": "github.com"
            }
          }
        ]
      }
    },
    "/v1/og-image": {
      "get": {
        "operationId": "og_image_check",
        "summary": "Link-preview image check",
        "description": "Does the page's og:image work in link previews? Fetches it and checks status, type, file size, pixel dimensions and aspect ratio (1200×630). Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "page URL",
            "schema": {
              "type": "string",
              "example": "https://github.com"
            }
          },
          {
            "name": "image",
            "in": "query",
            "required": false,
            "description": "or an image URL directly",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/sitemap": {
      "get": {
        "operationId": "sitemap_parse",
        "summary": "Sitemap reader",
        "description": "Find (via robots.txt) and parse a sitemap or sitemap index: URL count, lastmod range, sample URLs and protocol issues. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "site or sitemap URL",
            "schema": {
              "type": "string",
              "example": "https://moneytools.dev"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "sample size",
            "schema": {
              "type": "string",
              "example": "20"
            }
          }
        ]
      }
    },
    "/v1/rss": {
      "get": {
        "operationId": "feed_parse",
        "summary": "RSS / Atom / JSON Feed reader",
        "description": "Parse a feed (or autodiscover it from a web page) into clean JSON: title, latest items with link, date and summary. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "feed or page URL",
            "schema": {
              "type": "string",
              "example": "https://blog.cloudflare.com/rss/"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "items 1-50",
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/v1/broken-links": {
      "get": {
        "operationId": "broken_links",
        "summary": "Broken link checker",
        "description": "Extract links from a page and check up to 12 of them (HEAD, GET fallback): status, redirects, latency, broken list. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "page URL",
            "schema": {
              "type": "string",
              "example": "https://moneytools.dev"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "description": "all | internal | external",
            "schema": {
              "type": "string",
              "example": "all"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "1-12",
            "schema": {
              "type": "string",
              "example": "12"
            }
          }
        ]
      }
    },
    "/v1/dns-propagation": {
      "get": {
        "operationId": "dns_propagation",
        "summary": "DNS propagation check",
        "description": "Query 6 public resolvers (Cloudflare, Google, AdGuard, NextDNS, AliDNS, DNSPod) and compare answers: has my DNS change propagated? Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "hostname",
            "schema": {
              "type": "string",
              "example": "moneytools.dev"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "A|AAAA|CNAME|MX|TXT|NS|CAA",
            "schema": {
              "type": "string",
              "example": "A"
            }
          }
        ]
      }
    },
    "/v1/spf": {
      "get": {
        "operationId": "spf_dmarc_check",
        "summary": "SPF lookup-count + DMARC check",
        "description": "Recursively expand SPF includes, count DNS lookups against the RFC limit of 10, flag +all/?all, duplicate records and weak DMARC policy. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "domain",
            "schema": {
              "type": "string",
              "example": "github.com"
            }
          }
        ]
      }
    },
    "/v1/ip-rdap": {
      "get": {
        "operationId": "ip_owner",
        "summary": "IP owner / network (RDAP)",
        "description": "Who owns this IP? Network name, CIDR, country, organization and abuse contact from the regional internet registries (RDAP). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "ip",
            "in": "query",
            "required": true,
            "description": "IPv4/IPv6",
            "schema": {
              "type": "string",
              "example": "1.1.1.1"
            }
          }
        ]
      }
    },
    "/v1/url-parse": {
      "get": {
        "operationId": "url_parse_clean",
        "summary": "URL parser + tracker remover",
        "description": "Split a URL into parts and query params, strip tracking params (utm_*, fbclid, gclid...) and flag phishing tricks (user@host, raw IP, shorteners, punycode). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "URL",
            "schema": {
              "type": "string",
              "example": "https://example.com/p?id=7&utm_source=x&fbclid=abc"
            }
          }
        ]
      }
    },
    "/v1/idn": {
      "get": {
        "operationId": "idn_homograph_check",
        "summary": "Look-alike domain (homograph) check",
        "description": "Decode punycode, detect mixed scripts and look-alike characters (Cyrillic а vs Latin a) and one-letter typos of major brands/wallets. Anti-phishing for agents. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "web"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "domain or URL",
            "schema": {
              "type": "string",
              "example": "xn--pple-43d.com"
            }
          }
        ]
      }
    },
    "/v1/mcp-lint": {
      "get": {
        "operationId": "mcp_tools_lint",
        "summary": "MCP tool-definition linter",
        "description": "Connect to an MCP server (streamable HTTP) or take a tools/list array and lint every tool: names, descriptions, JSON Schema, required params, annotations; score + fixes. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "agent"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "MCP endpoint",
            "schema": {
              "type": "string",
              "example": "https://mcp.moneytools.dev/mcp"
            }
          }
        ]
      }
    },
    "/v1/openapi-lint": {
      "get": {
        "operationId": "openapi_lint",
        "summary": "OpenAPI linter (agent readiness)",
        "description": "Lint an OpenAPI/Swagger JSON or YAML: operationIds, descriptions, responses, undeclared path params, missing security schemes, servers, x402 payment info. Free tier 10/day; then $0.003 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "agent"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "spec URL",
            "schema": {
              "type": "string",
              "example": "https://api.moneytools.dev/openapi.json"
            }
          },
          {
            "name": "spec",
            "in": "query",
            "required": false,
            "description": "or the spec (JSON object or YAML string) (JSON-encoded string)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/llms-txt": {
      "get": {
        "operationId": "llms_txt_validate",
        "summary": "llms.txt validator",
        "description": "Check a site's /llms.txt against the llmstxt.org format: H1, summary, sections, link entries with notes; optional link check. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "agent"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "site or llms.txt URL",
            "schema": {
              "type": "string",
              "example": "https://moneytools.dev"
            }
          },
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "or the file content",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checkLinks",
            "in": "query",
            "required": false,
            "description": "true to check up to 8 links",
            "schema": {
              "type": "string",
              "example": "false"
            }
          }
        ]
      }
    },
    "/v1/a2a-card": {
      "get": {
        "operationId": "a2a_card_validate",
        "summary": "A2A Agent Card validator",
        "description": "Fetch /.well-known/agent-card.json (or legacy agent.json) and validate required A2A fields, skills, transport and security declarations. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "agent"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "agent base URL or card URL",
            "schema": {
              "type": "string",
              "example": "https://api.moneytools.dev"
            }
          },
          {
            "name": "card",
            "in": "query",
            "required": false,
            "description": "or the card JSON (JSON-encoded string)",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/regex": {
      "get": {
        "operationId": "regex_test",
        "summary": "Regex tester",
        "description": "Run a JavaScript regex on text: all matches with index and capture groups, optional replace, and a ReDoS warning for nested quantifiers. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "pattern",
            "in": "query",
            "required": true,
            "description": "regex source",
            "schema": {
              "type": "string",
              "example": "(\\d{4})-(\\d{2})-(\\d{2})"
            }
          },
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "input text",
            "schema": {
              "type": "string",
              "example": "due 2026-11-04 and 2026-12-01"
            }
          },
          {
            "name": "flags",
            "in": "query",
            "required": false,
            "description": "flags",
            "schema": {
              "type": "string",
              "example": "g"
            }
          },
          {
            "name": "replace",
            "in": "query",
            "required": false,
            "description": "replacement string",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/diff": {
      "post": {
        "operationId": "text_diff",
        "summary": "Text diff",
        "description": "Line, word or character diff between two texts with a unified patch, added/removed counts and similarity. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "a",
                  "b"
                ],
                "properties": {
                  "a": {
                    "description": "old text",
                    "type": "string"
                  },
                  "b": {
                    "description": "new text",
                    "type": "string"
                  },
                  "mode": {
                    "description": "lines | words | chars",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/id": {
      "get": {
        "operationId": "id_generate",
        "summary": "UUID / ULID / nanoid generator + decoder",
        "description": "Generate UUID v4/v7, ULID or nanoid (up to 100), or decode a UUID/ULID to its version and embedded timestamp. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "uuid4 | uuid7 | ulid | nanoid",
            "schema": {
              "type": "string",
              "example": "uuid7"
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "1-100",
            "schema": {
              "type": "string",
              "example": "3"
            }
          },
          {
            "name": "decode",
            "in": "query",
            "required": false,
            "description": "a UUID or ULID to decode",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/jwt": {
      "post": {
        "operationId": "jwt_inspect",
        "summary": "JWT inspector + JWKS verify",
        "description": "Decode a JWT, explain its claims (expired? lifetime?) and verify RS/PS/ES/EdDSA signatures against a public JWKS URL or the issuer's OIDC discovery. No secrets needed or stored. Free tier 10/day; then $0.002 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "description": "JWT",
                    "type": "string"
                  },
                  "jwksUrl": {
                    "description": "JWKS URL",
                    "type": "string"
                  },
                  "discover": {
                    "description": "true = use iss OIDC discovery",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/number-base": {
      "get": {
        "operationId": "number_base",
        "summary": "Number base converter (BigInt)",
        "description": "Convert big integers between bases 2-36 (hex/bin/oct/dec, 0x/0b/0o prefixes) with two's complement for 8-256 bits. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "number",
            "schema": {
              "type": "string",
              "example": "0xff"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "base 2-36 (auto from prefix)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "extra target base",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bits",
            "in": "query",
            "required": false,
            "description": "two's complement width",
            "schema": {
              "type": "string",
              "example": "8"
            }
          }
        ]
      }
    },
    "/v1/markdown": {
      "post": {
        "operationId": "markdown_to_html",
        "summary": "Markdown → HTML",
        "description": "Render GitHub-flavored Markdown to HTML with raw HTML escaped and script URLs removed; also returns the heading outline. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "markdown"
                ],
                "properties": {
                  "markdown": {
                    "description": "Markdown text",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/csv-json": {
      "post": {
        "operationId": "csv_json_convert",
        "summary": "CSV ↔ JSON converter",
        "description": "CSV to JSON (auto delimiter, headers, typed values, error rows) or JSON array to CSV. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "input"
                ],
                "properties": {
                  "input": {
                    "description": "CSV text or JSON array",
                    "type": "string"
                  },
                  "direction": {
                    "description": "csv-to-json | json-to-csv (auto)",
                    "type": "string"
                  },
                  "delimiter": {
                    "description": "delimiter (auto)",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/yaml-json": {
      "post": {
        "operationId": "yaml_json_convert",
        "summary": "YAML ↔ JSON converter",
        "description": "YAML (multi-document, with line-numbered errors) to JSON, or JSON to YAML. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "input"
                ],
                "properties": {
                  "input": {
                    "description": "YAML or JSON text",
                    "type": "string"
                  },
                  "direction": {
                    "description": "yaml-to-json | json-to-yaml (auto)",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/json-format": {
      "post": {
        "operationId": "json_format",
        "summary": "JSON formatter, validator & path query",
        "description": "Validate JSON (error line + context), pretty-print/minify/sort keys, measure depth and size, and pick a value by path like a.b[0].c. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "json"
                ],
                "properties": {
                  "json": {
                    "description": "JSON text",
                    "type": "string"
                  },
                  "op": {
                    "description": "pretty | minify",
                    "type": "string"
                  },
                  "sortKeys": {
                    "description": "true/false",
                    "type": "boolean"
                  },
                  "path": {
                    "description": "e.g. a.c[1]",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/semver": {
      "get": {
        "operationId": "semver_check",
        "summary": "Semver compare / range check",
        "description": "Parse and compare semantic versions, check a version against a range (^1.2, ~2.0, >=1 <2), max satisfying version and sort a list. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "version",
            "in": "query",
            "required": false,
            "description": "version",
            "schema": {
              "type": "string",
              "example": "1.4.2"
            }
          },
          {
            "name": "range",
            "in": "query",
            "required": false,
            "description": "range",
            "schema": {
              "type": "string",
              "example": "^1.2.0"
            }
          },
          {
            "name": "compare",
            "in": "query",
            "required": false,
            "description": "other version",
            "schema": {
              "type": "string",
              "example": "1.10.0"
            }
          },
          {
            "name": "versions",
            "in": "query",
            "required": false,
            "description": "comma list",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/text-stats": {
      "post": {
        "operationId": "text_stats",
        "summary": "Text statistics + token estimate",
        "description": "Characters, words (CJK-aware), sentences, paragraphs, reading time, LLM token estimate and top words. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text"
                ],
                "properties": {
                  "text": {
                    "description": "text",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/lang-detect": {
      "get": {
        "operationId": "language_detect",
        "summary": "Language detection",
        "description": "Detect the language of a text (82 languages, ISO 639-3 + BCP 47), including Traditional vs Simplified Chinese. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text (20+ chars best)",
            "schema": {
              "type": "string",
              "example": "這是一個測試句子，用來偵測語言。"
            }
          }
        ]
      }
    },
    "/v1/slugify": {
      "get": {
        "operationId": "slugify",
        "summary": "Slug + safe filename",
        "description": "URL slug (accents removed; CJK kept or ASCII-only) and a filesystem-safe filename from any title. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "title",
            "schema": {
              "type": "string",
              "example": "Héllo Wörld: 2026 年報告!"
            }
          },
          {
            "name": "ascii",
            "in": "query",
            "required": false,
            "description": "true = ASCII only",
            "schema": {
              "type": "string",
              "example": "false"
            }
          },
          {
            "name": "maxLength",
            "in": "query",
            "required": false,
            "description": "max length",
            "schema": {
              "type": "string",
              "example": "80"
            }
          }
        ]
      }
    },
    "/v1/ip-cidr": {
      "get": {
        "operationId": "ip_cidr",
        "summary": "IP / CIDR calculator",
        "description": "IPv4/IPv6 subnet math: network, range, size, netmask/wildcard, private/reserved type, contains-check and subnet split. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "cidr",
            "in": "query",
            "required": true,
            "description": "CIDR or IP",
            "schema": {
              "type": "string",
              "example": "10.20.30.0/22"
            }
          },
          {
            "name": "contains",
            "in": "query",
            "required": false,
            "description": "IP to test",
            "schema": {
              "type": "string",
              "example": "10.20.31.7"
            }
          },
          {
            "name": "split",
            "in": "query",
            "required": false,
            "description": "new prefix length",
            "schema": {
              "type": "string",
              "example": "24"
            }
          }
        ]
      }
    },
    "/v1/user-agent": {
      "get": {
        "operationId": "user_agent_parse",
        "summary": "User-agent parser + bot detection",
        "description": "Browser, engine, OS, device type, and whether it is a known crawler or AI agent (GPTBot, ClaudeBot, PerplexityBot, scripts...). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "ua",
            "in": "query",
            "required": true,
            "description": "User-Agent string",
            "schema": {
              "type": "string",
              "example": "Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)"
            }
          }
        ]
      }
    },
    "/v1/color": {
      "get": {
        "operationId": "color_convert",
        "summary": "Color converter + WCAG contrast",
        "description": "Convert hex/rgb/hsl/CSS names to hex, RGB, HSL, CMYK; luminance, best text color and WCAG AA/AAA contrast against another color. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "dev"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "color",
            "in": "query",
            "required": true,
            "description": "color",
            "schema": {
              "type": "string",
              "example": "#1a73e8"
            }
          },
          {
            "name": "against",
            "in": "query",
            "required": false,
            "description": "second color",
            "schema": {
              "type": "string",
              "example": "#ffffff"
            }
          }
        ]
      }
    },
    "/v1/password-strength": {
      "post": {
        "operationId": "password_strength",
        "summary": "Password strength estimate",
        "description": "Entropy, common-password and pattern checks (sequences, years, Word123!), crack-time estimates and feedback. Never stored or logged. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "valid"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "password"
                ],
                "properties": {
                  "password": {
                    "description": "password to rate (use a similar pattern, not your real one)",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/phone": {
      "get": {
        "operationId": "phone_format",
        "summary": "Phone number validate + format",
        "description": "Validate and format phone numbers for 240+ regions (libphonenumber): E.164, international/national format, type (mobile/fixed), country. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "valid"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "number",
            "in": "query",
            "required": true,
            "description": "phone number",
            "schema": {
              "type": "string",
              "example": "0912 345 678"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "default region ISO code",
            "schema": {
              "type": "string",
              "example": "TW"
            }
          }
        ]
      }
    },
    "/v1/iban": {
      "post": {
        "operationId": "iban_validate",
        "summary": "IBAN validator",
        "description": "Check an IBAN's country length and mod-97 check digits, return BBAN and print format. Not stored. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "valid"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "iban"
                ],
                "properties": {
                  "iban": {
                    "description": "IBAN",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/card-check": {
      "post": {
        "operationId": "card_number_check",
        "summary": "Card number checksum (Luhn)",
        "description": "Luhn checksum, brand (Visa, Mastercard, Amex, JCB, UnionPay...) and length check; returns only a masked number. Never stored. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "valid"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "number"
                ],
                "properties": {
                  "number": {
                    "description": "card number (test numbers recommended)",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/tw-id": {
      "post": {
        "operationId": "taiwan_id_check",
        "summary": "Taiwan ID / ARC / 統一編號 checker",
        "description": "Checksum and format for 國民身分證, 居留證 (old and 2021 new format) and 統一編號 (company tax ID, new ÷5 rule). Not stored. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "valid"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "description": "ID or 8-digit 統編",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/holidays": {
      "get": {
        "operationId": "public_holidays",
        "summary": "Public holidays (Taiwan / US)",
        "description": "Official Taiwan government office calendar (holidays, 補假, make-up workdays) or US federal holidays with observed dates, plus the next holiday. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "calendar"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "TW | US",
            "schema": {
              "type": "string",
              "example": "TW"
            }
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "year",
            "schema": {
              "type": "string",
              "example": "2026"
            }
          }
        ]
      }
    },
    "/v1/business-days": {
      "get": {
        "operationId": "business_days",
        "summary": "Business-day calculator",
        "description": "Count business days between dates or add N business days, using the official Taiwan calendar, US federal holidays or plain weekdays. Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "calendar"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "YYYY-MM-DD",
            "schema": {
              "type": "string",
              "example": "2026-11-04"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD to count to",
            "schema": {
              "type": "string",
              "example": "2026-12-31"
            }
          },
          {
            "name": "add",
            "in": "query",
            "required": false,
            "description": "or add N business days",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "TW | US | none",
            "schema": {
              "type": "string",
              "example": "TW"
            }
          }
        ]
      }
    },
    "/v1/lunar": {
      "get": {
        "operationId": "lunar_date",
        "summary": "Lunar (農曆) date converter",
        "description": "Gregorian ↔ Chinese lunar date (incl. leap months) with 干支 year and zodiac; e.g. find the solar date of 中秋 (8/15). Free tier 10/day; then $0.001 via x402 (HTTP 402 + PAYMENT-REQUIRED) or X-API-Key credits. Not charged on failure.",
        "tags": [
          "calendar"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Result"
          },
          "400": {
            "description": "Invalid input (not charged)"
          },
          "402": {
            "description": "Payment Required (x402 v2)"
          }
        },
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD (default today, Taipei)",
            "schema": {
              "type": "string",
              "example": "2026-11-04"
            }
          },
          {
            "name": "lunarYear",
            "in": "query",
            "required": false,
            "description": "for lunar→solar",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lunarMonth",
            "in": "query",
            "required": false,
            "description": "1-12",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lunarDay",
            "in": "query",
            "required": false,
            "description": "1-30",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "leap",
            "in": "query",
            "required": false,
            "description": "leap month",
            "schema": {
              "type": "string",
              "example": "false"
            }
          }
        ]
      }
    },
    "/v1/hook/new": {
      "post": {
        "operationId": "webhook_inbox_create",
        "summary": "Webhook test inbox",
        "description": "Create a temporary URL that records any HTTP request sent to it (method, path, query, headers, body ≤16 KB, up to 100 requests, kept 24 h); read them back with the secret token. For testing webhooks and callbacks.",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "create": {
                    "type": "boolean",
                    "description": "Set true to create a new inbox (required for the free tier)",
                    "examples": [
                      true
                    ]
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "inbox URL + read token"
          },
          "402": {
            "description": "Payment Required after free tier"
          }
        }
      }
    },
    "/v1/hook/{id}": {
      "get": {
        "operationId": "webhook_inbox_read",
        "summary": "Read captured requests (free, needs token)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "captured requests"
          }
        }
      }
    }
  }
}