• DNS CONSOLE

  • AN EASY TO USE DNS MANAGEMENT SOLUTION
  • FAST, SIMPLE AND SECURE

With our DNS Console and API, you can list, add, modify or remove zones and records for free.

EASY TO USE INTERFACE

Hetzner's DNS Console is an intuitive DNS management platform. Simply enter your zone names to import DNS entries. You don't even need to copy-and-paste them. Use our DNS Console and API to view your DNS entries, add to them, edit them, or delete them. All completely free of cost.

CREATE FREE ACCOUNT
header shadow2

Features

AUTO SCANNING

It's never been easier to transfer the details from your existing zones. Our auto scanning tool automatically scans the Internet for your existing DNS zones, and for the most part, recognizes them and adds them to the DNS Console. This saves you time and helps to prevent mistakes.

DOCS & API

You can also use all of DNS Console's features with our handy API. Automate your DNS zone management with the help of the REST-API's detailed documentation. There's an array of programming examples in PHP, Go, and Python to help you get started.

ACCESS

With a single sign on, you can access not only the DNS Console, but also Hetzner Robot, Hetzner Cloud, and Hetzner Accounts (where your main customer information is located). And to securely access the DNS API, you can create personal access tokens.

ALL FEATURES ALSO VIA API

Automate your DNS entry management to the max. All of DNS Console's features are also available via our developer-friendly REST-API. Our detailed documentation includes programming examples and helps you get started.

cURL
Go
PHP
Python
                                        ## Get Record
# Returns information about a single record.
curl "https://dns.hetzner.com/api/v1/records/1" \
     -H 'Auth-API-Token: YOUR-API-TOKEN'
                                    
                                        package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendGetRecord() {
	// Get Record (GET https://dns.hetzner.com/api/v1/records/1)

	// Create client
	client := &http.Client{}

	// Create request
	req, err := http.NewRequest("GET", "https://dns.hetzner.com/api/v1/records/1", nil)

	// Headers
	req.Header.Add("Auth-API-Token", "YOUR-API-TOKEN")

	// Fetch Request
	resp, err := client.Do(req)
	
	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}
                                    
                                        // get cURL resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, 'https://dns.hetzner.com/api/v1/records/1');

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Auth-API-Token: YOUR-API-TOKEN',
]);

// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources 
curl_close($ch);
                                    
                                        # Install the Python Requests library:
# `pip install requests`

import requests


def send_request():
    # Get Record
    # GET https://dns.hetzner.com/api/v1/records/1

    try:
        response = requests.get(
            url="https://dns.hetzner.com/api/v1/records/1",
            headers={
                "Auth-API-Token": "YOUR-API-TOKEN",
            },
        )
        print('Response HTTP Status Code: {status_code}'.format(
            status_code=response.status_code))
        print('Response HTTP Response Body: {content}'.format(
            content=response.content))
    except requests.exceptions.RequestException:
        print('HTTP Request failed')
                                    

Frequently Asked Questions

  • How much does it cost to use DNS Console?

    DNS Console is completely free. Use it together with your existing Robot or Cloud Console accounts. New customers can create a free account to use DNS Console.

  • What type of records does DNS Console support?

    Using the GUI, you will be able to manage A, AAAA, CNAME, MX, NS, SRV, and TXT records. Using BIND files, you can manually manage CAA, DS, TLSA, DANE, HINFO, SOA, and RP record types.

  • Can I add an unlimited number of zones?

    By default, you can add up to 25 zones. However, if you would like to increase this limit, it's easy to do. Just write a support ticket, and give us a quick explanation for why you need the increase.

  • Does DNS Console also support DNSSEC?

    Currently, DNS Console does not include support for DNSSEC.