{
  "id": "httpx",
  "name": "httpx",
  "homepage": "https://github.com/projectdiscovery/httpx",
  "description": "httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.",
  "executables": [
    "httpx"
  ],
  "dotfiles": {
    "paths": [
      "~/.config/httpx/config.yaml"
    ],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Probe web hosts",
    "description": "Probe one or more hosts or a host list and show status code, title and detected technology. Proxies, custom requests, filtering by regex and screenshots are not in this form.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "help",
        "url": "https://github.com/projectdiscovery/httpx",
        "revision": "2026-10-27",
        "evidence": "   -l, -list string              input file containing list of hosts to process\n   -u, -target string[]          input target host(s) to probe\n   -sc, -status-code                      display response status-code\n   -title                                 display page title\n   -td, -tech-detect                      display technology in use based on wappalyzer dataset\n   -ip                                    display host ip\n   -mc, -match-code string            match response with specified status code (-mc 200,302)\n   -fc, -filter-code string               filter response with specified status code (-fc 403,401)\n   -t, -threads int              number of threads to use (default 50)\n   -rl, -rate-limit int          maximum requests to send per second (default 150)\n   -p, -ports string[]        ports to probe (nmap syntax: eg http:1,2-10,11,https:80)\n   -path string               path or list of paths to probe (comma-separated, file)\n   -o, -output string                     file to write output results\n   -fr, -follow-redirects           follow http redirects\n   -timeout int                       timeout in seconds (default 10)\n   -silent                   silent mode\n"
      }
    ],
    "field": [
      {
        "id": "target",
        "label": "Target host or URL",
        "type": "string",
        "option": [
          "-u"
        ],
        "multiple": true,
        "sources": [
          "help"
        ]
      },
      {
        "id": "list",
        "label": "Host list file",
        "type": "path",
        "option": [
          "-l"
        ],
        "path": {
          "kind": "file",
          "role": "input",
          "must_exist": true
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "status_code",
        "label": "Show status code",
        "type": "boolean",
        "option": [
          "-sc"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "title",
        "label": "Show page title",
        "type": "boolean",
        "option": [
          "-title"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "tech_detect",
        "label": "Detect technologies",
        "type": "boolean",
        "option": [
          "-td"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "ip",
        "label": "Show host IP",
        "type": "boolean",
        "option": [
          "-ip"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "follow_redirects",
        "label": "Follow redirects",
        "type": "boolean",
        "option": [
          "-fr"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "match_code",
        "label": "Match status codes",
        "description": "Comma-separated, for example 200,302.",
        "type": "string",
        "option": [
          "-mc"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "filter_code",
        "label": "Filter out status codes",
        "description": "Comma-separated, for example 403,401.",
        "type": "string",
        "option": [
          "-fc"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "threads",
        "label": "Threads",
        "type": "integer",
        "option": [
          "-t"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "rate_limit",
        "label": "Requests per second",
        "type": "integer",
        "option": [
          "-rl"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "output",
        "label": "Output file",
        "type": "path",
        "option": [
          "-o"
        ],
        "path": {
          "kind": "file",
          "role": "output",
          "must_exist": false
        },
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "silent",
        "label": "Silent (results only)",
        "type": "boolean",
        "option": [
          "-silent"
        ],
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "probe-one",
        "label": "Probe a target",
        "set": {
          "status_code": [
            true
          ],
          "title": [
            true
          ],
          "tech_detect": [
            true
          ]
        },
        "fields": [
          "target",
          "status_code",
          "title",
          "tech_detect",
          "follow_redirects"
        ],
        "required": [
          "target"
        ]
      },
      {
        "id": "probe-list",
        "label": "Probe a host list",
        "set": {
          "status_code": [
            true
          ],
          "title": [
            true
          ]
        },
        "fields": [
          "list",
          "status_code",
          "title",
          "match_code",
          "threads",
          "output"
        ],
        "required": [
          "list"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "target",
          "list",
          "status_code",
          "title",
          "tech_detect",
          "ip",
          "follow_redirects",
          "output"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "match_code",
          "filter_code",
          "threads",
          "rate_limit",
          "silent"
        ]
      }
    ]
  }
}
