API Documentation
Update your dynamic DNS records programmatically
DynDNS2 Protocol (Standard)
KyedNS supports the standard DynDNS2 protocol used by routers, ddclient, and other DynDNS clients.
Update IP Address
GET https://kyedns.com/api/v1/nic/update?hostname=HOSTNAME&myip=IP_ADDRESS
| Parameter | Required | Description |
|---|---|---|
hostname | Yes | Full hostname (e.g., myserver.dyndns.dk or api.example.com) |
myip | No | IP address to set. Omit to use your current IP automatically. |
Authentication
Use HTTP Basic Auth:
- Username: the full hostname
- Password: the update token set in the record settings
Response Codes
| Response | Meaning |
|---|---|
good 1.2.3.4 | IP successfully updated |
nochg 1.2.3.4 | IP unchanged (already set) |
badauth | Invalid credentials |
nohost | Hostname not found |
911 | Server error |
Examples
curl
# Update with auto-detected IP curl -u "myserver.dyndns.dk:YOUR_TOKEN" \ "https://kyedns.com/api/v1/nic/update?hostname=myserver.dyndns.dk" # Update with specific IP curl -u "myserver.dyndns.dk:YOUR_TOKEN" \ "https://kyedns.com/api/v1/nic/update?hostname=myserver.dyndns.dk&myip=203.0.113.50" # Update IPv6 curl -u "myserver.dyndns.dk:YOUR_TOKEN" \ "https://kyedns.com/api/v1/nic/update?hostname=myserver.dyndns.dk&myip=2001:db8::1"
ddclient
# /etc/ddclient.conf protocol=dyndns2 use=web, web=https://kyedns.com/ip ssl=yes server=kyedns.com login=myserver.dyndns.dk password='YOUR_TOKEN' myserver.dyndns.dk
PowerShell (Windows)
$cred = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("myserver.dyndns.dk:YOUR_TOKEN"))
Invoke-WebRequest -Uri "https://kyedns.com/api/v1/nic/update?hostname=myserver.dyndns.dk" `
-Headers @{Authorization = "Basic $cred"}
Other Endpoints
Check your IP
GET https://kyedns.com/ip
Returns your public IP address as plain text. No authentication required.
Alternative update endpoints
These are equivalent to the primary endpoint above and exist for compatibility:
/api/v1/update?hostname=...&token=.../api/v1/domain_update?hostname=...&token=...
Dual-Stack (IPv4 + IPv6)
KyedNS supports dual-stack: both IPv4 and IPv6 addresses for the same hostname. Each protocol updates independently — sending an IPv4 address preserves the existing IPv6, and vice versa.
# Update IPv4 (keeps existing IPv6) curl -u "host:token" "https://kyedns.com/api/v1/nic/update?hostname=host.dyndns.dk&myip=1.2.3.4" # Update IPv6 (keeps existing IPv4) curl -u "host:token" "https://kyedns.com/api/v1/nic/update?hostname=host.dyndns.dk&myip=2001:db8::1"