{
  "slug": "url-encode",
  "name": "gizza-ai/url-encode",
  "version": "0.1.0",
  "title": "URL Encoder & Decoder — gizza.ai",
  "description": "Percent-encode or decode text and URLs in your browser — component, whole-URL, or form mode, batch per-line, and recursive decode. Free, private, no sign-up.",
  "tags": [
    "url encode",
    "url decode",
    "percent encoding",
    "uri",
    "query string",
    "form urlencoded",
    "plus encoding",
    "batch",
    "double decode"
  ],
  "category": "encoding",
  "urls": {
    "page": "https://gizza.ai/tools/url-encode/",
    "markdown": "https://gizza.ai/tools/url-encode/index.md",
    "descriptor": "https://gizza.ai/tools/url-encode/tool.json",
    "deep_link_example": "https://gizza.ai/tools/url-encode/?text=name%3DJohn%20Doe%26city%3DS%C3%A3o%20Paulo&mode=encode&target=component&per_line=true&repeat=1"
  },
  "cli": "gizza tool url-encode \"name=John Doe&city=São Paulo\"",
  "tool": {
    "description": "Percent-encode or percent-decode text and URLs. Use mode='encode' (default) to make text URL-safe or mode='decode' to reverse it. When encoding, target='component' (default) escapes everything for a single query value or path segment (e.g. 'São Paulo' -> 'S%C3%A3o%20Paulo'); target='uri' encodes a whole URL while preserving its delimiters (: / ? # & = etc.); target='form' is application/x-www-form-urlencoded, where a space becomes '+' (and decodes back). Set per_line=true to convert each line of a batch list independently. Set repeat>1 (up to 16) to un-nest multiply-encoded input when decoding, or to double-encode.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "default": "encode",
          "description": "Direction: 'encode' (default) percent-encodes, 'decode' reverses it.",
          "enum": [
            "encode",
            "decode"
          ],
          "type": "string"
        },
        "per_line": {
          "default": false,
          "description": "When true, convert each line of the input independently (rejoined with newlines) — for a batch list of values or URLs. Default false.",
          "type": "boolean"
        },
        "repeat": {
          "default": 1,
          "description": "Apply the operation this many times, 1-16. Use >1 to un-nest multiply-encoded input when decoding (or to double-encode). Default 1.",
          "maximum": 16,
          "minimum": 1,
          "type": "integer"
        },
        "target": {
          "default": "component",
          "description": "Encoding style. 'component' (default) escapes reserved chars for a single query value or path segment; 'uri' preserves URL delimiters for a whole URL; 'form' is application/x-www-form-urlencoded (a space becomes '+', and on decode '+' becomes a space).",
          "enum": [
            "component",
            "uri",
            "form"
          ],
          "type": "string"
        },
        "text": {
          "description": "The text or URL to encode or decode.",
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    }
  }
}