dotld
Search domain name availability and registration prices. Use when the user mentions domains, TLDs, domain registration, domain availability, or wants to find...
Description
name: dotld description: > Search domain name availability and registration prices. Use when the user mentions domains, TLDs, domain registration, domain availability, or wants to find, check, or brainstorm domain names. Runs the dotld CLI to query the Dynadot API for real-time pricing and availability. version: 1.0.7 license: MIT allowed-tools: Bash(dotld*) metadata: tags: [domains, dns, dynadot] openclaw: requires: bins: [dotld] env: [DYNADOT_API_PRODUCTION_KEY] primaryEnv: DYNADOT_API_PRODUCTION_KEY
dotld — Domain Availability & Pricing
Installation
If dotld is not already available on the machine, install it:
curl -fsSL https://raw.githubusercontent.com/tedstonne/dotld/main/scripts/install.sh | bash
Prerequisites
dotld requires a Dynadot production API key. The key is resolved in this order:
--dynadot-key <key>flag (also auto-saves to config for future runs)DYNADOT_API_PRODUCTION_KEYenvironment variable- Saved config at
~/.config/dotld/config.json
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:
dotld example.com
Output:
example.com · Taken
Or if available:
example.com · $9.99 · https://www.dynadot.com/domain/search?domain=example.com&rscreg=github
Keyword expansion
When the input has no dot, dotld auto-expands across 9 popular TLDs — com, net, org, io, ai, co, app, dev, sh:
dotld acme
Output:
acme
├─ acme.com · Taken
├─ acme.net · Taken
├─ acme.org · Taken
├─ acme.io · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github
├─ acme.ai · Taken
├─ acme.co · Taken
├─ acme.app · Taken
├─ acme.dev · Taken
└─ acme.sh · Taken
Multiple domains at once
Pass multiple arguments or use --file:
dotld acme.com startup.io mybrand
dotld --file domains.txt
Output Interpretation
domain · Taken— registered, not availabledomain · $39.99 · https://...— available with registration price and buy link- Prices are in USD
Flags
| Flag | Description |
|---|---|
--json |
Output structured JSON instead of the tree table |
--file <path> |
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:
dotld coolstartup.com
User has a brand name or keyword → run keyword expansion:
dotld coolstartup
User wants to brainstorm → suggest name variations, then batch-check them:
dotld coolstartup launchpad rocketship
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:
dotld --file domains.txt
Structured output → when parsing results programmatically:
dotld acme --json
Examples
Check if a domain is taken
$ dotld example.com
example.com · Taken
Explore TLDs for a keyword
$ dotld acme
acme
├─ acme.com · Taken
├─ acme.net · Taken
├─ acme.org · Taken
├─ acme.io · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github
├─ acme.ai · Taken
├─ acme.co · Taken
├─ acme.app · Taken
├─ acme.dev · Taken
└─ acme.sh · Taken
JSON output for scripting
$ 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"
}
]
}
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!