A powerful command-line interface wrapper for the C99.nl API. This tool provides quick and easy access to dozens of security, networking, and utility APIs directly from your terminal.
- Secure API Key Management: Never hardcode your API key in the script
- Multiple Output Formats: Choose between formatted text or JSON output
- Verbose Mode: Debug your requests with detailed logging
- Comprehensive Error Handling: Clear error messages and input validation
- 50+ Commands: Access all C99.nl API endpoints
-
Download the script:
curl -O https://raw.githubusercontent.com/yourusername/c99nl-cli/main/c99nl.sh chmod +x c99nl.sh
-
Set up your API key (choose one method):
Option 1: Environment Variable (Recommended)
# Add to your ~/.bashrc or ~/.zshrc export C99_API_KEY="your_api_key_here"
Option 2: Config File
# Create config file echo "your_api_key_here" > ~/.c99nl
Or use the alternative location:
mkdir -p ~/.config/c99nl echo "your_api_key_here" > ~/.config/c99nl/config
-
Verify installation:
./c99nl.sh --version ./c99nl.sh --help
c99nl.sh [OPTIONS] <COMMAND> [ARGUMENTS]-h, --help- Show help message-v, --verbose- Enable verbose output (shows the actual API URL being called)-j, --json- Output in JSON format--key <KEY>- Override API key for this request--version- Show version information
# Subdomain finder
./c99nl.sh cfsub example.com
# Whois lookup
./c99nl.sh whois example.com
# GeoIP lookup
./c99nl.sh geoip 8.8.8.8
# Port scan
./c99nl.sh portscan example.com
# Phone lookup
./c99nl.sh phone +1234567890# Get JSON output
./c99nl.sh --json whois example.com
./c99nl.sh -j cfsub example.com
# Verbose mode for debugging
./c99nl.sh -v geoip 8.8.8.8
# Combine options
./c99nl.sh -v -j cfsub example.com
# Use a different API key temporarily
./c99nl.sh --key "temporary_key" whois example.com# Set output format via environment variable
export C99_OUTPUT_FORMAT=json
./c99nl.sh whois example.com # Will output JSON
# Override with command-line flag
./c99nl.sh whois example.com # Text output (default)cfsub <DOMAIN>- Subdomain Finder and CloudFlare Resolverportscan <HOST>- Scan all ports of given hostscanport <HOST> <PORT>- Scan a single portnmap <HOST>- Perform nmap scanping <HOST>- Ping a host 4 timesip2host <IP>- Get hostname from IPhost2ip <HOST>- Get IP from hostnameadvdns <URL> <TYPE>- Advanced DNS check (types: a, aaaa, cname, mx, ns, soa, txt)domain <DOMAIN>- Check if domain is availablednshistory <DOMAIN>- Check domain IP historyip2domain <IP>- Find websites hosted on IPwhois <DOMAIN>- Whois lookupgeoip <IP>- Locate IP addressupdown <HOST>- Check if website is up or downheaders <URL>- Get website headersWAF <URL>- Detect firewall technology
phone <NUMBER>- Phone lookup (international format: +310000000000)sms <COUNTRY>- SMS receiver (Country codes: US, CA, UK)skypecheck <USERNAME>- Check if Skype account existsskype2ip <USERNAME>- Resolve Skype username to IPip2skype <IP>- Find Skype accounts by IPemail2skype <EMAIL>- Find Skype accounts by email
rep <URL>- Site/URL reputation checkervalidemail <EMAIL>- Validate email addresstempcheck <EMAIL>- Check if email is disposablevalidip <IP>- Validate IP address formattorcheck <IP>- Check if IP is from TOR networkproxy <LIMIT> <TYPE> <ANON> <COUNTRY>- Fetch proxy listdetectproxy <IP>- Detect if IP is a proxy/VPN
alexa <DOMAIN>- Get Alexa rankscreen <URL>- Create website screenshotbackup <URL>- Create online backup of linkshorten <URL>- Shorten URLtranslate <TEXT> <LANG>- Translate text to any languagedict <WORD>- Get word definitionsynonym <WORD>- Find synonymsreverse <IMAGE_URL>- Reverse image searchimg2txt <IMAGE_URL>- Extract text from image (OCR)weather <LOCATION>- Check weathergif <KEYWORD>- Find animated GIFs
genpassword <LENGTH> <INCLUDE>- Generate random passwordrandnumber <LENGTH> <MIN> <MAX>- Generate random numberlicense <TEMPLATE> <AMOUNT>- Generate license keys (wildcards: * alpha, % numeric, ? mixed)gennqr <STRING> <SIZE>- Generate QR coderandstr <URL_TO_TXT>- Pick random string from text fileinfo <GENDER>- Generate random person info (genders: male/female/all)
bitbalance <ADDRESS>- Check Bitcoin balancebitaccelerator <TXN_ID>- Accelerate Bitcoin transactionethbalance <ADDRESS>- Check Ethereum balancecurrency <AMOUNT> <FROM> <TO>- Convert currencycurrencyrate <CURRENCY>- Get currency rates
ytdetails <VIDEO_ID>- Get YouTube video detailsyt2mp3 <VIDEO_ID>- Convert YouTube video to MP3
iplogger- Create IP logger linkseitheror- Get random "would you rather" question
The script loads the API key in the following order (first found wins):
- Command-line argument:
--key <KEY> - Environment variable:
C99_API_KEY - Config file:
~/.c99nlor~/.config/c99nl/config
You can control the output format in multiple ways:
- Command-line flag:
-jor--json - Environment variable:
C99_OUTPUT_FORMAT=json
When JSON output is requested, the script will use:
jqif available (provides colored, formatted output)json_ppas fallback (Perl JSON formatter)- Raw output if neither is installed
Install curl:
# Ubuntu/Debian
sudo apt-get install curl
# macOS
brew install curl
# Windows (Git Bash includes curl)Make sure you've set your API key using one of the methods described in Installation.
Install jq for better JSON formatting:
# Ubuntu/Debian
sudo apt-get install jq
# macOS
brew install jq- Breaking Change: API key must now be set externally (not hardcoded in script)
- Added proper argument parsing with long options support
- Added
--json/-jflag for JSON output - Added
--verbose/-vflag for debugging - Added
--keyoption to override API key per request - Improved error handling and input validation
- Added dependency checks
- Added comprehensive help documentation
- Refactored code into modular functions
- Added URL encoding for special characters
- Better output formatting
- Initial release with basic functionality
Contributions are welcome! Please feel free to submit issues or pull requests.
This tool is provided as-is for use with C99.nl API services. Please review C99.nl's terms of service before use.
Created for the C99.nl API community. This is an unofficial tool and is not affiliated with C99.nl.