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



## 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). Go to the [MCP server](https://developer.godaddy.com/docs/api-users/mcp) for AI-assisted workflows.

<Callout type="warning" title="Beta build">
  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.
</Callout>

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.

<Tabs items={['macOS / Linux', 'Windows PowerShell']}>
  <Tab value="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.
  </Tab>

  <Tab value="Windows PowerShell">
    ```powershell
    irm https://github.com/godaddy/cli/releases/latest/download/install.ps1 | iex
    ```
  </Tab>
</Tabs>

## 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 payments 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>
```

## 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 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.

### Payments

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

<Callout type="info" title="Beta coverage">
  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.
</Callout>
