Skip to content

The python scripts validate the endpoints provided by user against a list of domains and subdomains. you can supply either a file which contains the endpoints or a comma sepearated list.

Notifications You must be signed in to change notification settings

Sid-Bahuguna/Sbow-Endpointer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Sbow Endpointer

A powerful Python script for checking multiple endpoints across multiple websites with advanced filtering, detailed host information, and flexible output options.

Features

  • Batch Checking: Test multiple endpoints across multiple websites in one run
  • Advanced Filtering: Filter results by HTTP status codes, keywords, or ranges (e.g., 2xx, 4xx)
  • Host Information: Collect IP addresses, page titles, server headers, and redirect locations
  • Flexible Input: Accept input from command-line arguments, files, or stdin
  • Multiple Output Formats: Display results in console, save to text files, or export to CSV
  • Customizable: Set timeouts, delays between requests, and custom User-Agent strings
  • Keyword Search: Search for specific keywords in response content

Requirements

  • Python 3.6 or higher
  • Dependencies listed in requirements.txt

Installation

  1. Clone or download this repository
  2. Install required packages:
pip install -r requirements.txt

Usage

Basic Examples

Check endpoints with inline parameters:

python endpoint_checker.py -e "/health,/status" -W "site1.com,site2.com"

Check endpoints from files:

python endpoint_checker.py -ef endpoints.txt -w websites.txt

Check with detailed output:

python endpoint_checker.py -e "/health" -W "site1.com" --details --host-info

Filtering Results

Filter by specific status codes:

python endpoint_checker.py -ef endpoints.txt -w websites.txt --status-codes "200,201,301"

Filter by status code ranges:

python endpoint_checker.py -ef endpoints.txt -w websites.txt --status-codes "2xx,3xx"

Filter by keyword in response:

python endpoint_checker.py -e "/admin" -w websites.txt -k "login" --status-codes "200"

Saving Results

Save URLs only to text file:

python endpoint_checker.py -ef endpoints.txt -w websites.txt --save-txt urls.txt --urls-only

Save minimal details to CSV:

python endpoint_checker.py -e "/health" -w websites.txt --save-csv results.csv --minimal-save

Save full details with host info:

python endpoint_checker.py -e "/health" -w websites.txt --host-info --save-csv detailed.csv

Save formatted report:

python endpoint_checker.py -e "/status" -w websites.txt --save-txt report.txt

Advanced Options

Set timeout and delay:

python endpoint_checker.py -e "/api" -w websites.txt -t 15 -d 0.5

Custom User-Agent:

python endpoint_checker.py -e "/health" -w websites.txt --user-agent "MyBot/1.0"

Command-Line Options

Input Options

Option Description
-e, --endpoints Comma-separated endpoints (e.g., "/health,/status")
-ef, --endpoints-file File containing endpoints (one per line)
-w, --websites-file File containing websites (one per line)
-W, --websites Comma-separated websites (e.g., "site1.com,site2.com")

Filtering Options

Option Description
--status-codes Filter by HTTP status codes (e.g., "200,301" or "2xx,4xx")
-k, --keyword Keyword to search for in response content

Output Options

Option Description
--details Show detailed output with response time and size
--host-info Include host information (IP, title, server, location)
--save-txt FILENAME Save results to text file
--save-csv FILENAME Save results to CSV file
--urls-only Save only URLs to text file (no other data)
--minimal-save Save minimal data to files (excludes host info)

Request Options

Option Description
-t, --timeout Request timeout in seconds (default: 10)
-d, --delay Delay between requests in seconds (default: 0)
--user-agent Custom User-Agent string

Input File Formats

Endpoints File (endpoints.txt)

/health
/status
/api/v1
/admin

Websites File (websites.txt)

example.com
sub.example.com
another-site.org

Lines starting with # are treated as comments and ignored. Empty lines are also ignored.

Output Formats

Console Output (Simple)

https://example.com/health -> 200 OK
https://example.com/status -> 200 OK

Console Output (Detailed)

https://example.com/health [200 OK] (0.25s, 1024 bytes)

Console Output (Full Details with Host Info)

URL: https://example.com/health
  Status: 200 OK
  Response Time: 0.25s
  Content Length: 1024 bytes
  IP Address: 93.184.216.34
  Title: Health Check
  Server: nginx/1.18.0

CSV Output

The CSV file includes columns:

  • website
  • endpoint
  • url
  • status_code
  • status_text
  • response_time
  • content_length
  • ip_address
  • title
  • server
  • location
  • keyword_found

Default Behaviors

  • Text files: Save full detailed output with all collected data (unless --urls-only specified)
  • CSV files: Save all available columns including host info if collected
  • Status codes: No filtering applied unless specified
  • Timeout: 10 seconds per request
  • Delay: No delay between requests (0 seconds)

Use Cases

  1. Health Monitoring: Check if critical endpoints are responding
  2. Migration Testing: Verify endpoints work across old and new domains
  3. Security Auditing: Find exposed admin panels or sensitive endpoints
  4. Load Testing Prep: Identify which endpoints are available before testing
  5. Documentation: Generate lists of available endpoints for API documentation
  6. Redirect Verification: Check if redirects are configured correctly

Best Practices

  • Use delays (-d) when checking many endpoints to avoid overwhelming servers
  • Start with a longer timeout (-t) for slower servers
  • Use --host-info sparingly as it adds overhead for DNS lookups and parsing
  • Save results to files for later analysis
  • Use status code ranges (2xx, 3xx) for broader filtering

Error Handling

The script handles various errors gracefully:

  • Network timeouts
  • DNS resolution failures
  • Connection errors
  • Invalid URLs
  • File not found errors

Errors are reported in the summary but don't stop the entire check process.

License

This script is provided as-is for educational and practical use.

Contributing

Feel free to submit issues, fork the repository, and create pull requests for any improvements.

Version History

  • v3.0: Added host information collection, CSV export, advanced filtering, and improved output options
  • v2.0: Added file input support and keyword filtering
  • v1.0: Initial release with basic endpoint checking

About

The python scripts validate the endpoints provided by user against a list of domains and subdomains. you can supply either a file which contains the endpoints or a comma sepearated list.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages