Updated Jul 14, 2026

Network

Probe a host list to see what's live and what it runs

A fast and multi-purpose HTTP toolkit that runs multiple probers with reliable, high-throughput results.

Agent

overview

What httpx does

httpx takes a list of hosts or URLs and probes each one over HTTP, returning a structured picture of what is live and what it is running. In one pass it reports status codes, page titles, response sizes, redirect chains, web server, detected technologies, and TLS data, which turns a raw list of candidates into classified, actionable targets.

On Trickest it is the workhorse between discovery and scanning. Feed it the output of subdomain enumeration or a crawler, emit JSONL with -json, and every downstream node works from live, deduplicated hosts instead of guesses. High thread counts (-threads) and rate limiting (-rate-limit) let it cover wide scopes without overwhelming a target.

Beyond liveness, httpx carries a deep matcher and filter system: keep or drop responses by status code (-match-code, -filter-code), content length, regex, favicon hash, word or line count, or response time. A single node both probes and triages, so its output is already narrowed to what the next stage should test.

source github.com/projectdiscovery/httpx

use cases

Where httpx fits

Classify a discovered attack surface

Probe thousands of subdomains to find which respond, what they run, and which look interesting, before spending scanner time on them.

Detect technologies at scale

Run Wappalyzer-style tech detection across a host list to map frameworks, servers, and CDNs for the whole estate.

Filter live targets for scanning

Drop dead and duplicate hosts so a vulnerability scanner only runs against URLs that actually answer.

Match and filter responses inline

Use status, length, regex, and favicon matchers so the node both probes and triages, narrowing output to interesting hosts.

reference

httpx inputs and flags

114 inputs
NameTypeFlagDescription
targetSTRING-targetHost or hosts to probe (comma-separated).
listFILE-listFile of hosts to probe, the usual pipeline input.
status-codeBOOLEAN-status-codeDisplay the response status code.
titleBOOLEAN-titleDisplay the page title.
tech-detectBOOLEAN-tech-detectDetect technologies from the Wappalyzer dataset.
web-serverBOOLEAN-web-serverDisplay the server name from the response.
jsonBOOLEAN-jsonWrite structured JSONL output, one record per line.
match-codeSTRING-match-codeKeep only responses with these status codes (-mc 200,302).

Showing key inputs. httpx exposes 114 inputs in total.

Full flag reference (114 inputs)
NameTypeFlagDescription
xSTRING-xrequest methods to probe, use 'all' to probe all HTTP methods
ipBOOLEAN-ipdisplay host ip
asnBOOLEAN-asndisplay host asn information
cdnBOOLEAN-cdndisplay cdn in use
csvBOOLEAN-csvstore output in csv format
bodyFILE-bodypost body to include in http request
denySTRING-denydenied list of IP/CIDR's to process (comma separated)
hashSTRING-hashdisplay response body hash (supported: md5,mmh3,simhash,sha1,sha256,sha512)
jarmBOOLEAN-jarmdisplay jarm fingerprint hash
jsonBOOLEAN-jsonstore output in JSONL(ines) format
listFILE-listinput file containing list of hosts to process
pathSTRING-pathpath or list of paths to probe (comma-separated)
ztlsBOOLEAN-ztlsuse ztls library with autofallback to standard one for tls13
allowSTRING-allowallowed list of IP/CIDR's to process (comma separated)
cnameBOOLEAN-cnamedisplay host cname
debugBOOLEAN-debugdisplay request/response content in cli
delaySTRING-delayduration between each http request (eg: 200ms, 1s) (default -1ns)
http2BOOLEAN-http2probe and display server supporting HTTP2
portsSTRING-portsports to probe (nmap syntax: eg http:1,2-10,11,https:80)
probeBOOLEAN-probedisplay probe status
statsBOOLEAN-statsdisplay scan statistic
titleBOOLEAN-titledisplay page title
traceBOOLEAN-tracetrace
vhostBOOLEAN-vhostprobe and display server supporting VHOST
configFILE-configpath to the httpx configuration file
headerSTRING-headercustom http headers to send with request
methodBOOLEAN-methoddisplay http request method
silentBOOLEAN-silentsilent mode
targetSTRING-targetinput target host(s) to probe
unsafeBOOLEAN-unsafesend raw requests skipping golang normalization
excludeSTRING-excludeexclude host matching specified filter ('cdn', 'private-ips', cidr, ip, regex)
faviconBOOLEAN-favicondisplay mmh3 hash for '/favicon.ico' file
requestFILE-requestfile containing raw request
retriesSTRING-retriesnumber of retries
threadsSTRING-threadsnumber of threads to use (default 50)
timeoutSTRING-timeouttimeout in seconds (default 5)
verboseBOOLEAN-verboseverbose mode
locationBOOLEAN-locationdisplay response redirect location
pipelineBOOLEAN-pipelineprobe and display server supporting HTTP1.1 pipeline
protocolSTRING-protocolprotocol to use (unknown, http11)
sni-nameSTRING-sni-namecustom TLS SNI name
tls-grabBOOLEAN-tls-grabperform TLS(SSL) data grabbing
csp-probeBOOLEAN-csp-probesend http probes on the extracted CSP domains
debug-reqBOOLEAN-debug-reqdisplay request content in cli
deny-listFILE-denydenied list of IP/CIDR's to process
match-cdnSTRING-match-cdnmatch host with specified cdn provider (azure, cloudflare, cloudfront, fastly, incapsula, oracle, google, sucuri, leaseweb, akamai)
no-decodeBOOLEAN-no-decodeavoid decoding body
omit-bodyBOOLEAN-omit-bodyomit response body in output
path-listFILE-pathlist of paths to probe
resolversSTRING-resolverslist of custom resolvers (comma separated)
tls-probeBOOLEAN-tls-probesend http probes on the extracted TLS domains (dns_name)
websocketBOOLEAN-websocketdisplay server using websocket
allow-listFILE-allowallowed list of IP/CIDR's to process
debug-respBOOLEAN-debug-respdisplay response content in cli
filter-cdnSTRING-filter-cdnfilter host with specified cdn provider (azure, cloudflare, cloudfront, fastly, incapsula, oracle, google, sucuri, leaseweb, akamai)
http-proxySTRING-http-proxyhttp proxy to use (eg http://127.0.0.1:8080)
line-countBOOLEAN-line-countdisplay response body line count
match-codeSTRING-match-codematch response with specified status code (-mc 200,302)
rate-limitSTRING-rate-limitmaximum requests to send per second (default 150)
web-serverBOOLEAN-web-serverdisplay server name
word-countBOOLEAN-word-countdisplay response body word count
filter-codeSTRING-filter-codefilter response with specified status code (-fc 403,401)
header-fileFILE-header-filecustom http headers to send with request
match-regexSTRING-match-regexmatch response with specified regex (-mr admin)
no-fallbackBOOLEAN-no-fallbackdisplay both probed protocol (HTTPS and HTTP)
status-codeBOOLEAN-status-codedisplay response status-code
tech-detectBOOLEAN-tech-detectdisplay technology in use based on wappalyzer dataset
vhost-inputBOOLEAN-vhost-inputget a list of vhosts as input
body-previewBOOLEAN-body-previewdisplay first N characters of response body (default 100)
content-typeBOOLEAN-content-typedisplay response content-type
extract-fqdnBOOLEAN-extract-fqdnget domain and subdomains from response body and header in jsonl/csv output
filter-regexSTRING-filter-regexfilter response with specified regex (-fe admin)
health-checkBOOLEAN-health-checkrun diagnostic check up
match-lengthSTRING-match-lengthmatch response with specified content length (-ml 100,102)
match-stringSTRING-match-stringmatch response with specified string (-ms admin)
random-agentBOOLEAN-random-agentenable Random User-Agent to use (default true)
respect-hstsBOOLEAN-respect-hstsrespect HSTS response headers for redirect requests
extract-regexSTRING-extract-regexdisplay response content with matched regex
filter-lengthSTRING-filter-lengthfilter response with specified content length (-fl 23,33)
filter-stringSTRING-filter-stringfilter response with specified string (-fs admin)
include-chainBOOLEAN-include-chaininclude redirect http chain in JSON output (-json only)
match-faviconSTRING-match-faviconmatch response with specified favicon hash (-mfc 1494302000)
max-redirectsSTRING-max-redirectsmax number of redirects to follow per host (default 10)
probe-all-ipsBOOLEAN-probe-all-ipsprobe all the ips associated with same host
response-timeBOOLEAN-response-timedisplay response time
content-lengthBOOLEAN-content-lengthdisplay response content-length
extract-presetSTRING-extract-presetdisplay response content matched by a pre-defined regex (url,ipv4,mail)
filter-faviconSTRING-filter-faviconfilter response with specified favicon hash (-mfc 1494302000)
max-host-errorSTRING-max-host-errormax error count per host before skipping remaining path/s (default 30)
resolvers-fileFILE-resolverslist of custom resolvers
stats-intervalSTRING-stats-intervalnumber of seconds to wait between showing a statistics update (default: 5)
match-conditionSTRING-match-conditionmatch response with dsl expression condition
tls-impersonateBOOLEAN-tls-impersonateenable random tls client (ja3) impersonation (experimental)
filter-conditionSTRING-filter-conditionfilter response with dsl expression condition
follow-redirectsBOOLEAN-follow-redirectsfollow http redirects
include-responseBOOLEAN-include-responseinclude http request/response in JSON output (-json only)
match-line-countSTRING-match-line-countmatch response body with specified line count (-mlc 423,532)
match-word-countSTRING-match-word-countmatch response body with specified word count (-mwc 43,55)
filter-duplicatesBOOLEAN-filter-duplicatesfilter out near-duplicate responses (only first response is retained)
filter-error-pageBOOLEAN-filter-error-pagefilter response with ML based error page detection
filter-line-countSTRING-filter-line-countfilter response body with specified line count (-flc 423,532)
filter-word-countSTRING-filter-word-countfilter response body with specified word count (-fwc 423,532)
rate-limit-minuteSTRING-rate-limit-minutemaximum number of requests to send per minute
list-dsl-variablesBOOLEAN-list-dsl-variableslist json output field keys name that support dsl matcher/filter
no-fallback-schemeBOOLEAN-no-fallback-schemeprobe with protocol scheme specified in input
csv-output-encodingSTRING-csv-output-encodingdefine output encoding
leave-default-portsBOOLEAN-leave-default-portsleave default http/https ports in host header (eg. http://host:80 - https//host:443
match-response-timeSTRING-match-response-timematch response with specified response time in seconds (-mrt '< 1')
filter-response-timeSTRING-filter-response-timefilter response with specified response time in seconds (-frt '> 1')
follow-host-redirectsBOOLEAN-follow-host-redirectsfollow redirects on the same host
response-size-to-readSTRING-response-size-to-readmax response size to read in bytes (default 2147483647)
response-size-to-saveSTRING-response-size-to-savemax response size to save in bytes (default 2147483647)
include-response-base64BOOLEAN-include-response-base64include base64 encoded http request/response in JSON output (-json only)
include-response-headerBOOLEAN-include-response-headerinclude http response (headers) in JSON output (-json only)

example

Run httpx

httpx · command
# probe a host list, show status, title, tech, and web server, emit JSONLhttpx -list hosts.txt -status-code -title -tech-detect -web-server -json -o results.jsonl
sample output
https://www.example.com [200] [Example Domain] [nginx] [PHP,Bootstrap]https://api.example.com [200] [API Gateway] [openresty] [OpenResty]https://blog.example.com [301] [Redirecting…] [cloudflare] [Cloudflare]https://staging.example.com [403] [403 Forbidden] [Apache/2.4.41] [Apache HTTP Server]https://dev.example.com [200] [Grafana] [nginx] [Grafana]https://shop.example.com [200] [Store] [nginx] [Magento,PHP,jQuery]https://vpn.example.com [401] [Sign in] [nginx] [nginx]

guidance

Choosing httpx

Use httpx whenever you need to know which hosts are live and what they run. It is a prober, not a crawler, so pair it with katana to find endpoints and with nuclei to test them.

httprobe

Minimal liveness check. httpx returns far more signal per request.

katana

Crawls for endpoints. Run it before httpx, not instead of it.

nuclei

Tests the live hosts httpx classifies. Runs after it in the pipeline.

workflows

Workflows using httpx

15 workflows
  1. ASN-Wide Vulnerability Scan

    Turn an ASN into its live hosts, then scan the raw ports and the web surface for CVEs, misconfigurations, and exposures. Findings land in one report.

  2. Attack Surface Discovery by Company Name

    Start from a company's registered name and find the domains it has certified, the networks those resolve into, and the hosts that answer.

  3. CVE-2026-82329 Artifactory auth bypass check

    Find self-managed JFrog Artifactory below CVE-2026-82329 CNA floors. Version fingerprint, confirm path, no token mint. Cloud *.jfrog.io marked patched.

  4. Directory & Content Discovery

    Confirm which hosts are live, then brute-force paths against each one from a wordlist fetched at run time, and report what answered.

  5. Domain OSINT & Footprinting

    Profile a domain without sending it a packet: subdomains, DNS, WHOIS and certificate history, plus which hosts are live and what they run.

  6. Full Network Port & Service Assessment

    Point one domain, ASN or CIDR at it and get a graded report of every open port and exposed service, distributed and token-free.

  7. Next.js Security Scanner

    Fingerprint Next.js hosts and run CVE-2026-75604, GHSA-2xp9-vwfh-vxw4, CVE-2025-29927, and CVE-2025-55182 as separate checks.

  8. PaperCut NG/MF RCE (CVE-2026-81578)

    Point hosts at PaperCut NG/MF and flag CVE-2026-81578 by build, then confirm with a read-only admin-page GET. No config write. CISA KEV.

  9. PQ Crypto Surface Scanner

    Enumerate live hosts from a domain, fingerprint TLS and post-quantum readiness with AC Scanner, and emit CBOM-style evidence plus remediation.

  10. Scan WordPress for Known CVEs

    Fingerprint a WordPress site's core, plugins and themes while scanning for known CVEs next to the component and version they hit.

  11. SPA Endpoint & Parameter Map

    Map the route, API and parameter attack surface of a modern JS app (Next, Nuxt, React) from its JS bundles. No browser, no auth.

  12. Subdomain Enumeration

    Find every subdomain of a domain from passive sources and certificate transparency, then resolve and probe the hosts that answer.

  13. Typosquat & Look-alike Domain Scanner

    Generate typo, homoglyph, TLD-swap and combosquat variants of a brand domain, probe every candidate, and score the live ones for phishing readiness.

  14. Web AI Agent Audit

    Probe embedded web chat agents for injection, prompt leak, jailbreak, and role confusion with WebAgentAudit.

  15. Website Screenshot & Visual Recon

    Screenshot every live web server across a domain's subdomains, ordered so the forgotten dashboard and the staging copy of production surface first.

faq

httpx questions

Enable -status-code, -title, and -tech-detect so each live host returns a status, page title, and detected stack in one pass. That turns a raw host list into a triage table you can feed to the next stage without a second probe.

Run httpx yourself

A host list feeds httpx, which probes each one and writes the live, classified hosts as a queryable output.

Facts on this page come from the live Trickest tool library.