Skip to content

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:

  1. Authenticates using a DDNS Key.
  2. Provides a User Agent in the HTTP header.
  3. 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.1
Host: dynupdate.no-ip.com
Authorization: Basic base64-encoded-auth-string
User-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.

TextDescription
good IP_ADDRESSDNS hostname update successful. Followed by a space and the IP address it was updated to.
nochg IP_ADDRESSThe 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.
nohostHostname supplied does not exist under specified account, client exit and require user to enter new login credentials before performing an additional request.
badauthInvalid username password combination.
badagentClient 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.
!donatorAn update request was sent, including a feature that is not available to that particular user such as offline options.
abuseUsername 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.
911A 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.