# Set up the CLI (https://developer.godaddy.com/en/docs/api-users/cli-setup)

***

title: Set up the CLI
description: Install the beta GoDaddy CLI as `gddy`, authenticate, and make a first call.
agentNotes:
permissions: \["Any account"]
scopes: \["Depends on invoked command — CLI wraps REST endpoints and inherits their scopes"]
rateLimit: "Rate-limited per credential per window (per underlying REST call). Go to /docs/api-users/rate-limits for current values."
idempotent: true
destructive: false
failureRecovery: "CLI is a wrapper — same recovery semantics as the underlying REST endpoint. Config is stored in \~/.gddy/. Delete config to reset credentials."
related:
guides:

* title: "Quickstart"
  href: "/docs/api-users/quickstart"
* title: "Authenticate"
  href: "/docs/api-users/auth"
* title: "Agent skill for gddy"
  href: "/docs/api-users/agent-skill"
* title: "GoDaddy MCP server"
  href: "/docs/api-users/mcp"
  concepts:
* title: "Rate limits"
  href: "/docs/api-users/rate-limits"

***

## Overview

The CLI installer installs the beta GoDaddy CLI as `gddy`. If you prefer raw HTTP calls instead, go to the [quickstart](https://developer.godaddy.com/docs/api-users/quickstart). Want an AI coding agent to install and drive `gddy` for you? See the [agent skill](https://developer.godaddy.com/docs/api-users/agent-skill). For read-only domain search without installing anything, go to the [MCP server](https://developer.godaddy.com/docs/api-users/mcp).

The `gddy` binary tracks the tip of the `rust-port` branch, with a new versioned release cut on every push. It's still under active development — expect breaking changes between releases and update often.

The install scripts come from the public `godaddy/cli` repository. You don't need GitHub authentication to install or update the CLI.

## Install or update

Run the installer for your shell. Re-running the same command updates `gddy` to the latest release.

**macOS / Linux**

```bash
curl -fsSL https://github.com/godaddy/cli/releases/latest/download/install.sh | bash
```

This also works from Git Bash, MSYS2, or Cygwin on Windows.

**Windows PowerShell**

```powershell
irm https://github.com/godaddy/cli/releases/latest/download/install.ps1 | iex
```

## Verify the install

Open a new terminal if the installer changed your `PATH`, then run:

```bash
gddy --version
gddy --help
```

If your shell can't find `gddy`, the install directory is not on your `PATH`.

## Authenticate

Use browser-based login to authenticate the CLI:

```bash
gddy auth login
```

Then confirm the CLI has an active session:

```bash
gddy auth status
```

## Add a payment method

Domain purchase requires a billing method on your GoDaddy account. Open the payment-methods page for your environment:

```bash
gddy payment-methods add
```

See [Set up a payment profile](https://developer.godaddy.com/docs/api-users/payment-profile) for account URLs, verification steps, and common billing errors.

## Make a first call

Ask the Domains API for available domain suggestions:

```bash
gddy domain suggest "coffee shop" --tlds com --limit 5
```

The response lists suggested domains. To check one suggestion directly, run:

```bash
gddy domain available <DOMAIN>
```

Once you've found an available domain, get a price quote before purchasing:

```bash
gddy domain quote <DOMAIN>
```

## Command reference

The following tables list the `gddy` commands available in the current beta release.

### Authentication

| Command            | Description                           |
| ------------------ | ------------------------------------- |
| `gddy auth login`  | Authenticate via browser-based login  |
| `gddy auth status` | Show the current authentication state |

### Domain search and purchase

| Command                                                     | Description                                                          |
| ----------------------------------------------------------- | -------------------------------------------------------------------- |
| `gddy domain available <DOMAIN>`                            | Check whether a single domain is available to register               |
| `gddy domain available <DOMAIN> --check-type full`          | Full registry check (slower, definitive result)                      |
| `gddy domain suggest "<QUERY>" --tlds com,net,io --limit 5` | Get domain name suggestions for a keyword or phrase                  |
| `gddy domain quote <DOMAIN>`                                | Quote a domain                                                       |
| `gddy domain agreements --tld <TLD>`                        | Retrieve the ICANN agreements required for a registration            |
| `gddy domain purchase <DOMAIN> --agree --confirm`           | Register a domain (charges the account — use `--confirm` to proceed) |
| `gddy domain contacts init`                                 | Write a `contacts.toml` template for reuse across purchases          |

### Domain management

| Command                            | Description                                   |
| ---------------------------------- | --------------------------------------------- |
| `gddy domain list`                 | List all domains on the authenticated account |
| `gddy domain list --status ACTIVE` | Filter domains by status                      |
| `gddy domain get <DOMAIN>`         | Get full detail for a single domain           |

### DNS management

| Command                                                                 | Description                             |
| ----------------------------------------------------------------------- | --------------------------------------- |
| `gddy dns list <DOMAIN>`                                                | List all DNS records on a domain        |
| `gddy dns list <DOMAIN> --type A --name www`                            | Filter by record type and name          |
| `gddy dns add <DOMAIN> --type A --name www --data 192.0.2.10 --ttl 600` | Add a DNS record                        |
| `gddy dns set <DOMAIN> --type A --name www --data 192.0.2.20 --ttl 600` | Replace all records for a type and name |
| `gddy dns delete <DOMAIN> --type A --name www`                          | Delete all records for a type and name  |

`gddy dns add` appends records. `gddy dns set` replaces every record for the type and name combination. `gddy dns delete` removes every record for the type and name; it does not remove GoDaddy-managed `NS` or `SOA` records. Use `--dry-run` with destructive commands to preview changes.

### Payment Methods

| Command                    | Description                                               |
| -------------------------- | --------------------------------------------------------- |
| `gddy payment-methods add` | Open the payment-methods page for the current environment |

The `gddy` beta release covers domain search, purchase, list, and DNS management. Operations such as domain forwarding, registry lock, renewals, and contact updates are not yet available in the CLI — use the REST API directly for those operations. Run `gddy --help` at any time to see current commands.
