The caller's public IP address as the API sees it.
GET
/v1/whoami/ip
const url = 'https://api.opdns.io/v1/whoami/ip';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.opdns.io/v1/whoami/ipX-Forwarded-For is honoured only from the configured trusted proxies, the same
rule the DDNS host applies, so this is the address a linked IP or DDNS update
from the same network would record.
Responses
Section titled “Responses”Address.
Media typeapplication/json
object
ip
required
string
family
required
string
Example
{ "family": "ipv4"}Malformed request.
Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
code
required
Stable machine code.
string
detail
string
errors
Array<object>
object
field
required
string
message
required
string
request_id
string
retry_after
Seconds, repeating the Retry-After header (rate limits, offline nodes).
integer
Example
{ "type": "https://opdns.io/problems/bad_request", "title": "Bad Request", "status": 400, "code": "bad_request", "detail": "invalid JSON body", "request_id": "5f2c9a0e7b1d4c38"}Rate limited (rate_limited).
Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
code
required
Stable machine code.
string
detail
string
errors
Array<object>
object
field
required
string
message
required
string
request_id
string
retry_after
Seconds, repeating the Retry-After header (rate limits, offline nodes).
integer
Example
{ "type": "https://opdns.io/problems/rate_limited", "title": "Too Many Requests", "status": 429, "code": "rate_limited", "detail": "too many requests", "request_id": "5f2c9a0e7b1d4c38", "retry_after": 6}Headers
Section titled “Headers”Retry-After
integer