Project: GoDaddy SDK

project-godaddy-sdk Project Page

active

Vision

Python SDK and OpenTofu provider for the GoDaddy API. The SDK wraps all 10 API groups with 1:1 endpoint mapping. The Tofu provider consumes the SDK to manage DNS records and domains as IaC.
No official GoDaddy SDK exists in any language. All 10 API groups have official Swagger 2.0 specs at developer.godaddy.com/swagger/swagger_{group}.json. Community Tofu providers exist but are abandoned or dangerous (one deletes unmanaged records).

Status

Phase: Project setup and scaffolding
Priority: DNS mixin first — needed to wire up palinks.app custom domain (palinks #28)
Pipeline: godaddy-sdk → godaddy-tofu → pal-e-platform consumes provider → palinks.app is first dogfood record

Architecture

godaddy-sdk (Python)

  • Python 3.10+, httpx for HTTP, mixin-per-API-group pattern
  • GoDaddyClient composes mixins: DomainsMixin, DNSMixin, CertificatesMixin, etc.
  • Auth: sso-key {API_KEY}:{API_SECRET} header
  • Base URLs: https://api.godaddy.com (prod), https://api.ote-godaddy.com (test)
  • Secrets: ~/secrets/godaddy/.env

godaddy-tofu (Go)

  • Custom OpenTofu provider built on the SDK (or direct API calls in Go)
  • Resources: godaddy_dns_record, godaddy_domain
  • Replaces abandoned community providers (veksh/godaddy-dns, n3integration/godaddy)
  • Consumed by pal-e-platform/terraform/

API Groups (10 Swagger Specs)

Group Endpoints SDK Mixin Priority
Domains ~20 DomainsMixin P1
DNS (in domains spec) 5 DNSMixin P0 — immediate need
Certificates ~25 CertificatesMixin P2
Subscriptions 5 SubscriptionsMixin P3
Shoppers 6 ShoppersMixin P3
Orders 2 OrdersMixin P3
Abuse 6 AbuseMixin P3
Aftermarket 3 AftermarketMixin P3
Agreements 1 AgreementsMixin P3
Parking 2 ParkingMixin P3
Countries 2 CountriesMixin P3

User Stories

  • story:dns-management — Set/update/delete DNS records programmatically (A, CNAME, TXT, MX)
  • story:domain-management — Domain CRUD, availability check, purchase, renew, transfer
  • story:tofu-provider — Custom OpenTofu provider for DNS/domain IaC in pal-e-platform

Repos

  • godaddy-sdk — Python SDK
  • godaddy-tofu — OpenTofu provider (planned)
  • godaddy-mcp — MCP server (deferred — Tofu provider + good docs is better for DNS/registrar use case)

Board

board-godaddy-sdk