Open-source panel for aggregating publicly available OSINT data: domain WHOIS, IP geolocation, basic email checks, and SSL certificate info.
⚠️ Scope of use. This tool only works with publicly accessible technical data (domains, IPs, DNS, certificates). It is not intended and must not be used for searching leaked databases, deanonymizing individuals, collecting personal data without consent, or any activity that violates privacy or data protection laws.
Features
- WHOIS — registrar, creation/expiration dates, name servers, status
- IP Geolocation — country, city, ISP via a public API (ipinfo.io)
- Email check — format validation and domain MX record lookup
- SSL info — issuer, validity period, and SAN of a site's certificate
Project Structure
osint-panel/
├── app/
│ ├── __init__.py # app factory
│ ├── config.py # configuration
│ ├── routes.py # routes / API
│ ├── modules/ # OSINT module logic
│ │ ├── whois_lookup.py
│ │ ├── ip_geolocation.py
│ │ ├── email_check.py
│ │ └── ssl_info.py
│ ├── templates/
│ │ └── index.html
│ └── static/
│ ├── style.css
│ └── app.js
├── dist/
│ └── osint-panel-ui.exe # desktop UI build (Windows)
├── tests/
│ └── test_email_check.py
├── run.py
├── requirements.txt
├── .env.example
└── README.md
Desktop UI (.exe)
In addition to running it in a browser, a ready-to-use desktop build is available for Windows:
Download and run it — the app will spin up a local server and open the panel's interface in its own window, no need to manually run python run.py and open a browser.
Installation
git clone <repo-url>
cd osint-panel
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
Fill in .env if needed (an ipinfo.io token raises your request rate limit).
Running
python run.py
The panel will be available at http://localhost:5000.
API
All endpoints accept POST requests with a JSON body and return JSON.
| Endpoint | Parameter | Description |
|---|---|---|
/api/whois |
domain |
WHOIS data for a domain |
/api/ip |
ip |
Geolocation for an IP address |
/api/email |
email |
Format and MX record check |
/api/ssl |
hostname |
SSL certificate information |
Example request:
curl -X POST http://localhost:5000/api/whois \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'
Tests
pip install pytest
pytest tests/
Extending
To add a new module:
- Create a file in
app/modules/implementing a function that returns adict - Add a route in
app/routes.py - Add a card to
app/templates/index.htmland a call inapp/static/app.js
Planned extensions: Shodan integration (service banners by IP), breach checks via public aggregate services with a transparent consent flow, PDF/CSV report export.
Comments