Check us out on pkg.go.dev
*seems to be a little behind a lot of the time
- See here for more on which features this package currently supports
- Whenever we reference endpoints, this is what we are referring to
Pull requests welcome! We would like to eventually support each GoDaddy Gateway endpoint, not just domain/DNS related tasks
go get -u github.com/oze4/godaddygo
- See here for more on how to obtain an Gateway key and Gateway secret from GoDaddy (click 'Gateway Keys')
Bare minimum what you need to get started (aka how you will typically use this package):
package main
import (
"github.com/oze4/godaddygo"
)
func main() {
key := "<your_key>"
secret := "<your_secret>"
// Target production GoDaddy API
// 99% of the time this is what you are looking for
api, err := godaddygo.NewProduction(key, secret)
if err != nil {
panic(err.Error())
}
// Target version 1 of production API
godaddy := api.V1()
// Now have access to all GoDaddy production V1 Gateway endpoints (via `godaddy`)
// eg: godaddy.Domain("xyz.com").Records().List(ctx)
// godaddy.Domain("xyz.com").Records().Add(ctx, someDNSRecord)
// godaddy.Domain("xyz.com").Records().FindByType(ctx, godaddygo.RecordTypeA)
// godaddy.Domain("xyz.com").GetDetails(ctx)
// godaddy.ListDomains(ctx)
// godaddy.CheckAvailability(ctx, "dom.com")
// godaddy.Purchase(ctx, someDomain)
// etc...
}
package main
import (
"net/http"
"github.com/oze4/godaddygo"
)
func main() {
key := "<your_key>"
secret := "<your_secret>"
// Target production API
target := godaddygo.APIProdEnv // godaddygo.APIDevEnv
// Build new config
myConfig := godaddygo.NewConfig(key, secret, target)
// Build custom client
myClient := &http.Client{}
// Establish "connection" with API
api, err := godaddygo.WithClient(myClient, myConfig)
if err != nil {
panic(err.Error())
}
// Target version 1 of the production API
godaddy := api.V1()
// Now have access to all GoDaddy production V1 Gateway endpoints (via `godaddy`)
// eg: godaddy.Domain("xyz.com").Records().List(ctx)
// godaddy.Domain("xyz.com").Records().Add(ctx, someDNSRecord)
// godaddy.Domain("xyz.com").Records().FindByType(ctx, godaddygo.RecordTypeA)
// godaddy.Domain("xyz.com").GetDetails(ctx)
// godaddy.ListDomains(ctx)
// godaddy.CheckAvailability(ctx, "dom.com")
// godaddy.Purchase(ctx, someDomain)
// etc...
}
Please see here for more information on GoDaddy Gateway endpoints
- Abuse
- Aftermarket
- Agreements
- Certificates
- Countries
- Domains
- Check domain availability
- Get all DNS records
- Get all DNS records of specific type
- Get specific DNS record
- Set DNS record(s)
- Add/create DNS record(s)
- Purchase domain
- Purchase privacy for domain
- Remove privacy for domain
- Orders
- Shoppers
- Subscriptions