Dynamic DNS
Learn about Dynamic DNS and how to update DNS records using the Dynamic DNS API.
These instructions apply to our new Cloud DNS. You can find clients for Legacy DNS here: DynDNS Clients
1. What is Dynamic DNS?
2. Setting Up DynDNS
3. Frequently Asked Questions (FAQ)
1. What is Dynamic DNS?
Dynamic DNS (DynDNS, DDNS) is a service that can automatically update DNS records when an IP address changes. DynDNS is often used, for example, when you want to make a server located at someone’s home accessible, even if the IP address changes regularly due to the internet service provider. With the DynDNS API, you can automatically update the A- (IPv4) and/or AAAA-Record (IPv6) for a domain or subdomain in your netcup account. With DynDNS, your router or a script checks the URL at regular intervals and automatically enters the current IP address into your CloudDNS zone.
Requirements
To use the DynDNS API, you need to meet certain requirements:
- The domain must be managed through CloudDNS.
- You have a valid authentication token.
- At least one IP address (IPv4 or IPv6) is passed, for example: https://customercontrolpanel.de/wsDynDns.php?action=update&token=YOUR_TOKEN&fqdn=home.example.com&ipv4Address=203.0.113.10
- For IPv6, you must also specify ipv6Address , or use it as an alternative: https://customercontrolpanel.de/wsDynDns.php?action=update&token=YOUR_TOKEN&fqdn=home.example.com&ipv4Address=203.0.113.10&ipv6Address=2001:db8::10
The parameters can be passed using the HTTP GET(URL) or POST requests.
Parameter
Below, you’ll find an overview of the parameters used:
Parameter
Requirement
Type
Description
Action
Yes
String
Must be set to Update , other values are rejected with HTTP error code 404
Token
Yes
String
An authentication token that associates the request with the corresponding customer account, invalid or unknown tokens are rejected with HTTP error code 401
FQDN (Fully Qualified Domain Name)
Yes
String
Fully qualified domain name of the entry to be updated, e.g., “example.com” or “home.example.com”; must be a valid domain name and belong to a domain that exists in the token’s account
ipv4Address
Optional
String
New IPv4 address for the A-Record, must be a valid IPv4 address
ipv6Address
Optional
String
New IPv6 address for the AAAA-Record, must be a valid IPv6 address
Please note that at least one of the two parameters, ipv4Address or ipv6Address , must be set. If this is not the case, the request is rejected with HTTP error code 400.
Details on Individual Parameters
FQDN
- DynDNS automatically determines which part of the FQDN is the domain associated with the account and which part is the host. This is also determined for multipart top-level domains (TLDs), such as “.co.uk”.
- “home.example.com” → domain: “example.com”, host: “home”
- “example.com” → domain: “example.com”, host: ”@” (Zone root)
- Internationalized domain names are internally converted to Punycode.
- If no matching domain is found in the account, the request is rejected with HTTP error code 404.
- If the domain is not managed via CloudDNS, the request is rejected with HTTP error code 400.
ipv4Address / ipv6Address
- New entries are created with the default time-to-live (TTL) and the default region.
- Both A- and AAAA-Records can be updated in a single call.
2. Setting Up DynDNS
You can find instructions for setting up DynDNS on your FRITZ!Box here:
- https://fritz.com/en-at/apps/knowledge-base/FRITZ-Box-7590/30_Setting-up-dynamic-DNS-in-the-FRITZ-Box (external link)
During the setup process, enter the following information in the fields provided:
- Update URL: https://customercontrolpanel.de/wsDynDns.php?action=update&token=
&fqdn= &ipv4Address=ipaddr>&ipv6Address= - Domain Name: <sub.domain.tld>
- Username: Customer Number
- Password
Update Behavior
The existing A- or AAAA-Record for the identified host is checked:
- The record already exists with exactly this IP address.
- No change is necessary.
- The record already exists with a different IP address.
- The record is updated with the provided IP address.
- The record does not exist yet.
- A new record is created. If this results in actual changes, they are saved in the CloudDNS zone. If all the provided values are already set, no changes are made.
Response Format
The response is returned as JSON (Content Type: text/json; charset=utf-8):
{ "status": "success", "message": "Record(s) have been saved."}Field Description
Field
Description
Status
Success if successful, otherwise Error
Message
Human-readable status message
Possible Message Values on Success
- “Record(s) have been saved.”
- “No record update needed.”
HTTP Status and Error Codes
HTTP Code
Message
Status/Error
200
“Record(s) have been saved.” / “No record update needed.”
Successfully processed
400
“At least one of the two fields need to be specified: ipv4Address , ipv6Address.”
Neither an IPv4 nor an IPv6 address was transferred
400
“At least one of the two fields need to be specified: ipv4Address , ipv6Address.”
Invalid parameter format
400
“This domain is not managed through CloudDNS, for this reason this service will not work.”
Domain is not managed through CloudDNS
401
“Unable to authenticate with provided token.”
Token is invalid or unknown
404
“No matching domain for the given fqdn was found in your account.”
No matching domain in the account
404
“Requested action is not known or not implemented.”
Action is missing or is not equal to Update
500
“An error occurred while trying to … Please reach out to our support.”
Internal error accessing the CloudDNS zone/records
400
”< feld> is a required field.”
Required parameter (token , fqdn) is missing
3. Frequently Asked Questions (FAQ)
The propagation of updated DNS records depends on the configured TTL and how resolvers/DNS servers update the DNS, it can take up to 48 hours. However, the DNS records are usually propagated to the major resolvers/DNS servers within a very short time.
No, that’s not possible. However, you’re welcome to use our DNS API to automatically manage additional DNS records.
You may also be interested in:
Setting Up Your Own Nameservers (CloudDNS)
Last update: 28 August 2026