Automatic IP resolution
OTP.ID resolves the request IP automatically using the first valid value in this order when the transport peer is a local/private reverse proxy or a Cloudflare edge:CF-Connecting-IP— the original visitor IP supplied by CloudflareX-Real-IP— commonly set by a reverse proxy- The first address in
X-Forwarded-For— the left-most client address - The direct connection address
CF-Connecting-IP is used. If the Cloudflare proxy is turned off and that header is absent, OTP.ID falls back automatically to the other headers or the direct peer address. If a request reaches the origin directly from a public peer, forwarding headers are ignored and the actual peer address is used instead.
Whitelist format
Provide a comma-separated list of exact public IP addresses:- Whitespace around each comma-separated value is ignored.
- IPv4 and IPv6 are supported.
- CIDR notation such as
203.0.113.0/24is not accepted. - An empty whitelist allows every valid resolved IP.
- A malformed whitelist is rejected safely; it does not silently broaden access.
Rejected request
When the resolved IP is not listed, the API returns HTTP403:

