# set_nameservers

> Replace a domain's authoritative nameservers at the registrar.

- Tier: D
- Required scope: write:domains
- Annotations: destructiveHint, idempotentHint
- Docs: https://api.inleed.com/tools/set-nameservers

## Description

Replace a domain's authoritative nameservers at the registrar. Confirmation-tier, because wrong nameservers take every site and mailbox on the domain offline: it validates and reads the current nameservers, then returns `{status:"confirmation_required", confirmationUrl, expiresAt, preview}`. Show the human the `confirmationUrl`; they review the change and approve it in the Inleed client area. Do not approve it yourself.

## Input schema

- `input` — string. A domain, email address, website URL, numeric service id, or hosting-account username the customer actually owns. Resolved to the owning account automatically; the resolved target is echoed back in the response.
- `inputs` — string[]. Several domains to repoint in one confirmation (2–25 identifiers, each as for input): the customer sees one card listing every domain with its current and new nameservers, and approves once. Use this — not repeated calls — when the customer wants several domains on the same nameservers.
- `nameservers` — string[] (required). The full set of nameserver hostnames to set (2–13), e.g. ns1.inleed.net.
- `attempt_key` — string. An idempotency key you choose. Reusing it within an hour returns the same held change instead of creating a second one.

## Example call

```json
{
  "name": "set_nameservers",
  "arguments": {
    "input": "example.se",
    "nameservers": [
      "example.se"
    ]
  }
}
```

