TCP Port Scanner
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.
Offering
- Provider
- port-scanner.underscoredone.com
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Infrastructure
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://port-scanner.underscoredone.com/scan- MIME type
- application/json
- First seen
- 2026-10-16T01:50:10.647Z
- Last seen
- Tags
- port scanner, port scan, open ports, tcp port scanner, scan ports
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.01 USDC
Atomic price: 10000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 2
- 0.01 USDC
Atomic price: 10000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"payTo": "0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08"
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "10000",
"payTo": "8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b"
}
]Observed health
- Status
- Reachable
- Latest latency
- 83 ms
- Average latency
- 477 ms
- HTTP status
- 405
- Last checked
- Reachability
- 88.9% over 9 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"enum": [
"POST",
"PUT",
"PATCH"
]
},
"bodyType": {
"type": "string",
"enum": [
"json",
"form-data",
"text"
]
},
"body": {
"type": "object",
"properties": {
"target": {
"type": "string",
"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."
},
"ports": {
"type": "string",
"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."
},
"scan_type": {
"type": "string",
"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."
},
"timeout": {
"type": "integer",
"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."
}
},
"required": [
"target"
],
"additionalProperties": false
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"api_version": {
"type": "string"
},
"target": {
"type": "string"
},
"resolved_ip": {
"type": "string"
},
"scan_type": {
"type": "string"
},
"duration_ms": {
"type": "integer"
},
"complete": {
"type": "boolean"
},
"ports_requested": {
"type": "integer"
},
"ports_scanned": {
"type": "integer"
},
"open_ports": {
"type": "array",
"items": {
"type": "object"
}
},
"closed_or_filtered_count": {
"type": "integer"
},
"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"
]
}
},
"required": [
"type"
]
}