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.4IP successfully updated
nochg 1.2.3.4IP unchanged (already set)
badauthInvalid credentials
nohostHostname not found
911Server 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"