free
ipv4 + ipv6
api-based
Dynamic DNS for every device
Point a stable hostname like yourname.n.ipn.fyi to your changing IP address. Perfect for home servers, IoT devices, and anything with a dynamic IP.
coverage
IPv4 & IPv6
Full dual-stack support. Update either address independently or both at once.
automation
REST API
One curl command to update your IP. Works with cron, systemd timers, or the CLI client.
tracking
250-Entry History
Every IP change is logged. Audit your address history any time via the API.
Quick Start
update your IP in seconds
POST — update via JSON body
curl -X POST https://ipn.fyi/api/update \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"yourname","ipv4":"1.2.3.4"}'
GET — simple one-liner for scripts
curl "https://ipn.fyi/api/update?key=YOUR_API_KEY&domain=yourname&ipv4=1.2.3.4"
Python CLI client — install once, run everywhere
# install
pip install ipn-fyi
# register & login
ipn register
ipn login
# update your IP (auto-detected)
ipn update
# run as a background daemon (updates every 5 min)
ipn daemon --interval 300
API Reference
all endpoints require X-API-Key header
- GET /api/health Service health check — no auth required
- POST /api/auth/register Register a new account and receive an API key
- POST /api/auth/login Login with username + password, returns API key
- POST /api/update Update IPv4/IPv6 for a domain
- GET /api/update Update via query params — ?key=&domain=&ipv4=
- GET /api/records List your DNS records — optional ?domain=
- GET /api/history IP change history — optional ?domain=&limit=
- DEL /api/record/:domain Delete a DNS record
Automate with systemd
keep your IP current on Linux
/etc/systemd/system/ipn-update.service
[Unit]
Description=ipn.fyi IP updater
[Service]
ExecStart=ipn update --auto
Restart=always
RestartSec=300
[Install]
WantedBy=multi-user.target