Update IP

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:

  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:[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.

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.
Query Params
string
required

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: hostname=host1.example.com,group1,host2.example.com

If using DDNS Keys you may also set all.ddnskey.com as your hostname, this will update all hostnames attached to this DDNS key.

Hostnames may not always appear as a proper DNS name, for example group and special-use names.

string

The IP address to which the all hostnames in the update will be set to.

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

string

The IPv6 address to which the hostnames with AAAA records will be set.

Note: If myipv6 is supplied, this will override the IPv6 address in themyip field. This field is for compatibility with clients that do not allow IPv6 addresses in themyip field. The preferred method is to send the IPv6 address in themyip field.

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

Headers
string
required

For hardware clients use the format:
User-Agent: Company DeviceName-Model/FirmwareVersionNumber

For software clients use the format:
User-Agent: Company NameOfProgram/OSVersion-ReleaseVersion

Sending a properly formatted User-Agent is important!

This helps us identify which type of update client software is sending updates to No-IP. It also allows us to provide better technical support to your end users.

Clients that are sending an update without a descriptive User-Agent risk being blocked.

Response
200

Successful response

Language
Credentials
Basic
base64
:
LoadingLoading…
Response
Click Try It! to start a request and see the response here!