Update API (DDNS)

Revision of September 16, 2026

Protocol

Alviy updates dynamic addresses over the standard dyndns2 protocol — the same one DynDNS and No-IP use. Any stock client works: inadyn, ddclient, OpenWrt ddns-scripts, the built-in DDNS of routers (ASUS, Keenetic, MikroTik and others), as well as the Alviy clients.

The service address is fixed: dynupdate.alviy.com, HTTPS only.

Endpoints

RequestPurpose
GET https://dynupdate.alviy.com/nic/update?hostname=<host>&myip=<ip> address update, Basic authentication
GET https://dynupdate.alviy.com/token/update?hostname=<host>&token=<token>&myip=<ip> address update, token in the query ("secure update")
GET https://dynupdate.alviy.com/checkip caller's current external IP, text/plain, no authentication

hostname is required. myip is optional: when it is missing or does not parse as an IP address, the server uses the request source address — per the dyndns2 specification.

Authentication

/nic/update takes HTTP Basic:

  • username — your Alviy account email;
  • password — the host token (recommended) or the account password.

The host token is the same one /token/update takes. Enable it on the host page in the dashboard ("Secure update" section); it is valid for a single hostname only. Put the token — not the account password — into router configs: a leaked config does not expose the account, and the token can be revoked with one click.

Response codes

The response is plain text in the body; the HTTP status is always 200 (as with dyndns2). Clients parse the body literally.

ResponseMeaning
good <ip>address updated
nochg <ip>address unchanged (repeated updates are fine)
badauthwrong login, password or token
notfqdnhostname is missing or not a valid domain name
nohosthostname does not exist or does not belong to this account
911internal server error — retry later

Examples

curl
curl -u you@example.com:YOUR_TOKEN \
  "https://dynupdate.alviy.com/nic/update?hostname=myhost.didns.ru&myip=203.0.113.7"
# → good 203.0.113.7
inadyn (custom provider)
period = 300

custom alviy {
    username    = you@example.com
    password    = YOUR_TOKEN
    ddns-server = dynupdate.alviy.com
    ddns-path   = "/nic/update?hostname=%h&myip=%i"
    checkip-server = dynupdate.alviy.com
    checkip-path   = "/checkip"
    hostname    = myhost.didns.ru
}
ddclient
protocol=dyndns2
use=web, web=dynupdate.alviy.com/checkip
server=dynupdate.alviy.com
ssl=yes
login=you@example.com
password='YOUR_TOKEN'
myhost.didns.ru

Routers with a "custom" DDNS provider option: use the URL https://dynupdate.alviy.com/nic/update?hostname=<host>&myip=<ip> with the Basic credentials above.