Skip to main content

Robofinder

PyPI Downloads Python 3.8+ License Stars

 _____       _            __ _           _           
|  __ \     | |          / _(_)         | |          
| |__) |___ | |__   ___ | |_ _ _ __   __| | ___ _ __ 
|  _  // _ \| '_ \ / _ \|  _| | '_ \ / _` |/ _ \ '__|
| | \ \ (_) | |_) | (_) | | | | | | | (_| |  __/ |   
|_|  \_\___/|_.__/ \___/|_| |_|_| |_|\__,_|\___|_|   
                                                     

Uncover hidden endpoints by mining every historical robots.txt snapshot from the Wayback Machine.


Why Robofinder?

Sites regularly scrub sensitive paths from robots.txt — but the Wayback Machine keeps every version ever crawled.

Robofinder queries Archive.org's CDX API to pull all historical robots.txt snapshots for a target, deduplicates every Allow, Disallow, and Sitemap directive, and prints the full list. Paths that were quietly removed from production may still be alive and reachable.

Built for: bug bounty recon · OSINT · attack-surface mapping · forgotten endpoint discovery


Install

pip install robofinder
Install from source
git clone https://github.com/Spix0r/robofinder
cd robofinder
pip install .

Quick start

# Single target
robofinder -u https://example.com

# Full URLs ready to probe
robofinder -u https://example.com -c

# Pipe straight into httpx or nuclei
robofinder -u domains.txt -c -s | httpx -silent -mc 200
robofinder -u https://example.com -c -s | nuclei -t exposures/

Usage

robofinder -u URL [options]
Flag Long form Default Description
-u --url — Target URL or file with one URL per line
-o --output — Output to terminal (no value) or save to file (with value)
-f --format txt Output format: txt, json, or both
-c — Prefix each path with the target URL (full URLs)
-p — Extract URL parameters from historical paths
-t --threads 1 Number of fetch threads
-r --rate-limit 2.0 Max requests/sec sent to Archive.org
--cooldown 10 Seconds to wait between domains
-s --silent — Suppress the banner
--debug — Verbose debug output (goes to stderr)

Scan a list of domains

Create domains.txt:

https://example.com
https://target.org
api.example.com
robofinder -u domains.txt -o all_paths.txt

JSON output with jq

# Save to file
robofinder -u https://example.com -f json -o results

# Pipe to jq
robofinder -u https://example.com -f json | jq '.["example.com"].paths[]'

# Count paths per domain
robofinder -u domains.txt -f json | jq 'to_entries[] | "\(.key): \(.value.count) paths"'

Extract forgotten URL parameters

robofinder -u https://example.com -p
# returns parameter names found in historical paths, e.g.:
# id
# token
# redirect_url

Rate limiting

Robofinder ships with a token-bucket rate limiter so it never hammers Archive.org.

  • Default: 2 req/s — well within Archive.org's tolerance.
  • On HTTP 429: exponential back-off with automatic retry.
  • On timeout/connection errors: retries with backoff (up to 7 attempts).
  • Override with -r: use -r 0.5 to be conservative or -r 5 on a fast connection.
# Conservative mode
robofinder -u https://example.com -r 1 --cooldown 30

Changelog

See CHANGELOG.md.


License

MIT © Spix0r

Metadata

Release files for robofinder 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robofinder 0.2.2
File Size Uploaded
robofinder-0.2.2.tar.gz 8.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robofinder 0.2.2
File Interpreter ABI Platform
robofinder-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 17.8 kB

Release files / robofinder-0.2.2.tar.gz

Download URL robofinder-0.2.2.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2a70624e54370835b54836a8b524fe717e3726a5cfde3764d7e9d843105769fb
BLAKE2b-256 checksum
How to use checksums
f16c9cd9c7e791f7d94abc9a5e6a49548251ed50093abc5f122569f5525185c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / robofinder-0.2.2-py3-none-any.whl

Download URL robofinder-0.2.2-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8623021d2fcfee0aa87712d58794df01f6d50c08c4e8d9508a971bacbd0adc81
BLAKE2b-256 checksum
How to use checksums
2648813a29336231becf10c83340b4688827564984fc936731ec8687c16eec08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page