The Unstoppable Domains CLI (ud) gives you command-line access to the User API. Search for domains, manage DNS, interact with the marketplace, and complete purchases — all from your terminal.
curl -fsSL https://raw.githubusercontent.com/unstoppabledomains/ud-cli/main/install.sh | shnpm install -g @unstoppabledomains/ud-cligit clone https://github.com/unstoppabledomains/ud-cli.git
cd ud-cli
npm install
npm run build
npm install -g .After installation, verify it works:
ud --helpud auth signupCreates a new account directly from the terminal. Prompts for email and password, sends a verification code to your email, and signs you in — no browser needed.
ud auth loginOpens your browser for authorization using OAuth 2.0 with PKCE. Use this to sign in to an existing account. Tokens refresh automatically.
ud auth login --key ud_mcp_<your-key>Generate an API key from Account Settings under the "Advanced" tab.
ud auth status # Check authentication status
ud auth logout # Clear stored credentialsCredentials are stored in your system keychain (macOS Keychain, Windows Credential Vault, or Linux Secret Service). If the keychain is unavailable, credentials fall back to ~/.ud-cli/credentials-{env}.json with restricted permissions.
# Search for available domains
ud search "mybusiness"
# List your domains
ud domains list
# Check DNS records
ud domains dns records show example.com
# Add a domain to your cart and checkout
ud cart add registration example.com
ud cart checkoutEvery command accepts these flags:
| Flag | Description |
|---|---|
--format <format> | Output as table (default), json, or csv |
--fields [columns] | Display specific columns (comma-separated) |
--env <environment> | Override active environment (production or sandbox) |
--quiet | Suppress output except errors |
--verbose | Show detailed output |
# Default table output
ud domains list
# JSON for scripting
ud domains list --format json
# CSV for spreadsheets
ud domains list --format csvShow only the columns you need:
ud domains list --fields name,expiresAt,offersCountUse dot notation for nested properties:
ud domains list --fields name,listing.price,autoRenewal.statusRun --fields with no value to see all available columns for a command:
ud domains list --fieldsCombine with tools like jq for scripting workflows:
ud domains list --format json | jq '.[].name'Save frequently used options so you don't have to type them every time:
# Save default fields for 'domains list'
ud config set "domains list" fields name,expiresAt,offersCount
# Save JSON as default format
ud config set "domains list" format json
# View saved defaults
ud config get "domains list"
# Reset a saved default
ud config reset "domains list" fieldsCLI flags always override saved defaults.
Two environments are available:
| Environment | API Base URL |
|---|---|
production (default) | https://api.unstoppabledomains.com |
sandbox | https://api.ud-sandbox.com |
Switch environments:
# Set the active environment
ud env set sandbox
# Check current environment
ud env show
# Override per-command
ud search "test" --env sandboxCredentials are stored separately per environment, so you can authenticate in both simultaneously.
The CLI checks for updates every 24 hours. You can also check manually:
ud update checkGenerate shell completions for your shell:
ud completion- Command Reference — Full list of all commands, flags, and examples
- Common Workflows — Step-by-step guides for common tasks
- API Reference — The underlying REST API