molted domains
Manage sending domains
| Command | Description |
|---|---|
molted domains add | Add a custom domain (sending + receiving) |
molted domains list | List all domains |
molted domains get | Get domain details including DNS record status |
molted domains verify | Trigger DNS verification for a domain |
molted domains dns-check | Check if one-click DNS setup is available |
molted domains remove | Remove a domain |
molted domains rate-limits | View current rate limits and usage for a domain |
molted domains rate-limits set | Set custom rate limits for a domain |
molted domains tracking | Enable/disable open & click tracking for a domain |
molted domains warmup | View warmup progress for a domain |
molted domains warmup skip | Skip warmup limits for a domain |
Agent context
Domains control where your emails are sent from. Adding and verifying a custom domain improves deliverability (emails from your own domain instead of a shared one) and enables custom mailbox addresses.
Full domain setup flow
molted domains add yourdomain.com
# → { "id": "<uuid>", "status": "not_started", "dnsRecords": [...], "dmarc": {...}, ... }
# → dnsRecords lists the SPF, DKIM and MX records to add; dmarc has the DMARC record
# Custom domains need a paid plan: on Free, adding one is refused.
molted domains dns-check <domainId>
# → check if one-click DNS setup (Domain Connect) is available for your DNS provider:
# { "supported": true, "redirectUrl": "..." } or { "supported": false, "reason": "..." }
# Add the DNS records at your registrar, then verify:
molted domains verify <domainId>
# → the domain again, with its "status" ("verified" once every record checks out)
# and each record's own status in "dnsRecords"
# Once verified, create a mailbox on the domain:
molted mailboxes create --address agent@yourdomain.comDNS records to configure:
- SPF — authorizes Molted to send on behalf of your domain
- DKIM — cryptographic signature for email authentication
- DMARC — policy for handling authentication failures. The "dmarc" field on each domain has the exact record to publish, with a rua= pointing at Molted so aggregate reports are collected and parsed automatically
- MX — routes inbound email to Molted
Check domain status
molted domains list
molted domains get <id> # includes per-record verification statusRemove a domain
molted domains remove <id>
# → { "deleted": true }. Mailboxes on the domain are left as they are, but can
# no longer send from it.Rate limits
molted domains rate-limits <domainId>
# → view current per-minute, per-hour, per-day limits and usage
molted domains rate-limits set <domainId> --max-per-hour 100 --max-per-day 1000
# → set custom rate limits
molted domains rate-limits set <domainId> --no-max-per-minute
# → remove a limit (no per-minute cap on this domain; plan send limits still apply)
# Lowering a limit is always allowed; raising or removing one is a human
# decision (human gate).Warmup
molted domains warmup <domainId>
# → view warmup progress (warmupActive, currentDay, dailyLimit, sendsToday)
molted domains warmup skip <domainId>
# → bypass warmup limits for this domain (cannot be undone; a human decision)Open & click tracking (opt-in, off by default)
molted domains add yourdomain.com --click-tracking --open-tracking
# → enable at creation; defaults the tracking subdomain to "links"
molted domains tracking <domainId> --click --open
# → enable on an existing domain
molted domains tracking <domainId> --no-click
# → disable click tracking
# Tracking only activates once the extra "Tracking" CNAME (links.<domain>)
# is added to DNS and verified. Click tracking rewrites every link through
# that subdomain, which can affect deliverability — leave it off for
# purely transactional mail unless you need click metrics.Key behaviors
- Domains are always registered with both sending and receiving enabled
- DNS propagation can take up to 48 hours — re-run
verifyif it fails - The default mailbox works without a custom domain
- Open/click tracking is off by default; a tracking subdomain can be changed but never removed once set (Resend limits changes to once/24h)
Related: molted mailboxes, molted send
Commands
molted domains add
Add a custom domain (sending + receiving)
molted domains add [options] <domain>| Argument | Description | Required |
|---|---|---|
<domain> | yes |
| Option | Description | Default |
|---|---|---|
--open-tracking | Enable open tracking (1x1 pixel) | |
--click-tracking | Enable click tracking (rewrites links via tracking subdomain) | |
--tracking-subdomain <name> | Tracking subdomain label (default "links" when tracking is enabled) |
molted domains list
List all domains
molted domains listmolted domains get
Get domain details including DNS record status
molted domains get <id>| Argument | Description | Required |
|---|---|---|
<id> | yes |
molted domains verify
Trigger DNS verification for a domain
molted domains verify <id>| Argument | Description | Required |
|---|---|---|
<id> | yes |
molted domains dns-check
Check if one-click DNS setup is available
molted domains dns-check <id>| Argument | Description | Required |
|---|---|---|
<id> | yes |
molted domains remove
Remove a domain
molted domains remove <id>| Argument | Description | Required |
|---|---|---|
<id> | yes |
molted domains rate-limits
View current rate limits and usage for a domain
molted domains rate-limits <domainId>| Argument | Description | Required |
|---|---|---|
<domainId> | yes |
molted domains rate-limits set
Set custom rate limits for a domain
molted domains rate-limits set [options] <domainId>| Argument | Description | Required |
|---|---|---|
<domainId> | yes |
| Option | Description | Default |
|---|---|---|
--max-per-minute <n> | Max sends per minute | |
--no-max-per-minute | Remove per-minute limit | |
--max-per-hour <n> | Max sends per hour | |
--no-max-per-hour | Remove per-hour limit | |
--max-per-day <n> | Max sends per day | |
--no-max-per-day | Remove per-day limit |
molted domains tracking
Enable/disable open & click tracking for a domain
molted domains tracking [options] <domainId>| Argument | Description | Required |
|---|---|---|
<domainId> | yes |
| Option | Description | Default |
|---|---|---|
--open | Enable open tracking | |
--no-open | Disable open tracking | |
--click | Enable click tracking | |
--no-click | Disable click tracking | |
--subdomain <name> | Tracking subdomain label (default "links") |
molted domains warmup
View warmup progress for a domain
molted domains warmup <domainId>| Argument | Description | Required |
|---|---|---|
<domainId> | yes |
molted domains warmup skip
Skip warmup limits for a domain
molted domains warmup skip <domainId>| Argument | Description | Required |
|---|---|---|
<domainId> | yes |
See CLI overview for global options, credentials and output format.
molted doctor
Can this key send yet, and why isn't mail flowing? Renders GET /v1/agent/setup plus the after-send checks. Exit code: 1 if any blocker is found (not ready to send); otherwise 2 if any check could not be fully verified; otherwise 0 -- 0 means ready to send and every check fully verified, safe to gate a script on.
molted events
View message event timelines