diff --git a/README b/README
index c75c448..b6decb3 100644
--- a/README
+++ b/README
@@ -72,6 +72,7 @@ SUPPORTED PROVIDERS:
 	inwx.com|de|at|ch|es
 	itsdns.de
 	joker.com
+	key-systems.net
 	loopia.se
 	myonlineportal.net
 	namecheap.com
diff --git a/src/ddns/providers.py b/src/ddns/providers.py
index 661fbcc..ccbf5e5 100644
--- a/src/ddns/providers.py
+++ b/src/ddns/providers.py
@@ -1204,6 +1204,40 @@ class DDNSProviderJoker(DDNSProtocolDynDNS2, DDNSProvider):
 		url = "https://svc.joker.com/nic/update"


+class DDNSProviderKEYSYSTEMS(DDNSProvider):
+        handle    = "dynamicdns.key-systems.net"
+        name      = "dynamicdns.key-systems.net"
+        website   = "https://domaindiscount24.com/"
+        protocols = ("ipv4",)
+
+        # There are only information provided by the domaindiscount24 how to
+        # perform an update with HTTP APIs
+        # https://www.domaindiscount24.com/faq/dynamic-dns
+        # examples: https://dynamicdns.key-systems.net/update.php?hostname=hostname&password=password&ip=auto
+        #           https://dynamicdns.key-systems.net/update.php?hostname=hostname&password=password&ip=213.x.x.x&mx=213.x.x.x
+
+        url = "https://dynamicdns.key-systems.net/update.php"
+        can_remove_records = False
+
+        def update_protocol(self, proto):
+                data = {
+                        "hostname"      : self.hostname,
+                        "password"      : self.password,
+                        "ip"            : "auto",
+                }
+
+                # Send update to the server.
+                response = self.send_request(self.url, data=data)
+
+                # Handle success messages.
+                if response.code == 200:
+                        return
+
+                # If we got here, some other update error happened.
+                raise DDNSUpdateError
+
+
+
 class DDNSProviderGoogle(DDNSProtocolDynDNS2, DDNSProvider):
         handle    = "domains.google.com"
         name      = "Google Domains"

