Give this API a hostname or IP address and it tries connecting to each port in y
Give this API a hostname or IP address and it tries connecting to each port in your requested range. For every port that answers it reports whether it is open or blocked, which service is likely running there (a web server, SSH), and what software version was detected. Saves you installing network tools, parsing command-line output, or writing socket loops. Only scan hosts you own or have permission to scan - this tool does not check that for you.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
521 msmedian answer time
$0.01listed price per call
$0.01price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://port-scanner.underscoredone.com/scan
| Category | Everything else |
|---|---|
| Provider host | port-scanner.underscoredone.com |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 4 from 3 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.01 | 521 ms |
Example input (from the provider)
{
"body": {
"ports": "1-1000",
"scan_type": "tcp_connect",
"target": "scanme.nmap.org",
"timeout": 30
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"ports": {
"description": "Which ports to check. Use a range like '1-1000', a comma-separated list like '22,80,443', or leave this out to automatically check the 1000 most commonly used ports.",
"type": "string"
},
"scan_type": {
"description": "How to probe each port. The only supported value right now is 'tcp_connect', which tries to open a full connection - the same way a browser or app would. Defaults to 'tcp_connect' if left out.",
"type": "string"
},
"target": {
"description": "The hostname (like 'example.com') or numeric IP address (like '93.184.216.34') you want to scan. Must be a real, reachable address.",
"type": "string"
},
"timeout": {
"description": "How many seconds the scan is allowed to run before giving up. Must be between 5 and 60. Defaults to 30 if left out.",
"type": "integer"
}
},
"required": [
"target"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"api_version": {
"type": "string"
},
"closed_or_filtered_count": {
"type": "integer"
},
"complete": {
"type": "boolean"
},
"duration_ms": {
"type": "integer"
},
"open_ports": {
"items": {
"type": "object"
},
"type": "array"
},
"ports_requested": {
"type": "integer"
},
"ports_scanned": {
"type": "integer"
},
"resolved_ip": {
"type": "string"
},
"scan_type": {
"type": "string"
},
"target": {
"type": "string"
},
"warning": {
"type": "string"
}
},
"required": [
"api_version",
"target",
"resolved_ip",
"scan_type",
"duration_ms",
"complete",
"ports_requested",
"ports_scanned",
"open_ports",
"closed_or_filtered_count",
"warning"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}