When I try to set a sub domain using the set_dns command, it wipes out all my sub domain records.
This is the url I've been using to try this: https://api.dynadot.com/api3.html?key=MY_KEY&command=set_dns&domain=MY_DOMAIN&main_record_type=a&main_record=IP_ADDRESS&sub_record_type0=a&sub_record0=SUB_IP_ADDRESS
It's 2022 now, 9 years past and it is still an issue. If `set_dns` or `set_dns2` is designed to work this way. Could you provide a new API, namely `update_dns_record`, supports updating/adding a single DNS record under a specific domain?
This issue raises in 2013, and i can't believe Dynadot Architect and Engineers are still not improving their API. Is 2021, fast forward 7 years, the same issue happens to me. I just signed up recently and I was shocked to see the same issue. it DOESN'T MAKE SENSE to wipe out all the records by just needed to add 1 record. The solution given to me is that when adding 1 record, i need to make sure i include all the previous records. If i have 40 records, wanted to add 1, i have to submit my payload with total of 41 records. How on earth i get the previous 40 records in the first place ? This is definitely a design issue. go-acme/lego has rejected to add dynadot as their provider when I was talking to them https://github.com/go-acme/lego
I need a solution from Dynadot for this and stop using XML for API please. Please make a new version 4 that support JSON
I realize this thread is really old just found it through googling. The fact that I have to submit ALL of the information again rather than just say change sub_record_type9=whatever is kind of ridiculous.
I'm not sure if you're following the issue I'm trying to point out.
If I want to change just one parameter and don't specify all parameters, it will wipe out all the other parameters that I don't specify.
For example, lets say I have a dns that looks like this:
Domain Record | type | IP mydomain.com | A | 0.0.0.1
Sub Record | type | IP test1.mydomain.com | A | 0.0.0.2 test2.mydomain.com | A | 0.0.0.3
Now lets say I want to just change the IP address of sub record 0 (test1) to 0.0.0.4.
If I use the following query string, it'll wipe out all the other settings in the dns: (i've broken the url in multiple lines for readability) https://api.dynadot.com/api3.html? key=MY_KEY& command=set_dns& domain=mydomain.com& sub_record0=0.0.0.4
In order for it to change what I want and keep all the other settings in the dns record, the query string has to have all the settings for the dns record that you want to keep.
Staying with the current example, I'd have to do this to get it to not wipe out the other settings: https://api.dynadot.com/api3.html?key=MY_KEY& command=set_dns& domain=mydomain.com& main_record_type=a& main_record=0.0.0.1& subdomain0=test1& sub_record_type0=a& sub_record0=0.0.0.4& subdomain1=test2& sub_record_type1=a& sub_record1=0.0.0.3
This is unnecessarily extraneous, and makes it easy to accidentally wipe out your dns records.
It'd be ideal to only have to include the parameter you want to change in the query string, and not have to include all the other parameters that you don't want to change in the dns record.