Perform a dynamic DNS update for a hostname or DDNS key
GET https://dynupdate.no-ip.com/nic/update
If ports 80 and 443 are blocked, port 8245 is available.
This documentation is for the Dynamic DNS Integration API, a simple Dynamic DNS protocol which is separate from the No-IP API. If you're looking to update a hostname's IP address with the No-IP API, check the Replace Rdata documentation. Learn more about the differences between the No-IP API and the Dynamic DNS Integration API.
To dynamically update a hostname's IP address, send an HTTP request which performs the following:
- Authenticates using a DDNS Key.
- Provides a User Agent in the HTTP header.
- Specfies the hostname and IP address with query parameters.
Authentication
Username/Password Basic Auth
Create a DDNS Key for a hostname (or a group of hostnames), then use the provided username/password with basic auth:
http://rv7sc9a:[email protected]/nic/update?hostname=mytest.example.com&myip=192.0.2.25
Where rv7sc9a
is the DDNS Key username and secretpassword
is the DDNS key password which was generated.
Note: Account credentials can also be used, but this method is being phased out as we migrate to everyone using DDNS Keys for authenticating DDNS update clients.
Authorization Header
The Authorization
header's value should be the base64 encoding of the DDNS key's username and password, separated by a colon: username:password
.
GET /nic/update?hostname=mytest.example.com&myip=192.0.2.25 HTTP/1.1
Host: dynupdate.no-ip.com
Authorization: Basic base64-encoded-auth-string
User-Agent: Company DeviceName-Model/FirmwareVersionNumber maintainer- [email protected]
Response
Note that Response content type is text/plain
.
Text | Description |
---|---|
good IP_ADDRESS | DNS hostname update successful. Followed by a space and the IP address it was updated to. |
nochg IP_ADDRESS | The IP address returned will be the IPv4 address, if an IPv4 is supplied. If IPv4 and IPv6 are both supplied, both ips will be returned in a comma separated list. If only an IPv6 address is supplied, an IPv6 address (only) will be returned. IP address is current, no update performed. Followed by a space and the IP address that it is currently set to. The IP address returned will be the IPv4 address if an IPv4 is supplied. If IPv4 and IPv6 are both supplied, both ips will be returned in a comma separated list. If only an IPv6 address is supplied, an IPv6 address (only) will be returned. Note: Excessive nochg responses may result in your client being blocked. |
nohost | Hostname supplied does not exist under specified account, client exit and require user to enter new login credentials before performing an additional request. |
badauth | Invalid username password combination. |
badagent | Client disabled. Client should exit and not perform any more updates without user intervention. Note: You must use the recommended User-Agent format specified when Submitting an Update, failure to follow the format guidelines may result in your client being blocked. |
!donator | An update request was sent, including a feature that is not available to that particular user such as offline options. |
abuse | Username is blocked due to abuse. Either for not following our update specifications or disabled due to violation of the No-IP terms of service. Our terms of service can be viewed here. Client should stop sending updates. |
911 | A fatal error on our side such as a database outage. Retry the update no sooner than 30 minutes. A 500 HTTP error may also be returned in case of a fatal error on our system at which point you should also retry no sooner than 30 minutes. |