octoDNS has support for a number of providers, so it may be worth looking at integrating it.
https://github.com/github/octodns#supported-providers