Yes, this is a very good API (the previous one was very bad, the current one is great).
This does not change the fact that dyndns kind of updates is standard and they should support it to make their customer's life easier (and avoid coding an intermediate something to handle the changes). I wrote a webservice that translates dyndns requests into Gandi API calls but I would very much prefer avoiding to maintain that.
I don't know where you're running your scripts on, but https://github.com/brianpcurran/gandi-automatic-dns worked well for me when I had a DynDNS scenario going a while back. So that might be worth a look if you want to reduce the amount of code you have to maintain yourself. I still maintain the AUR package for it FWIW.
I had to write something to interface with their API - it works but I could have used the OOTB solution in my router.