@unstoppabledomains/ud-cli 0.1.17 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -6
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +3 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +35 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/env.js +2 -2
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +185 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/lib/completion.d.ts +11 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +314 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +3 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/types.d.ts +1 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +7 -3
- package/dist/program.js.map +1 -1
- package/package.json +5 -2
- package/skills/ud-cli/SKILL.md +189 -0
- package/skills/ud-cli/references/cart-and-checkout.md +108 -0
- package/skills/ud-cli/references/dns-management.md +141 -0
- package/skills/ud-cli/references/marketplace.md +113 -0
- package/skills/ud-cli/references/search-and-purchase.md +144 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ud-cli
|
|
3
|
+
description: Domain registrar CLI — search, register, and manage domains via Unstoppable Domains. Use when the user needs domain registration, DNS record management, marketplace listings, cart/checkout, domain transfers, or any domain management task.
|
|
4
|
+
allowed-tools: Bash(ud:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Domain Management with ud-cli
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
ud auth login # OAuth (opens browser)
|
|
13
|
+
ud auth login -k <key> # API key (ud_mcp_ + 64 hex chars)
|
|
14
|
+
ud auth status # Check current auth
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Global Options
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
--format json|table|csv Output format (default: table)
|
|
21
|
+
--fields [cols] Show available fields or select columns (e.g., name,expiresAt)
|
|
22
|
+
--data <json> JSON request body for complex operations
|
|
23
|
+
--file <path> Read JSON request body from file
|
|
24
|
+
--domains-file <path> Read domain list from file (one per line)
|
|
25
|
+
--quiet Suppress output except errors
|
|
26
|
+
--env production|sandbox Override environment
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
### Search & Discovery
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
ud search <query> # Search for available domains
|
|
35
|
+
ud search <query> --tlds com,io --limit 20
|
|
36
|
+
ud tlds # List available TLDs
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Portfolio
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
ud domains list # List your domains
|
|
43
|
+
ud domains get <domains...> # Detailed domain info
|
|
44
|
+
ud domains push <domains...> # Transfer to another user (requires --otp-code)
|
|
45
|
+
ud domains operations <domains...> # Check pending operations
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Domain Settings
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
ud domains tags add <domains...> --tags tag1,tag2
|
|
52
|
+
ud domains tags remove <domains...> --tags tag1,tag2
|
|
53
|
+
ud domains flags update <domains...> # WHOIS privacy, transfer lock
|
|
54
|
+
ud domains auto-renewal update <domains...> --enabled true|false
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### DNS Records
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
ud domains dns records list <domain>
|
|
61
|
+
ud domains dns records add <domain> --type A --values 1.2.3.4
|
|
62
|
+
ud domains dns records update # Update by record ID (use --data)
|
|
63
|
+
ud domains dns records remove # Remove by record ID (use --data)
|
|
64
|
+
ud domains dns records remove-all <domains...> --confirm
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### DNS Nameservers
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ud domains dns nameservers list <domain>
|
|
71
|
+
ud domains dns nameservers set-custom # 2-12 hostnames (use --data)
|
|
72
|
+
ud domains dns nameservers set-default # Re-enable UD DNS management
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Hosting
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
ud domains hosting redirects list <domain>
|
|
79
|
+
ud domains hosting redirects add # 301/302 redirects (use --data)
|
|
80
|
+
ud domains hosting redirects remove # Remove redirect config
|
|
81
|
+
ud domains hosting landers generate <domains...> # AI landing page
|
|
82
|
+
ud domains hosting landers status <domains...> # Check generation
|
|
83
|
+
ud domains hosting landers remove <domains...> # Remove landing page
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### ICANN Contacts
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
ud domains contacts list # List contacts (needed for DNS domain checkout)
|
|
90
|
+
ud domains contacts create # Create ICANN contact (use --data)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Cart
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
ud cart add [domain...] # Smart add — auto-detects source type
|
|
97
|
+
ud cart add registration <domains...> # Fresh registration
|
|
98
|
+
ud cart add listed <domains...> # UD marketplace listing
|
|
99
|
+
ud cart add afternic <domains...> # Afternic marketplace
|
|
100
|
+
ud cart add sedo <domains...> # Sedo marketplace
|
|
101
|
+
ud cart add renewal <domains...> # Renew owned domains
|
|
102
|
+
ud cart get # View cart with pricing
|
|
103
|
+
ud cart remove # Remove items
|
|
104
|
+
ud cart checkout --confirm # Complete purchase
|
|
105
|
+
ud cart url # Get browser checkout URL
|
|
106
|
+
ud cart payment-methods # List payment methods
|
|
107
|
+
ud cart add-payment-method # Get URL to add payment method
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Marketplace
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
ud marketplace listings create <domains...> --price 99.99
|
|
114
|
+
ud marketplace listings update # Update price/settings (use --data)
|
|
115
|
+
ud marketplace listings cancel --confirm
|
|
116
|
+
ud marketplace offers list
|
|
117
|
+
ud marketplace offers respond # Accept/reject offers (use --data)
|
|
118
|
+
ud marketplace leads list
|
|
119
|
+
ud marketplace leads get <domain> # Get or create conversation
|
|
120
|
+
ud marketplace leads messages # List messages (--conversation-id)
|
|
121
|
+
ud marketplace leads send # Send message (--conversation-id --content)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Key Workflows
|
|
125
|
+
|
|
126
|
+
### Search and Purchase (most common)
|
|
127
|
+
|
|
128
|
+
Search results include `marketplace.source` and `marketplace.status` — these determine which cart tool to use. See [references/search-and-purchase.md](references/search-and-purchase.md) for the full decision table.
|
|
129
|
+
|
|
130
|
+
Quick version with smart add:
|
|
131
|
+
```bash
|
|
132
|
+
ud search mybusiness --format json # Check availability + marketplace info
|
|
133
|
+
ud cart add mybusiness.com mybusiness.io # Auto-detects correct cart type
|
|
134
|
+
ud cart get # Review pricing
|
|
135
|
+
ud cart checkout --confirm # Purchase
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### DNS Domain Registration
|
|
139
|
+
|
|
140
|
+
DNS domains (.com, .org, .net) require an ICANN contact before checkout.
|
|
141
|
+
```bash
|
|
142
|
+
ud domains contacts list # Check for existing contacts
|
|
143
|
+
ud domains contacts create --data '...' # Create if needed
|
|
144
|
+
ud cart add registration example.com
|
|
145
|
+
ud cart checkout --confirm
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### DNS Setup
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
ud domains dns nameservers list example.com # Verify UD nameservers
|
|
152
|
+
ud domains dns records list example.com
|
|
153
|
+
ud domains dns records add example.com --type A --values 1.2.3.4
|
|
154
|
+
ud domains operations example.com # Track propagation
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
See detailed guides:
|
|
158
|
+
- [Search & Purchase](references/search-and-purchase.md)
|
|
159
|
+
- [DNS Management](references/dns-management.md)
|
|
160
|
+
- [Cart & Checkout](references/cart-and-checkout.md)
|
|
161
|
+
- [Marketplace](references/marketplace.md)
|
|
162
|
+
|
|
163
|
+
## Key Constraints
|
|
164
|
+
|
|
165
|
+
| Constraint | Limit |
|
|
166
|
+
|---|---|
|
|
167
|
+
| Max domains per bulk operation | 50 |
|
|
168
|
+
| Max search queries per request | 10 |
|
|
169
|
+
| Max TLDs per search | 5 (default: com, net, org, ai, io) |
|
|
170
|
+
| Prices | In **cents (USD)** — `5000` = $50.00 |
|
|
171
|
+
| Registration/renewal quantity | 1–10 years |
|
|
172
|
+
| Custom nameservers | 2–12 hostnames; disables DNS record management |
|
|
173
|
+
|
|
174
|
+
### Safety Confirmations
|
|
175
|
+
|
|
176
|
+
| Operation | Required Flag |
|
|
177
|
+
|---|---|
|
|
178
|
+
| `ud cart checkout` | `--confirm` |
|
|
179
|
+
| `ud domains dns records remove-all` | `--confirm` |
|
|
180
|
+
| `ud marketplace listings cancel` | `--confirm` |
|
|
181
|
+
| `ud domains push` | `--otp-code` (6-digit MFA) |
|
|
182
|
+
|
|
183
|
+
## Error Handling
|
|
184
|
+
|
|
185
|
+
- **401/403**: Re-authenticate with `ud auth login`
|
|
186
|
+
- **Wrong cart tool**: Most common error. Check `marketplace.source` from search results. Use `ud cart add` (smart) to avoid this.
|
|
187
|
+
- **Missing ICANN contact**: Required for DNS domains. Create with `ud domains contacts create`.
|
|
188
|
+
- **DNS changes not appearing**: Changes are async. Check with `ud domains operations`.
|
|
189
|
+
- **Checkout fails with no payment**: Use `ud cart payment-methods` to check, or `ud cart add-payment-method` to add one.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Cart & Checkout
|
|
2
|
+
|
|
3
|
+
## Cart Operations
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ud cart get # View cart contents and pricing
|
|
7
|
+
ud cart remove # Remove items (use --data for item IDs)
|
|
8
|
+
ud cart url # Get browser checkout URL
|
|
9
|
+
ud cart payment-methods # List saved cards and account balance
|
|
10
|
+
ud cart add-payment-method # Get URL to add a payment method
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Adding to Cart
|
|
14
|
+
|
|
15
|
+
### Smart Add (Recommended)
|
|
16
|
+
|
|
17
|
+
`ud cart add` auto-detects the domain source and routes to the correct subcommand:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ud cart add mybusiness.com mybusiness.io
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Explicit Subcommands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
ud cart add registration <domains...> # Fresh registration
|
|
27
|
+
ud cart add listed <domains...> # UD marketplace listing
|
|
28
|
+
ud cart add afternic <domains...> # Afternic marketplace
|
|
29
|
+
ud cart add sedo <domains...> # Sedo marketplace
|
|
30
|
+
ud cart add renewal <domains...> # Renew owned domains
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Options
|
|
34
|
+
|
|
35
|
+
- `--quantity <years>`: Registration or renewal period (1–10 years, default: 1)
|
|
36
|
+
- `--domains-file <path>`: Read domain list from file (one per line)
|
|
37
|
+
- Max 50 domains per cart-add call
|
|
38
|
+
|
|
39
|
+
## ICANN Contact Requirement
|
|
40
|
+
|
|
41
|
+
DNS domains (.com, .org, .net, etc.) **require an ICANN contact before checkout**. Checkout fails without one.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Check for existing contacts
|
|
45
|
+
ud domains contacts list
|
|
46
|
+
|
|
47
|
+
# Create if needed
|
|
48
|
+
ud domains contacts create --data '{
|
|
49
|
+
"firstName": "Jane",
|
|
50
|
+
"lastName": "Doe",
|
|
51
|
+
"email": "jane@example.com",
|
|
52
|
+
"phone": {"dialingPrefix": "+1", "number": "5551234567"},
|
|
53
|
+
"street": "123 Main St",
|
|
54
|
+
"city": "Austin",
|
|
55
|
+
"stateProvince": "TX",
|
|
56
|
+
"postalCode": "78701",
|
|
57
|
+
"countryCode": "US"
|
|
58
|
+
}'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Using the account email for the contact enables instant verification. Otherwise, the contact enters `draft` state — wait a few seconds and re-check with `ud domains contacts list`.
|
|
62
|
+
|
|
63
|
+
## Checkout
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Requires --confirm
|
|
67
|
+
ud cart checkout --confirm
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
- Uses account credits by default
|
|
71
|
+
- If balance is insufficient, pass a payment method: `--data '{"paymentMethodId":"pm_xxx"}'`
|
|
72
|
+
- `contactId` auto-selects the most recent ICANN contact if omitted
|
|
73
|
+
- Cart is cleared after successful checkout
|
|
74
|
+
|
|
75
|
+
### Browser Checkout
|
|
76
|
+
|
|
77
|
+
For users who prefer to review and pay in the browser:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
ud cart url
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Pricing
|
|
84
|
+
|
|
85
|
+
All prices are in **cents (USD)**: `5000` = $50.00.
|
|
86
|
+
|
|
87
|
+
## Renewals
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Check expiration dates
|
|
91
|
+
ud domains list --fields name,expiresAt
|
|
92
|
+
|
|
93
|
+
# Add renewals (1–10 years per domain)
|
|
94
|
+
ud cart add renewal mysite.com --quantity 2
|
|
95
|
+
ud cart add renewal mysite.com othersite.com
|
|
96
|
+
|
|
97
|
+
# Check payment and complete
|
|
98
|
+
ud cart payment-methods
|
|
99
|
+
ud cart checkout --confirm
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Troubleshooting
|
|
103
|
+
|
|
104
|
+
- **Wrong cart tool**: Check `marketplace.source` from search results. Use smart `ud cart add` to avoid this.
|
|
105
|
+
- **Missing ICANN contact**: Create one with `ud domains contacts create` before checkout.
|
|
106
|
+
- **Contact in draft**: ID starts with `draft-`. Wait a few seconds and re-check with `ud domains contacts list`.
|
|
107
|
+
- **No payment method**: Use `ud cart payment-methods` to verify, or `ud cart add-payment-method` to add one.
|
|
108
|
+
- **Insufficient balance**: Pass `paymentMethodId` in checkout `--data`.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# DNS Management
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
DNS record management only works when the domain uses UD default nameservers. Always check first:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
ud domains dns nameservers list example.com
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
If the domain uses custom nameservers, switch back to UD defaults to manage records:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
ud domains dns nameservers set-default --data '{"domains":["example.com"]}'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Listing Records
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ud domains dns records list example.com
|
|
21
|
+
ud domains dns records list example.com --format json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Adding Records
|
|
25
|
+
|
|
26
|
+
### Single Record (shorthand flags)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# A record
|
|
30
|
+
ud domains dns records add example.com --type A --values 1.2.3.4
|
|
31
|
+
|
|
32
|
+
# CNAME with subdomain
|
|
33
|
+
ud domains dns records add example.com --type CNAME --sub-name www --values example.com
|
|
34
|
+
|
|
35
|
+
# MX record
|
|
36
|
+
ud domains dns records add example.com --type MX --values "10 mail.example.com"
|
|
37
|
+
|
|
38
|
+
# TXT record
|
|
39
|
+
ud domains dns records add example.com --type TXT --values "v=spf1 include:_spf.google.com ~all"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Bulk Records (--data)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
ud domains dns records add example.com --data '{
|
|
46
|
+
"records": [
|
|
47
|
+
{"domain": "example.com", "type": "A", "values": ["1.2.3.4"]},
|
|
48
|
+
{"domain": "example.com", "type": "CNAME", "subName": "www", "values": ["example.com"]},
|
|
49
|
+
{"domain": "example.com", "type": "MX", "values": ["10 mail.example.com"]}
|
|
50
|
+
]
|
|
51
|
+
}'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Upsert Modes
|
|
55
|
+
|
|
56
|
+
If a record already exists, use `--upsert-mode`:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Append new values alongside existing ones
|
|
60
|
+
ud domains dns records add example.com --type A --values 5.6.7.8 --upsert-mode append
|
|
61
|
+
|
|
62
|
+
# Replace existing values entirely
|
|
63
|
+
ud domains dns records add example.com --type A --values 5.6.7.8 --upsert-mode replace
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Without `--upsert-mode`, adding a duplicate record type returns a `NO_CHANGE` error.
|
|
67
|
+
|
|
68
|
+
## Updating Records
|
|
69
|
+
|
|
70
|
+
Get the record ID from `ud domains dns records list` first:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
ud domains dns records update --data '{
|
|
74
|
+
"records": [{"recordId": "rec_abc123", "values": ["5.6.7.8"]}]
|
|
75
|
+
}'
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Removing Records
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Remove specific record by ID
|
|
82
|
+
ud domains dns records remove --data '{
|
|
83
|
+
"records": [{"recordId": "rec_abc123"}]
|
|
84
|
+
}'
|
|
85
|
+
|
|
86
|
+
# Remove ALL records (requires --confirm)
|
|
87
|
+
ud domains dns records remove-all example.com --confirm
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Tracking Changes
|
|
91
|
+
|
|
92
|
+
DNS changes are asynchronous. Track propagation:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
ud domains operations example.com
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Custom Nameservers
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Set custom nameservers (disables DNS record management)
|
|
102
|
+
ud domains dns nameservers set-custom --data '{
|
|
103
|
+
"domains": ["example.com"],
|
|
104
|
+
"nameservers": ["ns1.custom.com", "ns2.custom.com"]
|
|
105
|
+
}'
|
|
106
|
+
|
|
107
|
+
# Reset to UD defaults (re-enables DNS record management)
|
|
108
|
+
ud domains dns nameservers set-default --data '{"domains":["example.com"]}'
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Custom nameservers require 2–12 hostnames. DNSSEC DS records are optional.
|
|
112
|
+
|
|
113
|
+
## Hosting & Redirects
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# List hosting config
|
|
117
|
+
ud domains hosting redirects list example.com
|
|
118
|
+
|
|
119
|
+
# Add a redirect
|
|
120
|
+
ud domains hosting redirects add --data '{
|
|
121
|
+
"records": [{"domain": "example.com", "type": "redirect-301", "target": "https://newsite.com"}]
|
|
122
|
+
}'
|
|
123
|
+
|
|
124
|
+
# Remove redirect
|
|
125
|
+
ud domains hosting redirects remove --data '{
|
|
126
|
+
"records": [{"domain": "example.com"}]
|
|
127
|
+
}'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## AI Landing Pages
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Generate an AI landing page (async)
|
|
134
|
+
ud domains hosting landers generate example.com
|
|
135
|
+
|
|
136
|
+
# Check status (pending → generating → hosted)
|
|
137
|
+
ud domains hosting landers status example.com
|
|
138
|
+
|
|
139
|
+
# Remove (destructive — deletes content and hosting config)
|
|
140
|
+
ud domains hosting landers remove example.com
|
|
141
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Marketplace
|
|
2
|
+
|
|
3
|
+
## Listing Domains for Sale
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# List a domain with a price
|
|
7
|
+
ud marketplace listings create mydomain.com --price 99.99
|
|
8
|
+
|
|
9
|
+
# Bulk listing with --data
|
|
10
|
+
ud marketplace listings create mydomain.com otherdomain.com --price 50.00
|
|
11
|
+
|
|
12
|
+
# Update listing price
|
|
13
|
+
ud marketplace listings update --price 75.00 --data '{
|
|
14
|
+
"listings": [{"listingId": "l123"}]
|
|
15
|
+
}'
|
|
16
|
+
|
|
17
|
+
# Cancel listings (requires --confirm)
|
|
18
|
+
ud marketplace listings cancel --confirm --data '{
|
|
19
|
+
"listingIds": ["l123"]
|
|
20
|
+
}'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Listing Options
|
|
24
|
+
|
|
25
|
+
Prices are specified in dollars via `--price` (converted to cents automatically). For advanced settings, use `--data`:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
ud marketplace listings create mydomain.com --data '{
|
|
29
|
+
"domains": [{
|
|
30
|
+
"name": "mydomain.com",
|
|
31
|
+
"priceInCents": 9999,
|
|
32
|
+
"acceptOffers": true,
|
|
33
|
+
"validityInDays": 365
|
|
34
|
+
}]
|
|
35
|
+
}'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Offers
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# List incoming offers
|
|
42
|
+
ud marketplace offers list
|
|
43
|
+
|
|
44
|
+
# Filter by status
|
|
45
|
+
ud marketplace offers list --data '{"status": "pending"}'
|
|
46
|
+
|
|
47
|
+
# Accept an offer
|
|
48
|
+
ud marketplace offers respond --data '{
|
|
49
|
+
"offers": [{"offerId": "o123", "action": "accept"}]
|
|
50
|
+
}'
|
|
51
|
+
|
|
52
|
+
# Reject an offer
|
|
53
|
+
ud marketplace offers respond --data '{
|
|
54
|
+
"offers": [{"offerId": "o123", "action": "reject"}]
|
|
55
|
+
}'
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Domain Conversations (Leads)
|
|
59
|
+
|
|
60
|
+
Leads are buyer-seller conversations about domains.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# List all conversation leads
|
|
64
|
+
ud marketplace leads list
|
|
65
|
+
|
|
66
|
+
# Get or create a conversation for a domain
|
|
67
|
+
ud marketplace leads get mydomain.com
|
|
68
|
+
|
|
69
|
+
# List messages in a conversation
|
|
70
|
+
ud marketplace leads messages --conversation-id 42
|
|
71
|
+
|
|
72
|
+
# Send a message
|
|
73
|
+
ud marketplace leads send --conversation-id 42 --content "Thanks for your interest!"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### When to Use Leads
|
|
77
|
+
|
|
78
|
+
- When a domain is `registered-listed-for-offers`, direct users to the `purchaseUrl` or use leads to contact the seller.
|
|
79
|
+
- When a domain is `registered-not-for-sale` and `listingSettings.contactSellerEnabled` is true, use `ud marketplace leads get <domain>` to contact the owner.
|
|
80
|
+
|
|
81
|
+
## Workflow: List → Sell
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# 1. Verify ownership
|
|
85
|
+
ud domains list --fields name
|
|
86
|
+
|
|
87
|
+
# 2. Create listing
|
|
88
|
+
ud marketplace listings create mydomain.com --price 99.99
|
|
89
|
+
|
|
90
|
+
# 3. Monitor offers
|
|
91
|
+
ud marketplace offers list
|
|
92
|
+
|
|
93
|
+
# 4. Respond to offers
|
|
94
|
+
ud marketplace offers respond --data '{
|
|
95
|
+
"offers": [{"offerId": "o123", "action": "accept"}]
|
|
96
|
+
}'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Workflow: Browse → Buy via Marketplace
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# 1. Search for listed domains
|
|
103
|
+
ud search premium-name --format json
|
|
104
|
+
|
|
105
|
+
# 2. Check marketplace.source and marketplace.status
|
|
106
|
+
|
|
107
|
+
# 3. Add to cart (use smart add)
|
|
108
|
+
ud cart add premium-name.com
|
|
109
|
+
|
|
110
|
+
# 4. Checkout
|
|
111
|
+
ud cart get
|
|
112
|
+
ud cart checkout --confirm
|
|
113
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Search & Purchase Domains
|
|
2
|
+
|
|
3
|
+
The most common workflow: search for domains, add to cart, and purchase.
|
|
4
|
+
|
|
5
|
+
## Quick Path (Smart Add)
|
|
6
|
+
|
|
7
|
+
`ud cart add` auto-detects the marketplace source, so you can skip the decision table:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ud search mybusiness --format json
|
|
11
|
+
ud cart add mybusiness.com mybusiness.io
|
|
12
|
+
ud cart get
|
|
13
|
+
ud cart checkout --confirm
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Full Decision Table
|
|
17
|
+
|
|
18
|
+
After `ud search`, each result includes `marketplace.source` and `marketplace.status`. These determine which cart command to use:
|
|
19
|
+
|
|
20
|
+
| `marketplace.source` | `marketplace.status` | Cart command |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `unstoppable_domains` | `available` | `ud cart add registration <domain>` |
|
|
23
|
+
| `unstoppable_domains` | `registered-listed-for-sale` | `ud cart add listed <domain>` |
|
|
24
|
+
| `unstoppable_domains` | `registered-listed-for-offers` | Cannot cart. Direct user to `purchaseUrl` to make an offer. |
|
|
25
|
+
| `afternic` | `registered-listed-for-sale` | `ud cart add afternic <domain>` |
|
|
26
|
+
| `sedo` | `registered-listed-for-sale` | `ud cart add sedo <domain>` |
|
|
27
|
+
| any | `registered-not-for-sale` | Not purchasable. Contact seller via `ud marketplace leads get <domain>`. |
|
|
28
|
+
| any | `unavailable` or `invalid` | Not purchasable. Suggest alternatives. |
|
|
29
|
+
|
|
30
|
+
Using the wrong cart command is the most common error. Smart `ud cart add` avoids this.
|
|
31
|
+
|
|
32
|
+
## Step-by-Step
|
|
33
|
+
|
|
34
|
+
### 1. Search
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Basic search
|
|
38
|
+
ud search mybusiness
|
|
39
|
+
|
|
40
|
+
# With options
|
|
41
|
+
ud search mybusiness --tlds com,io,org --limit 20
|
|
42
|
+
|
|
43
|
+
# JSON for scripting
|
|
44
|
+
ud search mybusiness --format json
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Default TLDs when none specified: com, net, org, ai, io. Max 5 TLDs, max 10 queries per request.
|
|
48
|
+
|
|
49
|
+
### 2. Add to Cart
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Smart add (recommended) — auto-detects source
|
|
53
|
+
ud cart add mybusiness.com mybusiness.io
|
|
54
|
+
|
|
55
|
+
# Or explicit type
|
|
56
|
+
ud cart add registration mybusiness.com
|
|
57
|
+
ud cart add listed premium-domain.com
|
|
58
|
+
ud cart add afternic afternic-domain.com
|
|
59
|
+
ud cart add sedo sedo-domain.com
|
|
60
|
+
|
|
61
|
+
# Renewals (domains you already own)
|
|
62
|
+
ud cart add renewal mysite.com --quantity 2 # 2-year renewal
|
|
63
|
+
|
|
64
|
+
# Multi-year registration
|
|
65
|
+
ud cart add registration mybusiness.com --quantity 3
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 3. Review Cart
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
ud cart get
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
All prices are in **cents (USD)**: `5000` = $50.00.
|
|
75
|
+
|
|
76
|
+
### 4. Payment
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Check available payment methods
|
|
80
|
+
ud cart payment-methods
|
|
81
|
+
|
|
82
|
+
# Add a payment method if needed
|
|
83
|
+
ud cart add-payment-method # Returns URL to add card in browser
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 5. Checkout
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Complete purchase (requires --confirm)
|
|
90
|
+
ud cart checkout --confirm
|
|
91
|
+
|
|
92
|
+
# Or get a browser checkout URL
|
|
93
|
+
ud cart url
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
If using account credits but the balance is insufficient, pass `--data '{"paymentMethodId":"pm_xxx"}'` to use a card.
|
|
97
|
+
|
|
98
|
+
## Lease-to-Own (LTO)
|
|
99
|
+
|
|
100
|
+
Only UD marketplace listings (`ud cart add listed`) support LTO. Check search results for `listingSettings.leaseToOwnOptions`:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
ud cart add listed premium.com --data '{
|
|
104
|
+
"domains": [{
|
|
105
|
+
"name": "premium.com",
|
|
106
|
+
"leaseToOwnOptions": {
|
|
107
|
+
"type": "equal_installments",
|
|
108
|
+
"termLength": 12
|
|
109
|
+
}
|
|
110
|
+
}]
|
|
111
|
+
}'
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
- `type`: `equal_installments` or `down_payment_plus_equal_installments`
|
|
115
|
+
- `termLength`: 2–120 months (must not exceed `maxTermLength` from search results)
|
|
116
|
+
- `downPaymentPercentage`: 10–90% (only for `down_payment_plus_equal_installments`)
|
|
117
|
+
|
|
118
|
+
## DNS Domain Registration
|
|
119
|
+
|
|
120
|
+
DNS domains (.com, .org, .net, etc.) require an ICANN contact before checkout. Checkout will fail without one.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Check for existing contacts
|
|
124
|
+
ud domains contacts list
|
|
125
|
+
|
|
126
|
+
# Create one if needed (use account email for instant verification)
|
|
127
|
+
ud domains contacts create --data '{
|
|
128
|
+
"firstName": "Jane",
|
|
129
|
+
"lastName": "Doe",
|
|
130
|
+
"email": "jane@example.com",
|
|
131
|
+
"phone": {"dialingPrefix": "+1", "number": "5551234567"},
|
|
132
|
+
"street": "123 Main St",
|
|
133
|
+
"city": "Austin",
|
|
134
|
+
"stateProvince": "TX",
|
|
135
|
+
"postalCode": "78701",
|
|
136
|
+
"countryCode": "US"
|
|
137
|
+
}'
|
|
138
|
+
|
|
139
|
+
# Then add and checkout
|
|
140
|
+
ud cart add registration example.com
|
|
141
|
+
ud cart checkout --confirm
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Contacts created with the user's account email are auto-verified. Otherwise the contact enters `draft` state — wait a few seconds and re-check with `ud domains contacts list`.
|