diff --git a/ud_ddns.sh b/ud_ddns.sh
new file mode 100755
index 0000000..1d97662
--- /dev/null
+++ b/ud_ddns.sh
@@ -0,0 +1,133 @@
+#!/bin/bash
+# requires: wget, ca-certificates, grep, jq
+#rm -f /tmp/cookies.txt
+
+cookiefile="/tmp/cookies.txt"
+
+#username=""
+#password=""
+#domain=""
+
+#domain should contain "domain_id:record_id"
+domain_id=$(echo $domain | tr ":" "\n" | sed -n "1p")
+record_id=$(echo $domain | tr ":" "\n" | sed -n "2p")
+ipv4=$1
+
+# fake user agent
+ua="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0"
+
+
+
+# GET LOGIN PAGE
+#csrf tokens for login + language xmlhttprequest required to login (nice try blocking my API access, UD)
+loginpage=$(/usr/bin/wget -U "$ua" \
+ --save-cookies $cookiefile \
+ --keep-session-cookies \
+ -qO- "https://www.united-domains.de/login/")
+
+csrf=$(echo "$loginpage" | /bin/grep -oP -m 2 "(?<=)" | tail -1)
+echo "csrfr=${csrf}"
+csrfmeta=$(echo "$loginpage" | /bin/grep -oP -m 1 "(?<=)")
+echo "csrfmeta=${csrfmeta}"
+csrfscript=$(echo "$loginpage" | /bin/grep -oP -m 1 "(?<=\"CSRF_TOKEN\":\")[^\"]*(?=\")")
+echo "csrfscript=${csrfscript}"
+
+/usr/bin/wget -U "$ua" \
+ --load-cookies $cookiefile \
+ --save-cookies $cookiefile \
+ --keep-session-cookies \
+ --delete-after \
+ --post-data "language=en-US" \
+ --header="HTTP-X-CSRF-TOKEN: $csrfmeta" \
+ --header="X-Csrf-Token: $csrfscript" \
+ --header="X-Requested-With: XMLHttpRequest" \
+ -qO- "https://www.united-domains.de/set-user-language"
+
+
+# DO THE LOGIN
+#login
+echo 'login'
+loginresp=$(/usr/bin/wget -U "$ua" \
+ --load-cookies $cookiefile \
+ --save-cookies $cookiefile \
+ --keep-session-cookies \
+ --post-data "csrf=$csrf&email=$username&pwd=$password&selector=login&loginBtn=Login" \
+ -qO- "https://www.united-domains.de/login/")
+
+
+
+#check if successful by requesting domain list
+#echo 'domain list'
+#DOMAIN_LIST=$(/usr/bin/wget -U "$ua" \
+# --load-cookies $cookiefile \
+# --save-cookies $cookiefile \
+# --keep-session-cookies \
+# -qO- 'https://www.united-domains.de/pfapi/dns/domain-list')
+#if [ "$DOMAIN_LIST" = "" ] ; then
+# echo "Login not successful"
+# exit 1
+#else
+# echo $DOMAIN_LIST
+#fi
+
+
+####################################################################################################
+# WE'RE IN
+
+
+
+#get current dns record json object & modify ip
+echo "get current dns record json object"
+current=$(/usr/bin/wget -U "$ua" \
+ --load-cookies $cookiefile \
+ --save-cookies $cookiefile \
+ --keep-session-cookies \
+ -qO- "https://www.united-domains.de/pfapi/dns/domain/$domain_id/records")
+#echo "CURRENT: $current"
+
+record=$(echo $current |
+ jq -cM ".data.A | map(select(.id == $record_id)) | .[0]" | \
+ sed "s/ //g" | \
+ sed "s/\"address\":\"[0-9.]\+\"/\"address\":\"$ipv4\",\"formId\":${record_id}/g")
+#echo "NEW: $record"
+
+payload="{\"record\":$record,\"domain_lock_state\":{\"domain_locked\":false,\"email_locked\":false}}"
+url="https://www.united-domains.de/pfapi/dns/domain/$domain_id/records"
+
+
+# load the DNS page for the given domain_id to get the latest csrf code
+dnspage=$(/usr/bin/wget -U "$ua" \
+ --load-cookies $cookiefile \
+ --save-cookies $cookiefile \
+ --keep-session-cookies \
+ -qO- "https://www.united-domains.de/portfolio/a/domain-admin/dns/$domain_id")
+
+csrfscript=$(echo "$loginpage" | /bin/grep -oP -m 1 "(?<=\"CSRF_TOKEN\":\")[^\"]*(?=\")")
+echo "csrfscript=${csrfscript}"
+
+
+#send changes
+echo "send changes"
+#echo -ne "PUT ${url}\n${payload}\n"
+
+output=$(/usr/bin/wget -U "$ua" \
+ --load-cookies $cookiefile \
+ --save-cookies $cookiefile \
+ --keep-session-cookies \
+ --method=PUT \
+ --header="Accept: application/json" \
+ --header="Accept-Encoding: gzip, deflate, br" \
+ --header="Accept-Language: de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3" \
+ --header="Content-Type: application/json;charset=utf-8" \
+ --header="Referer: https://www.united-domains.de/portfolio/a/domain-admin/dns/$domain_id" \
+ --header="Origin: https://www.united-domains.de" \
+ --header="Http-X-Csrf-Token: $csrfscript" \
+ --body-data=$payload -O- $url 2>&1)
+echo "UD answered: $output"
+#write_log 7 "UD answered:\n$output"
+
+echo $output | /bin/grep "$ipv4" >/dev/null 2>&1
+success=$?
+#write_log 7 "Retval: $success"
+echo "Retval: $success"
+#return $success
diff --git a/ud_list.sh b/ud_list.sh
new file mode 100755
index 0000000..1ee2ae3
--- /dev/null
+++ b/ud_list.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+#UD_USERNAME=''
+#UD_PASSWORD=''
+
+#setup stuff
+COOKIEFILE="/tmp/cookies.txt"
+CURL="/usr/bin/curl -s -S -b $COOKIEFILE -c $COOKIEFILE"
+
+#load website
+WEBSITE=$($CURL 'https://www.united-domains.de/')
+
+#get csrf tokens
+CSRF_WEBSITE=$(/bin/echo $WEBSITE | /bin/grep -oP -m 1 "(?<=)")
+CSRF_LOGIN=$(/bin/echo $WEBSITE | /bin/grep -A 1 "login-form-1" | /bin/grep -oP -m 1 "(?<=)")
+
+#get sessionid from cookie
+SESSIONID=$(/usr/bin/tail -n 1 $COOKIEFILE | /usr/bin/awk '{print $7}')
+
+#accept the cookie usage popup on united-domains.de
+ACCEPT_COOKIES=$($CURL "https://www.united-domains.de/cookie-settings?SESSID=$SESSIONID" -X PATCH -H "HTTP-X-CSRF-TOKEN: $CSRF_WEBSITE" -H 'Content-Type: application/json' -d '{"ids":[13]}')
+
+#set language
+LANGUAGE=$($CURL "https://www.united-domains.de/set-user-language?SESSID=$SESSIONID" -H "HTTP-X-CSRF-TOKEN: $CSRF_WEBSITE" -H "X-Csrf-Token: $CSRF_WEBSITE" -d 'language=de')
+
+#generate login data string
+LOGIN_DATA="csrf=$CSRF_LOGIN&selector=login&email=$UD_USERNAME&pwd=$UD_PASSWORD&submit=Login"
+
+#send login
+WEBSITE_LOGIN=$($CURL 'https://www.united-domains.de/login' -d "$LOGIN_DATA")
+
+#check if successful by requesting domain list
+DOMAIN_LIST=$($CURL 'https://www.united-domains.de/pfapi/dns/domain-list')
+if [ "$DOMAIN_LIST" = "" ] ; then
+ echo "Login not successful"
+ exit 1
+fi
+
+echo $DOMAIN_LIST
+