diff --git a/README.md b/README.md
index 644191312bb489037ed07c98b02ada4a2de189da..0bd4ea340e2bc55bf1e5d65fb76312a05e645f61 100644
--- a/README.md
+++ b/README.md
@@ -184,6 +184,8 @@ connection = "acme-dns.db"
 [api]
 # domain name to listen requests for, mandatory if using tls = "letsencrypt"
 api_domain = ""
+# disable registration endpoint
+disable_registration = false
 # autocert HTTP port, eg. 80 for answering Let's Encrypt HTTP-01 challenges. Mandatory if using tls = "letsencrypt".
 autocert_port = "80"
 # listen ip, default "" listens on all interfaces/addresses
diff --git a/config.cfg b/config.cfg
index f8e91460a7c925eab665217d3e34f47b0add79d3..2798ad535817825c0459e4dbaa81748076873751 100644
--- a/config.cfg
+++ b/config.cfg
@@ -36,6 +36,8 @@ connection = "/var/lib/acme-dns/acme-dns.db"
 api_domain = ""
 # listen ip eg. 127.0.0.1
 ip = "0.0.0.0"
+# disable registration endpoint
+disable_registration = false
 # autocert HTTP port, eg. 80 for answering Let's Encrypt HTTP-01 challenges. Mandatory if using tls = "letsencrypt".
 autocert_port = "80"
 # listen port, eg. 443 for default HTTPS
diff --git a/main.go b/main.go
index d1cbbd13965e5e1b66393dc25443c6dbd8efe308..adee83859f5581cb58d4f33bd08785f79bf6e3d9 100644
--- a/main.go
+++ b/main.go
@@ -67,7 +67,9 @@ func startHTTPAPI() {
 		// Logwriter for saner log output
 		c.Log = stdlog.New(logwriter, "", 0)
 	}
-	api.POST("/register", webRegisterPost)
+	if !Config.API.DisableRegistration {
+		api.POST("/register", webRegisterPost)
+	}
 	api.POST("/update", Auth(webUpdatePost))
 
 	host := Config.API.IP + ":" + Config.API.Port
diff --git a/types.go b/types.go
index 1f5c42019553cc9eae4f64f11b4999d73d8d29f0..fe21581f1eb9cde5bc62e9eddaeff50e4fea959e 100644
--- a/types.go
+++ b/types.go
@@ -50,16 +50,17 @@ type dbsettings struct {
 
 // API config
 type httpapi struct {
-	Domain           string `toml:"api_domain"`
-	IP               string
-	AutocertPort     string `toml:"autocert_port"`
-	Port             string `toml:"port"`
-	TLS              string
-	TLSCertPrivkey   string `toml:"tls_cert_privkey"`
-	TLSCertFullchain string `toml:"tls_cert_fullchain"`
-	CorsOrigins      []string
-	UseHeader        bool   `toml:"use_header"`
-	HeaderName       string `toml:"header_name"`
+	Domain              string `toml:"api_domain"`
+	IP                  string
+	DisableRegistration bool   `toml:"disable_registration"`
+	AutocertPort        string `toml:"autocert_port"`
+	Port                string `toml:"port"`
+	TLS                 string
+	TLSCertPrivkey      string `toml:"tls_cert_privkey"`
+	TLSCertFullchain    string `toml:"tls_cert_fullchain"`
+	CorsOrigins         []string
+	UseHeader           bool   `toml:"use_header"`
+	HeaderName          string `toml:"header_name"`
 }
 
 // Logging config