Domain & DNS API

Dynamic DNS from your own command line!

Dynamic DNS (DDNS) interface

We provide a DDNS interface so you can use your domain with routers and other dynamic hosts. This type of protocol is pretty ancient and comes with a few restrictions in general and on our end, including overwriting CAA records so do not use the API if you have any CAA records in place.

Because this API requires you to use login credentials (via BasicAuth) we highly recommend you to use a separate account for any of your dynamic DNS needs and CNAME from your main production domain to this setup.

Here is how it works:

To add A or AAAA records send a request to:

curl -u "[USERNAME]:[PASSWORD]" "https://iwantmyname.com/basicauth/ddns?hostname=[HOSTNAME]&myip=[IP]"

The username/password parameters are your normal iwantmyname login credentials, the hostname is the full host you want to update like home.mydomain.io and the myip parameter is the optional IP address you want to update the A record with. If this parameter is not set we update it to the IP the request is coming from. You can also include an optional TTL value for the record: '&ttl=[VALUE]' if not specified the default value is 3600 (1 hour)

*Note: Older routers may only support GET requests, however the cleaner way of doing it is using POST or PUT requests

You can also add other record types such as TXT, MX, CNAME, NAPTR & SRV.

curl -u "[USERNAME]:[PASSWORD]" "https://iwantmyname.com/basicauth/ddns?hostname=[HOSTNAME]&type=[RECORD_TYPE]&value=[RECORD_VALUE]"

Example adding a TXT record:

curl -u "user@useremail.com:P@$$W0>d" "https://iwantmyname.com/basicauth/ddns?hostname=verify.mydomain.com&type=txt&value=Xh90WmC95K1GAlAcEF0psz3c2GOandqdqMInclDxd"

*Note: With TXT records, new records will not overwrite existing ones.

Some more info about the service is on our blog.