{
  "slug": "email-list-cleaner",
  "name": "gizza-ai/email-list-cleaner",
  "version": "0.1.0",
  "title": "Email List Cleaner — gizza.ai",
  "description": "Clean pasted email lists: validate syntax, trim and lowercase, remove duplicates, flag malformed rows, and export a copy-ready list.",
  "tags": [
    "email list cleaner",
    "email validator",
    "dedupe emails",
    "clean email addresses",
    "email hygiene"
  ],
  "category": "network",
  "urls": {
    "page": "https://gizza.ai/tools/email-list-cleaner/",
    "markdown": "https://gizza.ai/tools/email-list-cleaner/index.md",
    "descriptor": "https://gizza.ai/tools/email-list-cleaner/tool.json",
    "deep_link_example": "https://gizza.ai/tools/email-list-cleaner/?emails=Alice%40example.com%0ABob%20%3Cbob%40example.com%3E%0Aalice%40example.com%0Anot-an-email&canonicalize=true&sort=input&format=report"
  },
  "cli": "gizza tool email-list-cleaner \"Alice@example.com\nBob <bob@example.com>\nalice@example.com\nnot-an-email\"",
  "tool": {
    "description": "Clean a pasted email address list: split multiline/comma/semicolon entries, trim and lowercase addresses, validate syntax, remove duplicates, optionally fold provider aliases, and report invalid rows plus likely typo suggestions.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "canonicalize": {
          "default": false,
          "description": "When true, apply provider canonicalization before de-duplicating (for example, Gmail dot removal and +tag folding). Leave false to only trim and lowercase.",
          "type": "boolean"
        },
        "emails": {
          "description": "Email address list to clean. Paste one address per line, or separate entries with commas or semicolons. Display-name wrappers and mailto: prefixes are accepted.",
          "type": "string"
        },
        "format": {
          "default": "report",
          "description": "Output format: 'report' includes counts, invalid rows, and typo suggestions; 'clean' returns one address per line; 'comma' returns a comma-separated list.",
          "enum": [
            "report",
            "clean",
            "comma"
          ],
          "type": "string"
        },
        "sort": {
          "default": "input",
          "description": "Output order: 'input' preserves first-seen order, while 'alpha' sorts the cleaned unique addresses alphabetically.",
          "enum": [
            "input",
            "alpha"
          ],
          "type": "string"
        }
      },
      "required": [
        "emails"
      ],
      "type": "object"
    }
  }
}