Shodan
Query the Shodan internet-wide scan database to find and profile internet-exposed devices. Single API key resolved from vault. Read the account plan and remaining credits, run searches that return trimmed device records (IP, org, product, location, open port, CVEs) with facet rollups, count results without spending query credits, pull the full banner history for one IP, do keyless InternetDB lookups (ports, CPEs, tags, CVEs), and request on-demand scans of IPs you own. Built for AV/IoT exposure recon.
Initial release: Shodan OSINT model + shodan-av-recon workflow for AV/IoT exposure recon.
| Argument | Type | Description |
|---|---|---|
| query | string | Shodan search query, e.g. product:"Crestron" or "AMX NetLinx" |
| city? | string | Optional city filter to append |
| country? | string | Optional 2-letter country code filter to append |
| facets? | string | Comma-separated facets for rollups, e.g. country,org,product |
| page | number | Result page (100 per page) |
| limit | number | Cap the number of device records returned (1-100) |
| Argument | Type | Description |
|---|---|---|
| query | string | Shodan search query |
| city? | string | Optional city filter to append |
| country? | string | Optional 2-letter country code filter to append |
| facets? | string | Comma-separated facets for rollups, e.g. country,org,product,port |
| Argument | Type | Description |
|---|---|---|
| ip | string | IP address to look up |
| history | boolean | Include historical banners |
| Argument | Type | Description |
|---|---|---|
| ip | string | IP address to look up |
| Argument | Type | Description |
|---|---|---|
| ips | string | Comma-separated IPs or CIDR ranges to scan |
Resources
One-command Shodan reconnaissance run for internet-exposed AV/IoT gear. Confirms the account and remaining credits, counts how many matching devices are exposed worldwide (free, no query credits) with facet rollups, then pulls a trimmed page of the actual devices. Scope it with an optional city/country. Passive OSINT only: it reads Shodan's index and never touches the devices. Steps run sequentially because they share one model instance and would otherwise contend on the per-model lock.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned