dotld — Domain Availability & Pricing
Installation
If dotld is not already available on the machine, install it:
CODEBLOCK0
Prerequisites
dotld requires a Dynadot production API key. The key is resolved in this order:
- 1.
--dynadot-key <key> flag (also auto-saves to config for future runs) - INLINECODE2 environment variable
- Saved config at INLINECODE3
Get a key at: https://www.dynadot.com/account/domain/setting/api.html
If the key is missing, dotld exits with an error and a link to the key page.
Modes of Operation
Exact domain lookup
When the input contains a dot, dotld checks that specific domain:
CODEBLOCK1
Output:
CODEBLOCK2
Or if available:
CODEBLOCK3
Keyword expansion
When the input has no dot, dotld auto-expands across 9 popular TLDs — com, net, org, io, ai, co, app, dev, sh:
CODEBLOCK4
Output:
CODEBLOCK5
Multiple domains at once
Pass multiple arguments or use --file:
CODEBLOCK6
Output Interpretation
- -
domain · Taken — registered, not available - INLINECODE6 — available with registration price and buy link
- Prices are in USD
Flags
| Flag | Description |
|---|
| INLINECODE7 | Output structured JSON instead of the tree table |
| INLINECODE8 |
Read domains from a file (one per line) |
|
--dynadot-key <key> | Provide API key (auto-saved to config) |
|
--timeout <duration> | Request timeout, e.g.
5s,
500ms (default:
10s) |
|
--currency USD | Currency for prices (only USD supported in v1) |
Workflow Guidance
User has a specific domain → run exact lookup:
CODEBLOCK7
User has a brand name or keyword → run keyword expansion:
CODEBLOCK8
User wants to brainstorm → suggest name variations, then batch-check them:
CODEBLOCK9
Present results as a ranked list: show available domains sorted by price, include buy links. Suggest next steps — open a buy link, check more TLDs, try name variations.
Batch from file → when the user has a list:
CODEBLOCK10
Structured output → when parsing results programmatically:
CODEBLOCK11
Examples
Check if a domain is taken
CODEBLOCK12
Explore TLDs for a keyword
CODEBLOCK13
JSON output for scripting
CODEBLOCK14
dotld — 域名可用性与定价
安装
如果机器上尚未安装 dotld,请执行以下命令进行安装:
bash
curl -fsSL https://raw.githubusercontent.com/tedstonne/dotld/main/scripts/install.sh | bash
前提条件
dotld 需要 Dynadot 生产环境 API 密钥。密钥按以下顺序解析:
- 1. --dynadot-key 参数(同时会自动保存到配置文件中,供后续使用)
- DYNADOTAPIPRODUCTION_KEY 环境变量
- 保存在 ~/.config/dotld/config.json 中的配置
获取密钥:https://www.dynadot.com/account/domain/setting/api.html
如果缺少密钥,dotld 将退出并显示错误信息及密钥页面链接。
运行模式
精确域名查询
当输入包含点时,dotld 会检查该特定域名:
bash
dotld example.com
输出:
example.com · 已注册
如果可用:
example.com · $9.99 · https://www.dynadot.com/domain/search?domain=example.com&rscreg=github
关键词扩展
当输入不包含点时,dotld 会自动扩展至 9 个热门顶级域名 — com、net、org、io、ai、co、app、dev、sh:
bash
dotld acme
输出:
acme
├─ acme.com · 已注册
├─ acme.net · 已注册
├─ acme.org · 已注册
├─ acme.io · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github
├─ acme.ai · 已注册
├─ acme.co · 已注册
├─ acme.app · 已注册
├─ acme.dev · 已注册
└─ acme.sh · 已注册
同时查询多个域名
传递多个参数或使用 --file:
bash
dotld acme.com startup.io mybrand
dotld --file domains.txt
输出说明
- - domain · 已注册 — 已被注册,不可用
- domain · $39.99 · https://... — 可用,包含注册价格和购买链接
- 价格以美元计价
参数
| 参数 | 说明 |
|---|
| --json | 输出结构化 JSON 格式,而非树形表格 |
| --file <路径> |
从文件读取域名(每行一个) |
| --dynadot-key <密钥> | 提供 API 密钥(自动保存至配置文件) |
| --timeout <时长> | 请求超时时间,例如 5s、500ms(默认:10s) |
| --currency USD | 价格货币(v1 版本仅支持美元) |
工作流程指导
用户有特定域名 → 执行精确查询:
bash
dotld coolstartup.com
用户有品牌名称或关键词 → 执行关键词扩展:
bash
dotld coolstartup
用户想要头脑风暴 → 建议名称变体,然后批量检查:
bash
dotld coolstartup launchpad rocketship
以排名列表呈现结果:按价格排序显示可用域名,包含购买链接。建议后续操作 — 打开购买链接、检查更多顶级域名、尝试名称变体。
从文件批量查询 → 当用户有域名列表时:
bash
dotld --file domains.txt
结构化输出 → 当需要以编程方式解析结果时:
bash
dotld acme --json
示例
检查域名是否已被注册
bash
$ dotld example.com
example.com · 已注册
探索关键词的顶级域名
bash
$ dotld acme
acme
├─ acme.com · 已注册
├─ acme.net · 已注册
├─ acme.org · 已注册
├─ acme.io · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github
├─ acme.ai · 已注册
├─ acme.co · 已注册
├─ acme.app · 已注册
├─ acme.dev · 已注册
└─ acme.sh · 已注册
用于脚本处理的 JSON 输出
bash
$ dotld example.com --json
{
results: [
{
domain: example.com,
available: false,
price: null,
currency: USD,
buyUrl: null,
cached: false,
quotedAt: 2026-02-21T00:00:00.000Z
}
]
}