DDNS (like duckdns, no-ip etc) is sometimes a little different to a standard hosted DNS provider and usually has more limited functionality.
How you shape the API depends a little on scale - eg how many zones will your query return (can it return 1000s, does it require paging).
For client examples in Go (which GitHub - yurt-page/go-ddnsd: Dynamic DNS server with DynDNS API support and automatic registration seems to be written in) check out DNS Providers :: Let’s Encrypt client and ACME library written in Go.
Ultimately your API will likely have some necessary differences, in which case I would also suggest that you write a certbot plugin, a lego provider and possibly a Posh-ACME plugin
An alternative approach is to implement the acme-dns protocol (which is just a couple of endpoints) and url encoded basic auth to authenticate ( e.g. https://user:key@api.domain.com/) as many existing acme-dns clients support this and you would get instant coverage.