API Documentation
Update your dynamic DNS records and read account data 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=...
Read API
Read your zones, custom domains, and DNS records as JSON. All endpoints use Bearer token authentication. Find your API token on your Account Settings page.
Authentication
Authorization: Bearer YOUR_API_TOKEN
Endpoints
| Method | Path | Returns |
|---|---|---|
GET |
/api/v1/me |
Account snapshot — user info, zones, and domains in one call |
GET |
/api/v1/zones |
All your free zones with IPs, state, and last check-in time |
GET |
/api/v1/zones/:id |
Single zone including MX and webjump fields |
GET |
/api/v1/domains |
All your custom domains with serial and nameserver status |
GET |
/api/v1/domains/:id |
Single domain with full nameserver detail |
GET |
/api/v1/domains/:id/records |
DNS records for a domain (active records only) |
Example
# List all your zones curl -H "Authorization: Bearer YOUR_API_TOKEN" \ https://kyedns.com/api/v1/zones # Get DNS records for a domain (replace 42 with the domain id from /api/v1/domains) curl -H "Authorization: Bearer YOUR_API_TOKEN" \ https://kyedns.com/api/v1/domains/42/records
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"