Skip to content
The No-IP API is in beta and we are actively working on new features and endpoints

Dynamic DNS Quickstart

  1. Audience
  2. Create a No-IP API key
  3. Create a Zone
  4. Create a Hostname
  5. Create a DDNS Key
  6. Issue an Update

Audience

This guide is for new users that need to set up a hostname and manage its address via an update device such as a camera, router, or software updater. In this guide you will create API and DDNS keys, bootstrap a new zone and hostname, then update that name’s address via Dynamic DNS Integration API. You will use both the No-IP API and the Dynamic DNS Integration API.

Create a No-IP API key

First, sign into your No-IP account and navigate to the API Key management page. Here you will create your first No-IP API Key.

Terminal window
# Assign the API key you just generated. It should begin with 'sk_'
export API_KEY="sk_..."

Note: The API Key will only be shown once. If you lose it, you will have to generate a new one. No-IP does not store the original key.

Create a Zone

First, we will create a new zone. We’ll use example.com in this guide. Replace it with your own domain.

Terminal window
curl --user ":${API_KEY}" \
--json '{ "name": "example.com" }' \
"https://api.noip.com/v1/dns/zones"

Verify the Zone

List the zones in the account to see the new zone.

Terminal window
curl --user ":${API_KEY}" "https://api.noip.com/v1/dns/zones"
{
"page": {
"offset": 0,
"limit": 50,
"total": 1
},
"data": [
{
"name": "example.com",
"zone_type": "primary",
"nx_ttl": 1800,
"is_shared": false,
"is_owner": true,
"publication_state": "publishrequested",
"is_write_prohibited": false,
"created_at": "2024-03-28T21:50:59Z",
"updated_at": "2024-03-28T21:50:59Z"
}
]
}

Create a Hostname

Create a record for myhost.example.com.

Note that in this example you will replace example.com in the URL path.

Terminal window
curl --user ":$API_KEY" \
--json '{ "name": "myhost", "rrsets": [{ "dns_type": "A", "rdata": [{ "value": "0.0.0.0" }]}] }' \
"https://api.noip.com/v1/dns/records/example.com"

Verify the Record

View the RRSet you just created. An RRSet is the values that are served for a DNS record name and type.

Note that in this example you will replace example.com in the URL path.

Terminal window
curl --user ":$API_KEY" \
"https://api.noip.com/v1/dns/records/example.com/myhost/rrsets"
{
"page": {
"offset": 0,
"limit": 50,
"total": 1
},
"data": [
{
"name": "myhost",
"dns_type": "A",
"ttl": 1800,
"metadata": {},
"rdata": [
{
"value": "0.0.0.0",
"label": "gwoNEVtjNU3n"
}
],
"updated_at": "2024-03-28T22:07:53Z"
}
]
}

Create a DDNS Key

Create a DDNS key. A DDNS key has a username and password which is used to authenticate with the Dynamic DNS Integration API.

Terminal window
curl --user ":$API_KEY" \
--json '{ "description": "northeast-office" }' \
"https://api.noip.com/v1/account/ddns-keys"
{
"credentials": {
"username": "5fqy9st",
"password": "xxxxxxxxxxxx"
}
}

This response is the only time the password will be visible!

Terminal window
# assign the output of the previous command to a variable in this format for later use.
export DDNS_KEY="5fqy9st:xxxxxxxxxxxx"

Verify Your DDNS Key

Note: When using DDNS Keys, you will set your hostname to “all.ddnskey.com”. You can read more details about DDNS Keys in the No-IP knowledgebase.

The credential can be verified directly with the Dynamic DNS Integration API.

Terminal window
curl --user "${DDNS_KEY}" \
--header "User-Agent: DDNSQuickstartGuide" \
"https://dynupdate.no-ip.com/nic/update?hostname=all.ddnskey.com"

Example response:

nochg 0.0.0.0

Add the Hostname to the DDNS Key

In the previous command, we verified the DDNS key credentials, but did not issue an IP update to the hostname we created earlier.

In order to issue an IP address update the hostname, add the hostname target(s) to the DDNS key.

Note that in this example you will replace the example username 5fqy9st with your own DDNS key username.

Terminal window
curl --user ":$API_KEY" \
-X PUT \
--json '{ "targets": [{"name": "myhost", "zone_name": "example.com"}] }' \
"https://api.noip.com/v1/account/ddns-keys/5fqy9st"

Issue an Update

Option 1: Integrated Software

The DDNS key credentials can be used with any software or device that integrates with No-IP, such as No-IP’s update clients, cameras, routers, and more. Your chosen software will issue IP updates automatically!

Option 2: Directly with the Dynamic DNS Integration API

You can issue an update to a specific IP address using the ip query parameter.

Terminal window
curl --user "${DDNS_KEY}" \
--header "User-Agent: DDNSQuickstartGuide" \
"https://dynupdate.no-ip.com/nic/update?hostname=all.ddnskey.com&myip=2.3.5.8"

Example response:

good 2.3.5.8