4 min read

httpx: See Which Hosts Run a Website, and What (GitHub, Scanned)

ProjectDiscovery's HTTP prober: feed it hostnames and get status, title, tech stack and TLS details.

httpx logo
✅
Scan: safe. Nothing malicious. One thing to know: unless you pass -duc, each run sends an update check to ProjectDiscovery with your OS, architecture, version and a hashed machine ID. Scanned Oct 28, 2026; the full report is below.

httpx takes a list of hostnames, URLs, IPs or CIDR ranges and tells you which ones answer over HTTP and what they are. For each live host it reports the status code, page title, content length, web server, redirect target, TLS certificate details and response time by default, and on request adds technology detection from the Wappalyzer dataset, CDN and WAF detection, favicon and JARM hashes, ASN lookups, virtual host checks and headless-browser screenshots. Filters and matchers let you keep only, say, the 200 responses running a given framework.

It is the middle step of ProjectDiscovery's recon chain. subfinder produces a few thousand names; httpx narrows them to the few hundred that actually serve something and labels each one, and katana then crawls the interesting ones. Because it reads stdin and writes plain lines or JSON, it slots just as easily after Amass, a DNS export or a Burp Suite file.

It is MIT-licensed and maintained by ProjectDiscovery, with about 10,600 stars, 131 contributors and 68 releases since 2020. The last push was on 28 October 2026 and v1.12.0 came out on 8 September. The README warns that breaking changes are common and that it is built as a CLI, not a service.

Who it is for

Security and IT teams checking which of their hosts expose web services, bug bounty hunters triaging in-scope subdomains, and anyone who needs to turn a long list of names into a labelled list of live websites.

Getting started

1. Install with Go (needs Go 1.26.10 or later; release binaries and a projectdiscovery/httpx Docker image also exist)

go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest

2. Probe a list of hosts and show status, title and detected technology

httpx -l hosts.txt -status-code -title -tech-detect

3. Or chain it after subfinder

subfinder -d example.com -silent | httpx -silent -sc -title

If you installed Python's httpx with its command-line extra (httpx[cli]), its httpx command may sit earlier on your PATH; httpx -version only works on the Go tool, so it is a quick check. httpx sends real requests to every host you give it, so feed it only hosts you are allowed to probe. Add -duc to skip the update check.

Safety scan

We cloned projectdiscovery/httpx at commit 668a37c on Oct 28, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secrets, no pattern hits and no committed binaries across 139 files and about 20,000 lines of Go. The many example.com, foo.com and scanme.sh hosts in the scan are test fixtures; scanme.sh is ProjectDiscovery's own target for tests.
  • The two installer scripts flagged, cmd/functional-test/run.sh and integration_tests/run.sh, are short CI helpers that build httpx and run its test suites. No sudo, no downloads piped to a shell.
  • Like subfinder and katana, httpx uses ProjectDiscovery's shared update check, which calls api.pdtm.sh with your OS, architecture, Go and httpx versions and a salted machine ID. Results only go to ProjectDiscovery Cloud if you pass -dashboard or -pdu with an API key.
  • go.mod pins 158 packages with 4 advisories, none rated: two golang.org/x/net HTML parser issues, a goldmark Markdown XSS and the deprecated openpgp package. All are indirect, and none affects httpx's job of sending requests and reading replies.
  • Nine workflows, none using pull_request_target; the 12 third-party action uses are pinned to tags, not commits. Dependabot and CodeQL are enabled; the security policy is inherited from the ProjectDiscovery organisation.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time code2 installer scripts
Committed binariesNone.
CI workflows9 workflows. None use pull_request_target. 12 of 12 third-party actions pinned to a tag rather than a commit.
Network hosts40 distinct hosts referenced from source; most often github.com, foo.com, a.example.com, b.example.com. No URLs to bare IP addresses.
Known vulnerabilities4 advisories across 158 pinned packages: 0 critical, 0 high, 0 moderate, 0 low, 4 unrated. go.mod: 158 packages, 4 advisories.
Project hygieneHas automated dependency updates, CodeQL, licence file. Missing security policy, contributing guide.
OpenSSF Scorecard6.4 out of 10, as of Oct 26, 2026.

The raw findings

Every hit the scanner wrote out, with a link to the exact line at the scanned commit. Secrets candidates are redacted.

Installer scripts (2)
Worst known vulnerabilities (4 of 4)
AdvisorySeverityPackageSummary
CVE-2026-78661unknowngolang.org/x/net@0.61.0Avoid quadratic complexity when coalescing text nodes in html in golang.org/x/net
CVE-2026-97045unknowngolang.org/x/net@0.61.0Check all ancestor namespace transitions when rendering raw text in html in golang.org/x/net
GHSA-c97m-vxhj-p7j6unknowngithub.com/yuin/goldmark@1.7.13Cross-site Scripting (XSS) in github.com/yuin/goldmark
GO-2026-5932unknowngolang.org/x/crypto@0.58.0The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues

By the numbers

Stars10.6K
Forks1,111
Contributors131
Commits2,901
Open issues3
Open pull requests5
Releases68
Latest releasev1.12.0
LicenceMIT
Main languageGo
Project age6 years
Last pushOct 28, 2026
Tracked files139
Lines of code20.1K
Checkout size2 MB

Lines by language: Go 18.8K, YAML 535, Markdown 525, HTML 196, Shell 46.

Questions

Is httpx free?

Yes. httpx is MIT-licensed and free for any use, commercial included. The optional ProjectDiscovery Cloud dashboard has its own free and paid plans, but the CLI does not need it.

httpx makes ordinary web requests, similar to opening each site in a browser, but sending thousands of them to systems you do not own can break terms of service or computer misuse laws, especially with options like -ports or -path that look like scanning. Use it on your own hosts, a client's with written permission, or a bug bounty's listed scope.

Is this the same as the Python httpx library?

No. Python's httpx is an HTTP client library by Encode; this httpx is ProjectDiscovery's Go command-line prober. They share a name only. Installing the Python one with its CLI extra adds a second httpx command, and your shell may pick it first; httpx -version answers only from the Go tool.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.