Update a hostname's IP address
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:secretpassword@dynupdate.no-ip.com/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.
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.1Host: dynupdate.no-ip.comAuthorization: Basic base64-encoded-auth-stringUser-Agent: Company DeviceName-Model/FirmwareVersionNumber maintainer-contact@example.com
Header Parameters
* User-Agent string
For hardware clients use the format:
User-Agent: Company DeviceName-Model/FirmwareVersionNumber maintainer-contact@example.com
For software clients use the format:
User-Agent: Company NameOfProgram/OSVersion-ReleaseVersion maintainer-contact@example.com
User Agent is important!
It helps us identify what Update Client is accessing us. This allows us to provide better technical support to YOUR USERS.
Authorization string
The authorization header is available as an alternative to the Basic Auth method of authenticating.
Example: Authorization: Basic base64-encoded-auth-string
Query Parameters
* hostname string
A comma separated list of hostnames and groups to be updated. Hostnames may be of type A, AAAA, or Port 80 Redirect. The update response will be in the same order as this list. Example:
Example: host1.example.com,group1,host2.example.com
Hostnames may not always appear as a proper DNS name, for example group and special-use names.
myip string
The IP address to which the hostnames will be set.
If no IP address is supplied, the client IP address connecting to our system will be used.
Clients behind NAT, for example, would not need to supply an IP address. If updating a dual-stacked DNS record (A and AAAA record for the same hostname), supply a comma separated list including your IPv4 and IPv6 address.
Example: 192.0.2.25,2001:0db8::2e
myipv6 string
The IPv6 address to which the hostnames with AAAA records will be set.
If myipv6 is supplied, this will override the IPv6 address in the myip field. This field is for compatibility with clients that do not allow IPv6 addresses in the myip field. The prefered method is to send the IPv6 address in the myip field.
offline string
Sets the current hostname to offline status.
Offline settings are an Enhanced / No-IP Plus feature. When offline mode is enabled, the hostname will use whatever offline method is selected on the No-IP.com website for that hostname.
Possible values are YES
and NO
with default of NO
.
If an update request is performed on an offline hostname, the hostname is removed from the offline state.
Example: NO
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. |