# About ifport.io

IfPort reports which inbound TCP ports are reachable on the public IP that made the request.

It is like `what is my IP`, but for visible TCP ports: run it from the agent, CI runner, VPS, container, browser, or operator network path you want to understand.

## What is checked

The public service scans only the observed request-source path reported by ifport.io. Behind NAT, a VPN or a proxy, that address may belong to a shared exit point rather than to your device. It does not accept `ip`, `host`, `target`, `cidr`, `range`, `url`, `domain`, source-IP search, common aliases such as `hostname` or `target_ip`, or any arbitrary third-party target input.

This is not a vulnerability scanner and it does not prove a host is safe. It reports bounded TCP port visibility for the selected profile from the selected scan vantage.

## Data and saved results

Default scans are ephemeral. Request saved result permalinks only explicitly with `POST /results`; HTTP `202 Accepted` means the persistence queue accepted the event, not that durable storage is already complete. Retry the returned result URL until it is readable. Saved result pages are `noindex,noarchive` and can be deleted with the returned delete token.

Start in the browser at `/`, request machine-readable output from `GET /json`, or connect an MCP client to `POST /mcp`. Read `/docs` for examples, parameters and response fields. `GET /network-path` explains the observed source without running a scan.

Saved-result endpoints are method-specific: `POST /results` requests an explicit saved result and returns `202 Accepted` after queue acceptance, `GET /result/{token}` retrieves it after persistence completes, `GET /result/{token}/evidence` retrieves its proof pack, `GET /result/{token}.svg` retrieves its SVG card, and `DELETE /result/{token}` deletes it with the returned delete token.
