> ## Documentation Index
> Fetch the complete documentation index at: https://bunnynet-cb9733c2-support-migration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# bunny dns

> Manage DNS zones and records from the command line.

<Warning>
  `bunny dns` is **experimental** and hidden from `--help` and the landing page
  while it stabilizes. Commands and flags may change.
</Warning>

`bunny dns` manages [DNS](/dns) through two resource groups:

* **`bunny dns record`** manages the entries within a zone.
* **`bunny dns zone`** manages the zone itself: settings, DNSSEC, logging, stats, and nameservers.

The `[domain]` argument accepts either the zone's domain name or its numeric zone ID, and is optional everywhere. Omit it and you'll be prompted to pick a zone. `record update` and `record remove` likewise prompt you to pick a record when the ID is omitted.

`record` aliases to `records` / `rec`; `zone` aliases to `zones` (and `domain` / `domains`).

## Records

Manage the DNS records within a zone.

```bash theme={null}
# List records within a zone
bunny dns record list example.com
bunny dns rec ls example.com

# Add records (use '@' for the zone apex)
bunny dns record add example.com api A 198.51.100.1
bunny dns record add example.com '@' MX mail.example.com 10
bunny dns record add example.com '@' SRV 10 0 389 sip.example.com
bunny dns record add example.com '@' CAA '0 issue "letsencrypt.org"'

# Link a record to a pull zone or Edge Script
bunny dns record add example.com cdn PullZone --pull-zone 12345
bunny dns record add example.com fn Script --script 67890

# Interactive wizard: omit the record type (or all args) to be prompted
bunny dns record add
bunny dns record add example.com

# Update / remove a record by its ID
bunny dns record update example.com 123 --value 198.51.100.2 --ttl 3600
bunny dns record remove example.com 123

# Import / export a BIND zone file
bunny dns record import example.com ./zonefile.txt
bunny dns record export example.com                  # print to stdout
bunny dns record export example.com --file ./my.zone # write to a path
bunny dns record export example.com --save           # write to ./example.com.zone
```

### Record value ordering

Positional values for `record add` follow the record type:

| Type                                  | Positional values                                  |
| ------------------------------------- | -------------------------------------------------- |
| `A` / `AAAA` / `CNAME` / `TXT` / `NS` | `<value>`                                          |
| `MX`                                  | `<value> <priority>`                               |
| `SRV`                                 | `<priority> <weight> <port> <target>`              |
| `CAA`                                 | `'<flags> <tag> "<value>"'` (single quoted string) |
| `PullZone`                            | none, pass `--pull-zone <id>`                      |
| `Script`                              | none, pass `--script <id>`                         |

Omit the record type (or all arguments) to run an interactive wizard that prompts for the zone, type, and per-type values.

## Zones

Manage zone lifecycle, statistics, nameservers, DNSSEC, and query logging.

```bash theme={null}
# Lifecycle
bunny dns zone list
bunny dns zone add example.com
bunny dns zone show example.com
bunny dns zone remove example.com

# Query statistics (defaults to the last 30 days; text mode draws a bar chart)
bunny dns zone stats example.com
bunny dns zone stats example.com --from 2026-05-01 --to 2026-05-31

# Nameservers to set at your registrar (custom if enabled, else bunny.net defaults)
bunny dns zone nameservers example.com
bunny dns zone ns example.com

# DNSSEC: enable prints the DS record to register at your domain registrar
bunny dns zone dnssec enable example.com
bunny dns zone dnssec disable example.com

# DNS query logging: enable to start collecting logs (optionally anonymize IPs)
bunny dns zone logging enable example.com
bunny dns zone logging enable example.com --anonymize-ip --anonymization drop
bunny dns zone logging disable example.com
```

## Flags

| Flag                                                                                                | Commands                                                                      | Description                                                          |
| --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `--ttl`                                                                                             | `record add`, `record update`                                                 | Time to live in seconds                                              |
| `--comment`                                                                                         | `record add`, `record update`                                                 | Optional comment for the record                                      |
| `--pull-zone`, `--script`                                                                           | `record add`, `record update`                                                 | Link a `PullZone` / `Script` record by ID                            |
| `--name`, `--value`, `--type`, `--priority`, `--weight`, `--port`, `--flags`, `--tag`, `--disabled` | `record update`                                                               | Edit individual record fields (see `bunny dns record update --help`) |
| `--file`, `--save`                                                                                  | `record export`                                                               | Write to a path, or to `<domain>.zone` in the current directory      |
| `--from`, `--to`                                                                                    | `zone stats`                                                                  | Date range (defaults to the last 30 days)                            |
| `--anonymize-ip`, `--anonymization`                                                                 | `zone logging enable`                                                         | Anonymize client IPs in logs (`onedigit` \| `drop`)                  |
| `--force`                                                                                           | `record remove`, `zone remove`, `zone dnssec disable`, `zone logging disable` | Skip the confirmation prompt                                         |
