# Privacy Policy

## In plain language

Default checks are ephemeral and do not create a public saved result. Short-lived caches and operational logs may process the source IP needed to run and protect the service. A result is stored only when you explicitly request a saved result; retention and deletion details are below.

ifport.io checks TCP port visibility only for the observed request-source path that contacted the service.

## Default scans

- `GET /`, `GET /json`, and related scan endpoints are ephemeral by default.
- Default scans do not create a public result permalink, SVG card, or persisted evidence pack.
- Default scan responses may be held in a short technical cache for roughly 30-60 seconds.
- Default scan events are not written to the public result store.
- Runtime drift and incident correlation use one-way, per-process salted source fingerprints; the salt is not persisted and entries expire after 24 hours.

## Operational logs

- Edge access logs can contain the observed source IP, HTTP method, privacy-safe route, response status, request ID, timing, and build ID for abuse prevention, security investigation, and service operation. Query strings and saved-result tokens are not written to those edge log messages.
- Application scan log messages omit raw source IP, saved-result tokens, query strings, Referer, and User-Agent. They keep bounded scan metadata and the request ID needed to correlate an application event with its edge record.
- When private alert delivery is enabled, an alert event may include the observed source IP, User-Agent, request ID, and bounded scan summary so an operator can investigate an exposure change.
- Centralized operational logs are retained for up to 30 days. They are not public result permalinks and are not exposed through the public API.

## Explicit saved results

- Use `POST /results` only when you want a saved result. HTTP `202 Accepted` confirms queue acceptance, not a completed durable write; retry the returned result URL until it is readable.
- The main explicit-save Rabbit queue retains accepted work for up to 24 hours; poison messages can remain in its dead-letter queue for up to 7 days.
- Saved results use a random `result_token`; the public URL is not the internal scan UUID.
- Saved result pages, SVG cards, and evidence packs send `X-Robots-Tag: noindex, noarchive`.
- Saved results expire after 30 days under `explicit_persist_30d`.
- Saved results can be deleted with `DELETE /result/{result_token}` and `Authorization: Bearer {delete_token}`; `X-IfPort-Delete-Token` is also accepted for clients that cannot set Authorization.
- For explicit saved results, the observed source IP is stored in clear text until expiry or deletion so the saved evidence can describe what was observed.
- Expiry and authenticated deletion remove the live public database row. Encrypted backups may retain a pre-deletion copy for up to 3 days locally and 14 days off-host; those backups are not public.
- If a backup taken before deletion is restored, there is no deletion tombstone to replay: the result can reappear until its original expiry or a repeated authenticated deletion.

## Contacts

For abuse reports or security issues, contact abuse@ifport.io or security@ifport.io.
General troubleshooting support is not provided for free public scans.
