gddy is GoDaddy's CLI for:
- domain search/registration
- DNS management
- hosting
- purchase of GoDaddy products
- the GoDaddy Developer Platform (building apps for GoDaddy Commerce products)
Setup
Install:
# macOS / Linux / Git Bash / MSYS2 / Cygwin
curl -fsSL https://github.com/godaddy/cli/releases/latest/download/install.sh | bash
PowerShell
irm https://github.com/godaddy/cli/releases/latest/download/install.ps1 | iex
Verify that installation works by running `gddy --version`.
## Documentation
The `gddy` CLI is self-documenting. Use:
- The `--help` flag for documentation on any command.
- `gddy search <keywords>` to find a command.
- `gddy tree` to get a full listing of all commands.
- `gddy guide` for detailed documentation on concepts and multi-step workflows.
## Authentication
Interactive three-legged OAuth happens automatically if there is no auth token, if the auth token is expired, or if additional permissions are required. When you run a command that requires auth, it will open the user's web browser. Login grants almost every scope up front, so most sessions see one consent screen. The exceptions are sensitive actions (purchases, nameserver changes, deleting an app, database access): the first command that needs one opens a consent screen on purpose. Run `gddy auth scope --non-default` to see which commands those are and tell the user to expect a browser prompt there, rather than pre-granting them at login. Run `gddy auth --help` for more auth details or use `gddy guide auth` for a full walkthrough.
For non-interactive workflows, you can use a [Personal Access Token (PAT)](https://developer.godaddy.com/en/docs/api-users/auth) instead. Run `gddy pat create` to open the Developer Portal in the user's browser so they can generate one, then store it securely with `gddy pat add` or set it in a `GDDY_PAT` environment variable.
## User Consent
Always pause and obtain explicit consent from the user before performing any of the following on the user's behalf:
- Agreement to terms & conditions; always provide a link to T&C documents and confirm that the user has read and agreed to them.
- Purchases; always confirm with the user before completing a financial transaction.
- Any irreversible actions; always confirm with the user before proceeding with actions that cannot be undone, like deletion of a resource.
## Domain purchase
Run `gddy guide domain-purchase` for a detailed walkthrough of the multi-step domain purchase flow.
## DNS management
Valid record types: `A AAAA ALIAS CAA CNAME MX NS SOA SRV TXT`. `NS` and `SOA` are GoDaddy-managed and read-only — you can list them but not add/set/delete them.
```bash
gddy dns list example.com --type A
gddy dns add example.com --type A --name www --data 192.0.2.1 --ttl 3600
gddy dns set example.com --type TXT --name @ --data "v=spf1 -all"
gddy dns delete example.com --type A --name www
add appends a new record; set replaces every record matching that type+name; delete removes every record matching that type+name. Type-specific requirements: MX/SRV need --priority; SRV also needs --port, --weight, --protocol, --service; CAA requires --tag (--flag is optional).
set and delete are destructive. Run with --dry-run first and show the user what would change before applying it for real.
Payment Methods
gddy payment-method add opens the browser to the account's payment-methods page — no card data is ever handled by the CLI itself. Purchases fail (403/422) without a valid payment method or sufficient account balance; check the error's code field, not just the HTTP status, to tell that apart from other failures.
Hosting
Use the hosting app restart command after creating, updating or deleting an application's secrets.
Global flags
Use the --debug flag for verbose output, including the full HTTP request/response. Use --dry-run to see what would happen without making any changes. Humans see human-formatted output; use --human to see what they see in an interactive TTY. Non-TTY output uses --json formatting by default. Use --toon if you understand that format to save tokens. Use --env to override the default prod environment, or set it permanently with gddy env set <env>.
Reference material
Read these only when the task needs the detail — they're not needed for common domain/DNS operations:
reference/api.md— raw GoDaddy Domains API fallback (whengddyisn't installed/available, e.g. CI in a non-shell language): base URL/auth, the public OpenAPI specs to fetch and search directly, and the durable gotchas (idempotency keys on registration, the MCP server's read-only/no-auth scope).reference/errors-and-limits.md— error envelope shape, retry/idempotency rules per HTTP method, and rate-limit headers/handling.