run.domani/domani
REMOTE · DOMANI.RUN · SCANNED AUG 3
Internet identity for AI agents: register or broker domains, email, DNS - pay by card or USDC.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security91
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability72
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 13023 tokens (~106/item across 122 items; 122 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · domani.run
claude mcp add --transport http run-domani-domani https://domani.run/mcp
[mcp_servers.run-domani-domani] url = "https://domani.run/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"run-domani-domani": {
"type": "remote",
"url": "https://domani.run/mcp",
"enabled": true
}
}
} openclaw mcp add run-domani-domani --url https://domani.run/mcp --transport streamable-http
mcp_servers:
run-domani-domani:
url: "https://domani.run/mcp" {
"mcpServers": {
"run-domani-domani": {
"type": "http",
"url": "https://domani.run/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +5
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes. Other categories moved too: Schema Quality & AI Usability rose 2.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://domani.run/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=domani.run | CN=YE2,O=Let's Encrypt,C=US | 6 Jul 2026 | 4 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 5e06f2de1b09b36aabe6b402d014b770fe8 |
| SANs: *.domani.run, domani.run | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC secure
Validation of domani.run. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| run. | present | 37315 | 8 | Verified |
| domani.run. | present | 2371 | 13 | Verified |
| domani.run. | Verified address RRset verified with the apex keys |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' https://js.stripe.com https://vercel.live https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self' https://api.stripe.com https://cloudflare-dns.com https://vercel.live https://va.vercel-scripts.com; frame-src https://js.stripe.com https://vercel.live |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://domani.run/mcp | Verified | 200 | |
| http (plaintext) | http://domani.run/mcp | HTTPS enforced | 308 | https://domani.run/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
import_domain Import Domain ~73
Import an external domain you already own (registered at GoDaddy, Namecheap, Cloudflare, etc.) to manage through domani.run. Free, no transfer needed. Returns a TXT record to add at your DNS provider for ownership verification.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain to import, e.g. mysite.com |
No output schema declared.
No examples provided.
list_audit_events List Audit Events ~94
The account's security audit trail, newest first: token lifecycle (created/revoked/escalation attempts), spend-cap and max_price denials, charges, payout requests. Use it to review what the account's tokens have been doing.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Events to return (default 50) |
| type | string | — | Filter by event type, e.g. purchase.denied_cap, token.created |
No output schema declared.
No examples provided.
list_backorders List Backorders ~42
List the user's backorders (watching, caught, failed, cancelled, expired). Optionally filter by status.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | — | Filter by status |
No output schema declared.
No examples provided.
list_broker_requests List Broker Requests ~55
List your domain acquisition requests and their status (sourcing/contacted/negotiating/agreed/no_contact/declined). Requires deals:read scope.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | — | Filter by status, or 'all' |
No output schema declared.
No examples provided.
list_domains List Domains ~14
List all domains you own
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_email_folders List Email Folders ~61
List canonical mailbox folders, virtual views, server-derived total/unread counts, and backend capabilities. API: GET /api/emails/{address}/folders.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
list_email_messages List Email Messages ~229
List messages in a system folder or virtual view. Defaults to Inbox. Supports pagination, direction and search filters. API: GET /api/emails/{address}/messages.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Pagination cursor from previous response |
| direction | string | — | Filter by direction: 'in' for received, 'out' for sent |
| domain | string | yes | Mailbox domain |
| folder | string | — | System folder. Mutually exclusive with view. Defaults to inbox |
| from | string | — | Filter by sender address (case-insensitive, partial match) |
| limit | number | — | Max messages to return (default 20, max 100) |
| slug | string | yes | Mailbox slug |
| spam | boolean | — | Filter by spam flag. Pass false to hide spam-flagged inbound; omit to include all. |
| subject | string | — | Filter by subject (case-insensitive, partial match) |
| to | string | — | Filter by recipient address (case-insensitive, partial match) |
| view | string | — | Virtual view. Mutually exclusive with folder |
No output schema declared.
No examples provided.
list_identities List identities ~24
List the free agent identities (<handle>.domani.run) you've claimed.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_invoices List Invoices ~67
List the user's payment invoices. Returns invoice number, amount, date, and links to view/download the PDF. Each invoice is generated by Stripe when a domain is purchased, renewed, or transferred.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max invoices to return (default 20, max 100) |
No output schema declared.
No examples provided.
list_mail_rules List Mail Rules ~57
List a mailbox's inbound filtering rules, in the priority order they are applied. API: GET /api/emails/{address}/rules.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
list_mailbox_aliases List Mailbox Aliases ~53
List all alias addresses that deliver into a mailbox. API: GET /api/emails/{address}/aliases.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
list_mailbox_changes List Mailbox Changes ~79
Incrementally synchronize a mailbox with an opaque cursor. Call without a cursor before a bounded full snapshot, then replay changes from next_cursor. API: GET /api/email/changes.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque next_cursor from the previous response |
| limit | integer | — | — |
| mailbox_id | string | yes | Accessible mailbox ID |
No output schema declared.
No examples provided.
list_mailbox_credentials List App Passwords ~63
List the app passwords for a hosted mailbox (labels + metadata; secrets are shown only once at creation). API: GET /api/emails/{address}/credentials.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Hosted mailbox domain |
| slug | string | yes | Hosted mailbox slug |
No output schema declared.
No examples provided.
list_mailboxes List Mailboxes ~58
List all your email addresses. Optionally filter by domain. API: GET /api/emails (or GET /api/email).
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | — | Filter by domain, e.g. mysite.com. Omit to list all |
No output schema declared.
No examples provided.
list_negotiations List Negotiations ~66
List your active and past price negotiations (as buyer or seller). Counterparties are anonymized. Requires deals:read scope.
| Name | Type | Req | Description |
|---|---|---|---|
| role | string | — | Filter by your role |
| status | string | — | Filter by status (open|agreed|completed|all) |
No output schema declared.
No examples provided.
list_providers List Providers ~38
List all supported hosting and email providers with their connection methods, target requirements, and setup notes
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by category |
No output schema declared.
No examples provided.
list_services List Services ~24
List all supported services for domain verification (Stripe, Google Search Console, etc.)
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_suppressions List Suppressions ~78
List addresses on your suppression list - hard bounces and complaints (added automatically) plus manual entries. Sends to these addresses are skipped. API: GET /api/suppressions.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Pagination cursor from a previous response |
| limit | number | — | Max entries to return (default 50, max 100) |
No output schema declared.
No examples provided.
list_tlds List TLDs ~108
List all available TLDs with registration and renewal pricing
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max results to return |
| max_price | number | — | Maximum registration price in USD |
| min_price | number | — | Minimum registration price in USD |
| offset | number | — | Pagination offset |
| order | string | — | Sort order (default: asc) |
| search | string | — | Filter TLDs containing this string |
| sort | string | — | Sort field. Defaults to tld |
No output schema declared.
No examples provided.
list_tokens List API Tokens ~39
List all API tokens for your account. Shows token name, masked key, creation date, last used, and expiration status. Expired tokens are marked.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_webhook_deliveries List Webhook Deliveries ~74
Get recent delivery attempts for a webhook - shows event type, HTTP status, number of attempts, and any errors. Useful for debugging webhook issues.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum number of deliveries to return (default 20) |
| webhook_id | string | yes | ID of the webhook to get deliveries for |
No output schema declared.
No examples provided.
list_webhooks List Webhooks ~32
List all webhook endpoints configured for the user's account. Returns URL, subscribed events, and active status for each webhook.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
make_offer Make an Offer ~101
Open an anonymous price negotiation on a listed domain with an initial offer (below or at the asking price). The seller can counter, accept, or decline. Neither side sees the other's identity. Requires deals:write scope.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | The listed domain to negotiate on, e.g. premium.com |
| message | string | — | Optional message to the seller |
| offer | number | yes | Your initial offer in USD, e.g. 500 |
No output schema declared.
No examples provided.
mark_messages_read Mark Messages Read/Unread ~121
Retry-safely mark messages read or unread and return a durable per-item receipt. Reuse the exact idempotency key after timeouts. API: PATCH /api/emails/{address}/messages/read.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| idempotency_key | string | yes | Caller-stable key for this exact logical batch |
| message_ids | array | yes | IDs of messages to mark |
| read | boolean | yes | true = mark as read, false = mark as unread |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
plan_domain_adoption Plan Domain Adoption ~96
Read-only planner for an existing domain. Inspects registrar, nameservers, DNS provider, DNSSEC, account state, transfer eligibility, and price. Returns safe next actions. Call this before asking for an EPP code. Connecting is free and leaves registrar and DNS unchanged. Transferring preserves nameservers and never migrates DNS implicitly.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Existing domain to inspect, e.g. mysite.com |
No output schema declared.
No examples provided.
provision_agent Provision Agent Identity ~232
Give an AI agent a complete internet identity in one call: buy a domain, set up email, create a mailbox, and (optionally) register a webhook for inbound email. Use this when someone wants to 'give my agent a domain and email' or 'set up an agent from scratch'. Confirm the domain and price with the user first (it charges for the domain). The domain purchase is the only step that can fail the call; mailbox/webhook are best-effort and report warnings.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain to give the agent, e.g. myagent.run. Bought if not already owned. |
| name | string | — | Display name for outbound email. |
| payment_method | string | — | How to pay for the domain: card, usdc, or balance (marketplace credit). |
| slug | string | — | Mailbox local part, e.g. 'hi' for hi@domain. Default 'hi'. |
| webhook_url | string | — | Optional HTTPS URL to receive inbound email + domain events. |
| years | integer | — | Registration years (1-10, default 1). |
No output schema declared.
No examples provided.
release_identity Release identity ~29
Release a free identity handle so it's available again.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | The handle to release |
No output schema declared.
No examples provided.
remove_mail_rule Remove Mail Rule ~66
Remove an inbound filtering rule from a mailbox. API: DELETE /api/emails/{address}/rules/{ruleId}.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| rule_id | string | yes | The rule ID to remove |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
remove_mailbox_alias Remove Mailbox Alias ~78
Remove an alias address from a mailbox. Email to that address stops being delivered. API: DELETE /api/emails/{address}/aliases/{alias}.
| Name | Type | Req | Description |
|---|---|---|---|
| alias | string | yes | Alias address to remove - a bare slug or full address |
| domain | string | yes | Mailbox domain |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
remove_suppression Remove Suppression ~60
Remove an address from your suppression list so you can email it again (e.g. after the recipient fixed their mailbox). API: DELETE /api/suppressions/{address}.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Email address to remove from the suppression list |
No output schema declared.
No examples provided.
renew_domain Renew Domain ~170
Renew a domain you own for additional years. Always confirm with the user before calling this.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain to renew, e.g. mysite.com |
| max_price | number | — | Ceiling in USD for the renewal charge. Fails with PRICE_ABOVE_MAX (nothing charged) if the real price is above it. |
| payment_chain | string | — | Chain the USDC payment was sent on. |
| payment_method | string | — | Payment method: 'card' to charge card on file, 'usdc' to pay with USDC. Overrides the user's default preference for this request. |
| payment_tx | string | — | Transaction hash of a USDC payment already sent on-chain. |
| years | number | — | Number of years to renew (1-10, default 1) |
No output schema declared.
No examples provided.
replay_webhook_delivery Replay Webhook Delivery ~88
Redeliver one immutable webhook event. Requires a caller-stable idempotency key; retries with the same key return the same receipt and never send twice.
| Name | Type | Req | Description |
|---|---|---|---|
| delivery_id | string | yes | Original delivery ID from list_webhook_deliveries |
| idempotency_key | string | yes | Stable unique key for this replay operation |
| webhook_id | string | yes | Webhook ID |
No output schema declared.
No examples provided.
reply_to_message Reply to Email ~203
Reply to an email message. For shared human-agent mailboxes, first heartbeat composing presence and pass coordination plus a stable idempotency_key; the server atomically rejects stale/double replies. Threading headers are automatic. API: POST /api/emails/{address}/messages/{id}/reply.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | — | Reply-all: auto-CC original To and CC recipients (default: false) |
| cc | — | — | Additional CC recipients (overrides auto-CC when all=true) |
| coordination | object | — | Compose lease and reply generation returned by heartbeat_conversation_presence |
| domain | string | yes | Mailbox domain |
| html | string | — | HTML reply body |
| idempotency_key | string | — | Required with coordination; reuse this exact key after timeouts |
| message_id | string | yes | ID of the message to reply to |
| slug | string | yes | Mailbox slug |
| text | string | — | Plain text reply body |
No output schema declared.
No examples provided.
resend_email_verification Resend Email Verification ~60
Resend a verification email for your WHOIS contact email. If the contact email matches your login email, it's already verified. Rate limited to once per 15 minutes.
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | Email to verify (defaults to your contact email) |
No output schema declared.
No examples provided.
respond_to_broker_inquiry Respond to Broker Inquiry (Owner) ~162
Owner-agent path: respond to a broker's acquisition inquiry using the token from the outreach email in your inbox - fully autonomous, no email round-trip, no magic-link. offer/counter names a price and opens/advances an anonymous negotiation; accept agrees to the buyer's current offer on the table; decline/opt_out ends it. Token-authorized (no scope needed).
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | offer/counter to name a price; accept to take the buyer's current offer; decline to refuse; opt_out to stop contact |
| price | number | — | Your asking price in USD (required for offer/counter) |
| token | string | yes | The outreach token from your inquiry email (reply-to is broker+<token>@) |
No output schema declared.
No examples provided.
respond_to_offer Respond to Offer ~96
Counter, accept, or decline the current offer in a negotiation when it's your turn. 'accept' locks the price at the amount on the table; the buyer then finalizes payment. Requires deals:write scope.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Your response |
| counter | number | — | New amount in USD (required when action=counter) |
| message | string | — | — |
| negotiation_id | string | yes | The negotiation ID |
No output schema declared.
No examples provided.
restore_dns Restore DNS ~82
Restore DNS records from the server-side backup (created by snapshot_dns or during transfers). Uses diff to avoid duplicates. Call snapshot_dns first to create a backup. Pass dry_run to preview what would be applied without writing.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain name to restore DNS for |
| dry_run | boolean | — | Preview only - returns would_apply without writing anything |
No output schema declared.
No examples provided.
revoke_mailbox_credential Revoke App Password ~79
Revoke an app password on a hosted mailbox. Any mail client using it stops connecting. API: DELETE /api/emails/{address}/credentials/{id}.
| Name | Type | Req | Description |
|---|---|---|---|
| credential_id | string | yes | App password id from list_mailbox_credentials |
| domain | string | yes | Hosted mailbox domain |
| slug | string | yes | Hosted mailbox slug |
No output schema declared.
No examples provided.
revoke_token Revoke API Token ~47
Revoke an API token immediately. The token will stop working. Use list_tokens to find token IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| token_id | string | yes | ID of the token to revoke (from list_tokens) |
No output schema declared.
No examples provided.
rotate_email_webhook_secret Rotate Email Webhook Secret ~66
Regenerate the HMAC signing secret for a mailbox webhook. The old secret is immediately invalidated. API: POST /api/emails/{address}/webhook/rotate.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
search Search Domains ~181
Check availability and price for one or more domains. Pass full domain names (e.g. mysite.com). For bulk TLD search, pass an array like ["myapp.com", "myapp.io", "myapp.dev"]. Uses RDAP + retail pricing.
| Name | Type | Req | Description |
|---|---|---|---|
| domains | array | yes | Full domain names to check, e.g. ["myapp.com", "myapp.io"] |
| max_price | number | — | Maximum price in USD to filter results |
| order | string | — | Sort order (default: asc) |
| sort | string | — | Sort results by price or TLD name (default: price) |
| source | string | — | Filter results: 'all' (default), 'primary' (new registrations only), 'secondary' (marketplace listings only). Use source='secondary' with domains=['*'] to browse all marketplace listings. |
No output schema declared.
No examples provided.
sell_domain Sell Domain ~92
List a domain you own for sale on the Domani marketplace. Buyers can purchase it directly via the API. The domain must be active and not already listed. Requires domains:write scope.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional listing description |
| domain | string | yes | Domain to list for sale, e.g. premium.com |
| price | number | yes | Sale price in USD (e.g. 5000) |
No output schema declared.
No examples provided.
send_email Send Email ~309
Send an email from one of your mailboxes. Specify domain and slug to identify the sender mailbox. Supports text and/or HTML body, CC/BCC, attachments (base64), and threading via In-Reply-To/References. Rate limited to 100 sends per hour per mailbox. API: POST /api/emails/{address}/send.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_risky_content | boolean | — | Deprecated compatibility field. Public HTTPS third-party auth links are allowed with a warning; objective safety blocks cannot be overridden |
| attachments | array | — | File attachments (max 10, max 40MB total) |
| bcc | — | — | BCC recipient(s) |
| cc | — | — | CC recipient(s) |
| domain | string | yes | Sender mailbox domain, e.g. mysite.com or domani.run |
| html | string | — | HTML body |
| idempotency_key | string | — | Unique key to prevent duplicate sends. If a message with this key was already sent from this mailbox, the original result is returned. |
| in_reply_to | string | — | Message-ID of the email being replied to (for threading) |
| references | string | — | Space-separated Message-ID chain (for threading) |
| reply_to | string | — | Reply-to email address |
| slug | string | yes | Sender mailbox slug, e.g. hello or k7x9m2 |
| subject | string | — | Email subject line |
| text | string | — | Plain text body |
| to | — | yes | Recipient email address(es) |
No output schema declared.
No examples provided.
set_auto_renew Set Auto-Renew ~62
Enable or disable auto-renew for a domain you own. When enabled, the domain will be renewed automatically before expiry.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain name to configure |
| enabled | boolean | yes | true to enable auto-renew, false to disable |
No output schema declared.
No examples provided.
set_catch_all Set Catch-All ~122
Route any email sent to an unmatched address on a domain into a designated mailbox. Anything that does not match a mailbox, subaddress, or alias lands in the catch-all. The mailbox must already exist on the domain. API: PUT /api/domains/{domain}/email/catch-all.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain to set the catch-all on, e.g. mysite.com |
| mailbox | string | yes | Catch-all mailbox - a bare slug ('inbox') or full address ('[email protected]') on this domain |
No output schema declared.
No examples provided.
set_contact Set Contact ~198
Set your WHOIS contact information (recommended for ICANN compliance, required before transfers). You can purchase domains without setting contact info first - a default contact is used until you set your own.
| Name | Type | Req | Description |
|---|---|---|---|
| address1 | string | yes | Street address line 1 |
| address2 | string | — | Street address line 2 (optional) |
| city | string | yes | City |
| country | string | yes | ISO 3166-1 alpha-2 country code, e.g. US, GB, FR |
| string | yes | Contact email address | |
| first_name | string | yes | First name |
| last_name | string | yes | Last name |
| org_name | string | — | Organization name (optional) |
| phone | string | yes | Phone in +CC.NUMBER format, e.g. +1.5551234567 |
| postal_code | string | yes | Postal/ZIP code |
| state | string | yes | State or province |
No output schema declared.
No examples provided.
set_dns Set DNS Records ~185
Upsert DNS records for a domain you own, at the rrset level: records at a (type, name) you send replace that rrset; rrsets you don't mention are preserved (NS never touched). An automatic zone backup is taken before every write. Best practice: call get_dns first and pass its zone_version so a concurrent change fails with DNS_VERSION_CONFLICT instead of being clobbered. Common patterns: Vercel (A @ 76.76.21.21), GitHub Pages (CNAME @ user.github.io), Cloudflare Pages (CNAME @ project.pages.dev)
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Domain name to set DNS records for |
| records | array | yes | Array of DNS records to set |
| zone_version | string | — | The zone_version from get_dns - rejects the write with DNS_VERSION_CONFLICT if the zone changed since |
No output schema declared.
No examples provided.
set_domain_redirect Set Domain Redirect ~121
Forward a domain you own to another URL (e.g. brand.com -> brand.dev). The domain must point at domani's nameservers/parking IP. Permanent (308) by default, or temporary (307). Send an empty url to stop forwarding.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | The domain to forward (must be one you own) |
| permanent | boolean | — | true = permanent redirect (default), false = temporary |
| url | string | yes | Target URL to forward to, e.g. https://brand.dev. Empty string clears the redirect. |
No output schema declared.
No examples provided.
set_email_forward Set Email Forward ~117
Configure inbound handling for a mailbox: forward incoming emails to another address (in addition to storing) and/or drop spam-flagged messages. Set forward_to to null to remove forwarding. API: PATCH /api/emails/{address}.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| drop_spam | boolean | — | If true, spam-flagged inbound is dropped (not stored or webhooked) |
| forward_to | — | — | Email address to forward to, or null to remove |
| slug | string | yes | Mailbox slug |
No output schema declared.
No examples provided.
set_email_webhook Set Email Webhook ~111
Set or remove the inbound webhook URL for a mailbox. When set, incoming emails are POSTed to this URL in real-time with HMAC-SHA256 signing. Must be HTTPS. Set to null to remove. API: PUT /api/emails/{address}/webhook or DELETE /api/emails/{address}/webhook.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Mailbox domain |
| slug | string | yes | Mailbox slug |
| webhook_url | — | yes | HTTPS webhook URL, or null to remove |
No output schema declared.
No examples provided.