# Show domain details

> One domain by name: status, billing, package and DNS.

- Effect: Read - Changes nothing.
- Idempotent: yes
- Stability: beta
- MCP tool: `manitu_domain_get` on https://mcp.manitu.de/mcp
- REST: `POST https://api.manitu.de/v1/domain/get`
- Needs: `service_domain`
- Page: /reference/domain/get/

## MCP tool

`manitu_domain_get`

### Description for the model

Returns one domain of the manitu customer account this connection works in, by name: status (active, transfer_pending, expiring), set-up and paid-until days; under domain its type (registered through manitu, external or alias), billing (or that it is included in a web hosting package - which one, with the site_id for manitu_webhosting_get), and DNS - whether manitu's name servers answer for it, which name servers do, and whether zone and name servers can be changed at manitu. DNS is looked up live. Not found if the account has no such domain; refused if this access may not see it.

### Arguments

- `name` (string, required) - The domain name, with international characters or in ASCII. (minLength `1`; maxLength `253`)

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "manitu_domain_get",
    "arguments": {
      "name": "example.com"
    }
  }
}
```

## REST

`POST https://api.manitu.de/v1/domain/get`

### Authentication

One of `X-API-Key`, `Authorization: Bearer …` - never more than one in a request.

### Request body

JSON; unknown fields are refused.

- `name` (string, required) - The domain name, with international characters or in ASCII. (minLength `1`; maxLength `253`)

### Response

In `data`; the rest of the body as on every call.

- `service_type` (string, required) - The kind of service - its own data is under the key of that name. (one of `"domain"`)
- `name` (string, required) - The domain name, international characters as such (müller.de) - what its routes take as name.
- `status` (string, required) - active; transfer_pending (on its way to manitu); expiring (terminated, runs until paid_until). (one of `"active"`, `"transfer_pending"`, `"expiring"`)
- `is_configurable` (boolean, required) - It can be changed right now - false while the transfer to manitu is pending.
- `plan` (any | null, required) - Domains have no plan - the kind of domain is domain.type.
- `paid_until` (string | null, required) - Paid until this day. (format `date`)
- `created_on` (string | null, required) - Set up at manitu on this day. (format `date`)
- `domain` (object, required)
  - `domain.name_ascii` (string, required) - The same name in ASCII (xn--mller-kva.de) - what DNS and registries use.
  - `domain.type` (string, required) - registered (through manitu); external (registered elsewhere, web, mail and DNS at manitu); alias (of another domain). (one of `"registered"`, `"external"`, `"alias"`)
  - `domain.billing` (object, required)
    - `domain.billing.included_in_package` (boolean, required) - Paid with a web hosting package - no period of its own.
    - `domain.billing.period` (string | null, required) - How often it is billed (e.g. month, year), unless included in a package. (one of `"none"`, `"onetime"`, `"month"`, `"year"`, `null`)
    - `domain.billing.period_length` (integer | null, required) - How many periods one billing covers.
  - `domain.package` (object | null, required) - The web hosting package the domain belongs to, if any.
    - `domain.package.name` (string, required) - The name of the web hosting package on contract and invoice.
    - `domain.package.site_id` (integer | null, required) - The web hosting package - what manitu_webhosting_get takes; null if it is not shown.
  - `domain.dns` (object, required) - Looked up live when asked.
    - `domain.dns.managed_by_manitu` (boolean, required) - manitu's name servers answer for the domain.
    - `domain.dns.zone` (string | null, required) - primary: manitu holds the zone; secondary: manitu copies it; null: not at manitu. (one of `"primary"`, `"secondary"`, `null`)
    - `domain.dns.zone_editable` (boolean, required) - The DNS records can be changed at manitu.
    - `domain.dns.nameservers_editable` (boolean, required) - The name servers of the domain can be changed at manitu.
    - `domain.dns.nameservers` (array of string | null, required) - The name servers that answer for the domain, as found - null if none were found.

### Statuses

- `200` Success.
- `400` The request does not match the declared input schema.
- `401` No credential was presented, or it was not recognised.
- `403` The credential is not permitted to use this operation.
- `500` The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.
- `503` The channel this operation forwards through is unavailable.

### Example

```sh
curl -X POST 'https://api.manitu.de/v1/domain/get' \
  -H 'X-API-Key: $API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"example.com"}'
```

## Example result

```json
{
  "service_type": "domain",
  "name": "example.com",
  "status": "active",
  "is_configurable": true,
  "plan": "string",
  "paid_until": "2026-10-23",
  "created_on": "2026-10-23",
  "domain": {
    "name_ascii": "string",
    "type": "registered",
    "billing": {
      "included_in_package": true,
      "period": "none",
      "period_length": 1
    },
    "package": {
      "name": "example.com",
      "site_id": 12345
    },
    "dns": {
      "managed_by_manitu": true,
      "zone": "primary",
      "zone_editable": true,
      "nameservers_editable": true,
      "nameservers": [
        "string"
      ]
    }
  }
}
```
