{
  "slug": "extract-domains",
  "name": "gizza-ai/extract-domains",
  "version": "0.1.0",
  "title": "Extract Domains from Text — gizza.ai",
  "description": "Extract domains from text, URLs, and emails — hostnames or registrable eTLD+1, validated against the Public Suffix List. Free, private, in your browser.",
  "tags": [
    "extract domains",
    "domain extractor",
    "find domains",
    "registrable domain",
    "etld+1",
    "public suffix list",
    "parse hostnames"
  ],
  "category": "network",
  "urls": {
    "page": "https://gizza.ai/tools/extract-domains/",
    "markdown": "https://gizza.ai/tools/extract-domains/index.md",
    "descriptor": "https://gizza.ai/tools/extract-domains/tool.json",
    "deep_link_example": "https://gizza.ai/tools/extract-domains/?text=Paste%20text%2C%20URLs%2C%20or%20email%20addresses%20containing%20domains%E2%80%A6&mode=both&sort=true"
  },
  "cli": "gizza tool extract-domains \"Paste text, URLs, or email addresses containing domains…\"",
  "tool": {
    "description": "Scan text and extract every domain it references — from plain text, http(s)/ftp URLs, and email addresses. Each candidate is validated against the Public Suffix List, so IP addresses, version numbers, and bogus TLDs are dropped. Results are deduplicated in first-seen order. mode=hostname returns full hostnames, mode=registrable returns the registrable domain / eTLD+1, mode=both (default) returns both lists with counts. Set sort=true to order results alphabetically. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "default": "both",
          "enum": [
            "hostname",
            "registrable",
            "both"
          ],
          "type": "string"
        },
        "sort": {
          "default": false,
          "type": "boolean"
        },
        "text": {
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    }
  }
}