{
  "ok": true,
  "name": "Tool Pantry API",
  "description": "Stateless helpers for agents and scripts. All endpoints are free, need no key, and never store input.",
  "site": "https://toolpantry.app",
  "catalog": "https://toolpantry.app/tools.json",
  "endpoints": [
    {
      "path": "/api",
      "params": [],
      "description": "This endpoint list."
    },
    {
      "path": "/api/tools",
      "params": [
        "q (search words)",
        "limit (default 10, max 50)"
      ],
      "description": "Search the Tool Pantry catalog of browser tools. Returns names, URLs, and descriptions. Without q, returns a summary of categories and counts."
    },
    {
      "path": "/api/qr",
      "params": [
        "text (required)",
        "ec=L|M|Q|H (default M)",
        "size (px, default 256)",
        "margin (modules, default 4)",
        "format=svg|json (default svg)"
      ],
      "description": "Generate a QR code. Returns image/svg+xml by default, or JSON with the SVG string."
    },
    {
      "path": "/api/stats",
      "params": [
        "text (required)"
      ],
      "description": "Text statistics: characters, words, sentences, paragraphs, lines, reading time."
    },
    {
      "path": "/api/hash",
      "params": [
        "text (required)",
        "algo=sha1|sha256|sha384|sha512 (default sha256)"
      ],
      "description": "Hash a string; returns hex and base64 digests."
    },
    {
      "path": "/api/uuid",
      "params": [
        "count (1-50, default 1)"
      ],
      "description": "Generate random UUID v4 values."
    },
    {
      "path": "/api/password",
      "params": [
        "length (4-128, default 20)",
        "count (1-20, default 1)",
        "symbols=0|1",
        "numbers=0|1"
      ],
      "description": "Generate random passwords using the platform crypto RNG."
    },
    {
      "path": "/api/ip",
      "params": [],
      "description": "Caller information: public IP, country, city, region, timezone, ASN, Cloudflare colo."
    },
    {
      "path": "/api/json",
      "params": [
        "text (required)",
        "mode=validate|pretty|minify (default pretty)"
      ],
      "description": "Validate, pretty-print, or minify a JSON string."
    },
    {
      "path": "/api/base64",
      "params": [
        "text (required)",
        "mode=encode|decode (default encode)"
      ],
      "description": "Base64 encode or decode UTF-8 text."
    },
    {
      "path": "/api/color",
      "params": [
        "hex (required, e.g. e36d3f or #e36d3f)"
      ],
      "description": "Convert a hex color to RGB and HSL."
    }
  ]
}