> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bizzyco.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Domains with AI

> Ask a Bizzy agent to search, register, verify, and renew domains and manage DNS — with approvals and spend ceilings on anything that costs money

<Badge color="green">New</Badge>

Bizzy agents can run the whole domain lifecycle for you: find an available name,
register it, verify a domain you own elsewhere, manage its DNS records, and
renew it before it expires. The same tools work in
[agent chat](/user-guide/agents/chat) and over the
[Bizzy MCP server](/mcp-server/introduction), and they use the exact same
backend as the UI and REST API — an agent-registered domain looks no different
from one you bought yourself.

Anything that spends money — registering or renewing — is held to the approval
and spend-ceiling model described in
[Approvals and spending](#approvals-and-spending) below.

## Find and register a domain

An agent can check availability and live pricing for names and TLD variants with
[`searchDomainAvailability`](/mcp-server/tools/domains#searchdomainavailability),
then register the one you pick with
[`registerDomain`](/mcp-server/tools/domains#registerdomain) — the same quote →
charge → provision flow as the UI. Try prompts like:

> Is acmeplumbing.com available? Check .co and .io too, and show me prices.

> Register acmeplumbing.com for 2 years if it's under \$30. Use our business
> address for the WHOIS contact.

The agent searches first, uses the quoted prices to set the registration's spend
ceiling — a multi-year registration totals the first year at the registration
price plus each additional year at the renewal price (see
[What you pay](/user-guide/domains/register#what-you-pay)) — and, at the default
**Ask** permission, asks for your approval before anything is charged (see
[Approvals and spending](#approvals-and-spending)). WHOIS privacy and
auto-renewal are on by default. Initial DNS is configured automatically, so the
domain is ready for [email addresses](/user-guide/email-addresses/bizzy-hosted)
once it's active.

## Verify a domain you own elsewhere

For a domain registered at another provider, an agent first adds the domain to
Bizzy with [`createDomain`](/mcp-server/tools/domains#createdomain) (if it isn't
there already), then starts ownership verification with
[`verifyDomain`](/mcp-server/tools/domains#verifydomain). Verification returns
the TXT record you need to publish at your DNS host, then checks for it —
verification also keeps being re-checked hourly in the background, and the agent
can poll for the result at any time.

> Verify getbizzy.net — give me the TXT record I need to add at Cloudflare.

> Has getbizzy.net finished verifying yet?

A verification token lasts 7 days; if it expires before the record shows up,
asking again starts a fresh one. See
[Verify a domain](/user-guide/domains/verify) for the underlying flow.

## Manage DNS records

For domains **registered through Bizzy**, an agent can list, create, update, and
delete DNS records
([`listDnsRecords`](/mcp-server/tools/domains#listdnsrecords),
[`createDnsRecord`](/mcp-server/tools/domains#creatednsrecord),
[`updateDnsRecord`](/mcp-server/tools/domains#updatednsrecord),
[`deleteDnsRecord`](/mcp-server/tools/domains#deletednsrecord)). The DNS zone is
created automatically the first time a record is added. This is handy for the
fiddly records other services ask you to add:

> Add the TXT record Stripe gave me to acmeplumbing.com:
> `stripe-verification=4c22…`

> Point acmeplumbing.com at 203.0.113.7 and www at the root domain.

> What DNS records does acmeplumbing.com have right now?

Domains verified with Bizzy but hosted elsewhere keep their DNS at your provider
— the agent can tell you what to add (as in the verification and
[deliverability](/user-guide/domains/deliverability) flows) but can't change
records there. See [Managing DNS Records](/user-guide/domains/dns) for the
supported record types and cautions around email-critical records.

## Renew a registration

An agent can preview a renewal price with
[`getDomainRenewalPrice`](/mcp-server/tools/domains#getdomainrenewalprice) and
renew with [`renewDomain`](/mcp-server/tools/domains#renewdomain), which charges
the account's default payment method and extends the expiration date. If the
registrar renewal fails after the charge, the charge is refunded automatically.

> What would it cost to renew acmeplumbing.com for 3 years?

> Renew acmeplumbing.com for a year if it's still under \$20.

Registered domains auto-renew by default, so manual renewal is mostly for
domains where you've turned auto-renew off or want to extend further ahead.

## Approvals and spending

Two domain tools spend real money: `registerDomain` and `renewDomain`. Three
independent safeguards keep an agent from spending more than you intend:

1. **A hard spend ceiling per call.** Both tools require `maxAmountCents`. If
   the live price already exceeds it, the call fails with
   `PRICE_EXCEEDS_MAXIMUM` and nothing is charged. The ceiling is enforced again
   right before the actual charge, so if the price rises after a renewal is
   queued, the renewal fails instead of charging above your ceiling.
2. **Preview before commit.** Each spend tool has a read-only pricing
   counterpart (`searchDomainAvailability` for registration,
   `getDomainRenewalPrice` for renewal) the agent uses to quote first and pick
   the ceiling. Retries reuse an idempotency key, so a retried call replays the
   original result instead of charging twice.
3. **Human approval.** Both tools default to **Ask**, so in agent chat you get
   an [inline approval card](/user-guide/agents/chat) — showing the exact tool
   input, including the ceiling — before anything is charged. External MCP
   clients have no approval step, so over MCP these tools are hidden unless you
   explicitly set their permission to **Allow**. Each has its own permission
   (`domain-registrations.purchase` and `domain-registrations.renewal`) that is
   never inherited from a broader grant — allowing other domain tools does not
   enable spending.

The remaining domain tools follow the standard model — reads default to
**Allow**, writes to **Ask** — and every level can be changed per agent. See
[Tool Permissions](/user-guide/agents/tool-permissions) for how the Allow / Ask
/ Deny model works.

Domain intent → tool sequence quick reference: **register a domain**:
`searchDomainAvailability` (get prices) → `registerDomain` with
`maxAmountCents` ≥ `registrationPrice + renewalPrice × (periodYears − 1)`
(search prices are per-year; a ceiling set from `registrationPrice` alone
under-prices multi-year registrations) and a fresh `idempotencyKey`.
**verify an external domain**: `createDomain` (if the domain is not in Bizzy
yet) → `verifyDomain` (returns the TXT record to publish; call again to
poll). **change DNS**: `listDnsRecords` →
`createDnsRecord`/`updateDnsRecord`/`deleteDnsRecord` (Bizzy-registered
domains only). **renew**: `getDomainRenewalPrice` → `renewDomain` with
`maxAmountCents` from the quote and a fresh `idempotencyKey`. Spend tools
fail closed: if the live price exceeds the ceiling, nothing is charged.
Parameter semantics live at `/mcp-server/tools/domains`.

## Next steps

<CardGroup cols={2}>
  <Card title="Domain tools reference" icon="wrench" href="/mcp-server/tools/domains">
    Parameters, permissions, and return shapes for every domain tool
  </Card>

  <Card title="Tool permissions" icon="shield-check" href="/user-guide/agents/tool-permissions">
    Set Allow, Ask, or Deny per tool on each agent
  </Card>
</CardGroup>
