Updated Jul 14, 2026

Discovery

Mine endpoints and parameters from crawls or proxy exports

Endpoints and parameters from crawls and saved traffic.

Agent

overview

What xnlinkfinder does

xnLinkFinder takes --input as a URL or domain crawl, a URL list, Burp XML, ZAP output, Caido CSV, or a directory of files, then returns endpoints plus a target-specific wordlist of path words and parameters.

Cap recursion with --depth. Keep output usable with --scope-filter, --scope-prefix, and --exclude. Stop early on rate limits with -s403, -s429, -sTO, or -sCE when most responses fail.

Reach for it after you have URLs or proxy traffic and need a route map before probing. Prefer katana for a deeper live JS-aware crawl; use gau when you want passive archive URLs instead. Trickest runs it as a managed Discovery node.

source github.com/xnl-h4ck3r/xnLinkFinder

use cases

Where xnlinkfinder fits

Crawl a target for endpoints

Give it a URL or domain and a --depth so it follows links recursively, returning the full set of routes the application exposes.

Mine endpoints from proxy traffic

Parse a Burp or ZAP export, a Caido CSV, or a directory of saved files to recover endpoints and parameters from traffic you already captured.

Extract links from JavaScript

Read a page or a saved .js file and pull routes out of inline and external JavaScript, the way LinkFinder does but across a whole crawl.

Build a target-specific wordlist

Collect path words, parameters, and page text into a tuned wordlist that seeds content discovery and parameter fuzzing better than a generic list.

Keep discovery in scope

Apply --scope-filter and --scope-prefix to restrict and normalize output links, so the endpoint set stays on assets you are allowed to test.

reference

xnlinkfinder inputs and flags

48 inputs
NameTypeFlagDescription
inputSTRING--inputInput a URL or domain to crawl.
input-fileFILE--inputInput a text file of URLs, a Burp XML, a ZAP output, or a Caido CSV to parse.
depthSTRING--depthLevels of depth to search; found links are searched again for more links (default 1).
scope-filterSTRING--scope-filterKeep only links whose domain is in the given scope.
scope-prefixSTRING--scope-prefixPrefix links starting with / with the scope domain in the output.
excludeSTRING--excludeExclude links matching a comma separated list, e.g. careers,forum.
headersSTRING--headersCustom headers to send, format 'Header1: value1; Header2: value2;'.
processesSTRING--processesNumber of processes (threads) used for requests (default 25).

Showing key inputs. xnlinkfinder exposes 48 inputs in total.

Full flag reference (48 inputs)
NameTypeFlagDescription
depthSTRING--depthLevels of depth to search; links found are searched again for more links (default 1). Ignored for Burp files.
inputSTRING--inputInput a URL or domain to crawl.
configFILE--configPath to the YAML config file; excludes some words and extensions and defines stopwords.
originBOOLEAN--originShow the origin of each link, printed as LINK-URL [ORIGIN-URL] (default false).
cookiesSTRING--cookiesCookies to send with requests, format 'name1=value1; name2=value2;'.
excludeSTRING--excludeLink exclusions as a comma separated list, e.g. careers,forum.
headersSTRING--headersCustom headers to send, format 'Header1: value1; Header2: value2;'.
includeBOOLEAN--includeInclude the input links in the output (default false).
timeoutSTRING--timeoutSeconds to wait for the server to send data before giving up (default 10).
verboseBOOLEAN--verboseVerbose output.
all-tldsBOOLEAN--all-tldsReturn links even when the TLD is not in the common list; can add false positives.
insecureBOOLEAN-insecureDisable TLS certificate checks on requests (default false).
prefixedBOOLEAN--prefixedMark prefixed links with (PREFIXED) after the link and origin (default false).
no-bannerBOOLEAN--no-bannerHide the tool banner.
processesSTRING--processesNumber of processes (threads) used for URL requests (default 25).
ascii-onlyBOOLEAN-ascii-onlyOnly add links and parameters that contain ASCII characters (default false).
input-fileFILE--inputInput a text file of URLs, a Burp XML, a ZAP output, a Caido CSV, or a single file to search.
user-agentSTRING--user-agentWhich User Agents to get links for, e.g. 'desktop mobile'.
regex-afterSTRING--regex-afterRegEx to filter found endpoints before output; a link is kept only if it matches.
stop-on-403BOOLEAN-s403Stop when over 95 percent of responses return 403 Forbidden (default false).
stop-on-429BOOLEAN-s429Stop when over 95 percent of responses return 429 Too Many Requests (default false).
input-folderFOLDER--inputInput a directory of files to search for links.
replay-proxySTRING-replay-proxyReplay active requests for a URL or file of URLs through this proxy.
scope-filterSTRING--scope-filterKeep only links whose domain is in the given scope.
scope-prefixSTRING--scope-prefixPrefix links starting with / with the scope domain in the output.
very-verboseBOOLEAN--vverboseIncreased verbose output.
max-file-sizeSTRING--max-file-sizeMax file size in bytes to check when input is a directory (default 500 MB); 0 means no limit.
content-lengthBOOLEAN--content-lengthShow the Content-Length of the response when crawling.
max-time-limitSTRING--max-time-limitMax run time in minutes before stopping (default 0, no limit).
stopwords-fileSTRING--stopwords-fileFile of extra stop words to exclude from the target-specific wordlist.
stop-on-timeoutBOOLEAN-sTOStop when over 95 percent of requests time out (default false).
wordlist-maxlenSTRING--wordlist-maxlenMax length of words added to the target-specific wordlist (excluding plurals).
memory-thresholdSTRING--memory-thresholdMemory usage percentage that ends the run gracefully before running out of memory (default 95).
scope-filter-fileFILE--scope-filterFile of domains; keep only links whose domain is in scope.
scope-prefix-fileFILE--scope-prefixFile of scope domains used to prefix links starting with /.
user-agent-customSTRING--user-agent-customA custom User Agent string for all requests; overrides --user-agent.
no-wordlist-digitsBOOLEAN--no-wordlist-digitsExclude words containing numerical digits from the wordlist.
no-wordlist-imgaltBOOLEAN--no-wordlist-imgaltDo not process image alt attributes for the wordlist.
no-wordlist-pluralsBOOLEAN--no-wordlist-pluralsDo not add singular or plural variants of found words to the wordlist.
burpfile-remove-tagsSTRING--burpfile-remove-tagsRemove tags when a Burp file is input; pass True or False (asked interactively if omitted).
no-wordlist-commentsBOOLEAN--no-wordlist-commentsDo not process page comments for the wordlist.
no-wordlist-lowercaseBOOLEAN--no-wordlist-lowercaseDo not also add lowercase copies of words that contain uppercase characters.
no-wordlist-pathwordsBOOLEAN--no-wordlist-pathwordsDo not process path words found in links for the wordlist.
scope-prefix-originalBOOLEAN--scope-prefix-originalWhen a scope prefix is set, also keep the original link starting with / (default false).
exclude-relative-linksBOOLEAN-xrelDrop relative links that start with ./ or ../ from the results.
no-wordlist-parametersBOOLEAN--no-wordlist-parametersDo not process parameters found in links for the wordlist.
scope-prefix-keep-failedBOOLEAN--scope-prefix-keep-failedKeep a prefixed link even if it returned 404 or raised a request error (default false).
stop-on-connection-errorsBOOLEAN-sCEStop when over 95 percent of requests have connection errors (default false).

example

Run xnlinkfinder

xnlinkfinder · command
# crawl example.com two levels deep and keep results in scopexnLinkFinder -i example.com -d 2 -sf example.com -sp https://example.com -o endpoints.txt
sample output
//login/api/v1/users/api/v1/users/{id}/roles/static/js/app.8f3c1d.js/assets/manifest.jsonhttps://example.com/account/settings?tab=https://example.com/api/v2/search?q=&page=…  (214 endpoints and 38 parameters written to output/ for the real run)

guidance

Choosing xnlinkfinder

Use xnLinkFinder when you need endpoints and a target-specific parameter wordlist from a crawl or saved Burp, ZAP, or Caido traffic. For a deeper live JS-aware crawl, katana goes further; for passive archive URLs, gau pulls history.

katana

Active crawler with JavaScript parsing. Deeper live crawl; xnLinkFinder also mines saved proxy traffic and builds wordlists.

gau

Passive URLs from web archives. Complements xnLinkFinder active crawl and file-based discovery.

faq

xnlinkfinder questions

A URL or domain to crawl, or a file: a list of URLs, Burp XML, ZAP output, Caido CSV, or a directory of files. Pass any of them with --input.

Run xnlinkfinder yourself

A target feeds xnLinkFinder, which extracts endpoints and a parameter wordlist and passes the routes to httpx for live probing before they land as a queryable output.

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