# Domains API

> Versanddomains hinzufügen, ihre DNS-Einträge und ihren Verifizierungsstatus lesen und sie verifizieren.

Basis-URL: `https://api.emailit.com/v2`. Authentifizieren Sie sich mit `Authorization: Bearer <API key>`.

## Domain erstellen — POST /domains

> Fügen Sie dem Workspace eine Versanddomain hinzu und erhalten Sie die DNS-Einträge für SPF, DKIM, Return-Path, DMARC, Tracking und eingehende E-Mails, die Sie vor der Verifizierung anlegen.

# Domain erstellen

Fügt eine Versanddomain hinzu und gibt die dafür anzulegenden DNS-Einträge zurück.

`POST /domains`

Erfordert einen API-Schlüssel mit dem Scope `full`. Emailit erzeugt für die Domain einen 2048-Bit-DKIM-Schlüssel. Legen Sie die Einträge aus `dns_records` bei Ihrem DNS-Anbieter an und rufen Sie dann [Domain verifizieren](/de/docs/api-reference/domains/verify/) auf. Sobald die Domain verifiziert ist, können Sie von ihr senden. Siehe [Versanddomain hinzufügen](/de/docs/domains/add-a-domain/) und [DNS-Einträge für Versanddomains](/de/docs/domains/dns-records/).

Die Anzahl der Domains hängt von Ihrem Tarif ab: 3 bei Pay as you go (25 nach Ihrem ersten Kauf von Credits), 100 bei Pro und 1.000 bei Business. Löst das Event `domain.created` aus.

## Body-Parameter

- `name` (string, erforderlich): Die Domain, von der Sie senden, etwa `acme.com` oder `mail.acme.com`, ohne `http://`, `https://` oder `www.`. Wird in Kleinbuchstaben gespeichert. Ihre Absenderadressen in `from` müssen genau diese Domain verwenden.

- `tracking_key` (string): Das Subdomain-Label für den CNAME-Eintrag des Öffnungs- und Klick-Trackings. Standardwert: `go`, das ergibt `go.acme.com`. Buchstaben, Ziffern und Bindestriche.

- `inbound_key` (string): Das Subdomain-Label für den Empfang von E-Mails. Standardwert: `inbound`, das ergibt `inbound.acme.com`. Buchstaben, Ziffern und Bindestriche.

- `dmarc_reports` (boolean): DMARC-Berichte für die Domain sammeln. Emailit erstellt eine Berichtsadresse und fügt sie dem vorgeschlagenen DMARC-Eintrag hinzu. Verfügbar in den Tarifen Pro, Business und Custom. Siehe [DMARC](/de/docs/dmarc/).

- `track_loads` (boolean): Muss beim Erstellen einer Domain `false` sein. Aktivieren Sie das Tracking mit [Domain aktualisieren](/de/docs/api-reference/domains/update/), sobald der Tracking-CNAME verifiziert ist.

- `track_clicks` (boolean): Wie `track_loads`, für Klick-Tracking.

Die älteren Flags `outgoing`, `incoming` und `use_for_any` werden aus Kompatibilitätsgründen akzeptiert und haben keine Wirkung.

## Rückgabe

Gibt `201` mit dem [Domain-Objekt](/de/docs/api-reference/domains/get/) einschließlich `dns_records` zurück. Eine neue Domain hat den Status `pending`, bei Pay as you go bis zur ersten DNS-Prüfung `pending_review`.

**Anfrage** `POST /domains`

**Node.js**

```javascript
import { Emailit } from '@emailit/node';
const emailit = new Emailit('your_api_key');

const domain = await emailit.domains.create({ name: 'acme.com' });
```

**Python**

```python
from emailit import EmailitClient
client = EmailitClient("your_api_key")

domain = client.domains.create({"name": "acme.com"})
```

**PHP**

```php
$emailit = Emailit::client('your_api_key');

$domain = $emailit->domains()->create(['name' => 'acme.com']);
```

**Ruby**

```ruby
require "emailit"
client = Emailit::EmailitClient.new("your_api_key")

domain = client.domains.create(name: "acme.com")
```

**Go**

```go
import "github.com/emailit/emailit-go/v2"

client := emailit.NewClient("your_api_key")

domain, err := client.Domains.Create(&emailit.CreateDomainRequest{Name: "acme.com"})
```

**Rust**

```rust
use emailit::Emailit;

let emailit = Emailit::new("your_api_key");

let domain = emailit.domains.create(emailit::types::CreateDomainParams::new("acme.com")).await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;

EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject domain = emailit.domains().create(DomainCreateParams.builder().setName("acme.com").build());
```

**.NET**

```csharp
using Emailit;

var emailit = new EmailitClient("your_api_key");

var domain = emailit.Domains.Create(new DomainCreateOptions { Name = "acme.com" });
```

**Laravel**

```php
use Emailit\Laravel\Facades\Emailit;

$domain = Emailit::domains()->create(['name' => 'acme.com']);
```

**cURL**

```bash
curl https://api.emailit.com/v2/domains \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "acme.com"}'
```

**cURL**

```bash
curl https://api.emailit.com/v2/domains \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "acme.com",
    "tracking_key": "links",
    "inbound_key": "reply",
    "dmarc_reports": true
  }'
```

**201**

```json
{
  "object": "domain",
  "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
  "name": "acme.com",
  "verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
  "verification_method": "dns",
  "verified_at": null,
  "manually_verified_at": null,
  "manual_review_required": false,
  "verification_status": "pending",
  "dkim_identifier_string": "emailit",
  "dns_checked_at": null,
  "spf_status": "pending",
  "spf_error": null,
  "dkim_status": "pending",
  "dkim_error": null,
  "mx_status": "pending",
  "mx_error": null,
  "return_path_status": "pending",
  "return_path_error": null,
  "dmarc_status": "pending",
  "dmarc_error": null,
  "tracking_status": "pending",
  "tracking_error": null,
  "tracking_key": null,
  "inbound_status": "pending",
  "inbound_error": null,
  "inbound_key": null,
  "track_loads": 0,
  "track_clicks": 0,
  "dmarc_reports": false,
  "dmarc_address": null,
  "created_at": "2026-10-01T09:12:03.551208Z",
  "updated_at": "2026-10-01T09:12:03.551208Z",
  "dns_records": [
    {
      "required": true,
      "type": "MX",
      "name": "emailit.acme.com",
      "value": "feedback-smtp.ffdc-1.emailit.com",
      "priority": 10,
      "ttl": "auto",
      "status": "pending",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit.acme.com",
      "value": "v=spf1 include:_spf.emailit.com ~all",
      "priority": null,
      "ttl": "auto",
      "status": "pending",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit._domainkey.acme.com",
      "value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
      "priority": null,
      "ttl": "auto",
      "status": "pending",
      "error": null
    },
    {
      "required": false,
      "type": "TXT",
      "name": "_dmarc.acme.com",
      "value": "v=DMARC1; p=none;",
      "priority": null,
      "ttl": "auto",
      "status": "pending",
      "error": null
    },
    {
      "required": false,
      "type": "CNAME",
      "name": "go.acme.com",
      "value": "go.emailitmail.com",
      "priority": null,
      "ttl": "auto",
      "status": "pending",
      "error": null
    },
    {
      "required": false,
      "type": "MX",
      "name": "inbound.acme.com",
      "value": "inbound.emailitmail.com",
      "priority": 10,
      "ttl": "auto",
      "status": "pending",
      "error": null
    }
  ]
}
```

**400**

```json
{
  "error": "The domain must be in apex format (e.g., domain.com) without http://, https://, or www."
}
```

**403**

```json
{
  "error": "plan_required",
  "required_plan": "pro"
}
```

**409**

```json
{
  "error": "Domain with this name already exists",
  "existing": {
    "object": "domain",
    "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
    "name": "acme.com"
  }
}
```

**422 Limit**

```json
{
  "error": "Pay as you go includes 3 domain(s)."
}
```

**422 Tracking**

```json
{
  "error": "Tracking requires a verified custom CNAME. New messages are not rewritten to a shared tracking URL."
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/domains/create/

## Domain abrufen — GET /domains/{id}

> Rufen Sie eine Versanddomain per ID oder Name ab, mit ihrem Verifizierungsstatus, dem Status jedes DNS-Eintrags und den anzulegenden Einträgen.

# Domain abrufen

Ruft eine Versanddomain mit ihrem Verifizierungsstatus und ihren DNS-Einträgen ab.

`GET /domains/{id}`

Erfordert einen API-Schlüssel mit dem Scope `full`. Die Status der Einträge geben die letzte DNS-Prüfung wieder, die beim Aufruf von [Domain verifizieren](/de/docs/api-reference/domains/verify/) und einmal täglich automatisch läuft.

## Pfadparameter

- `id` (string, erforderlich): Die ID der Domain (`dom_…`, bei älteren Domains `sd_…` und `sed_…`) oder der Domainname, etwa `acme.com`.

## Rückgabe

Gibt das Domain-Objekt zurück.

- `object` (string): Immer `domain`.

- `id` (string): Die ID der Domain.

- `name` (string): Der Domainname.

- `verification_status` (string): `verified`, wenn von der Domain gesendet werden kann. `pending`, solange SPF, DKIM oder der Return-Path noch nicht korrekt sind. `pending_review` bei Pay as you go, wenn Emailit die Domain manuell prüfen muss, bevor sie verifiziert werden kann, zum Beispiel weil sie vor weniger als 30 Tagen registriert wurde.

- `verified_at` (string | null): Zeitpunkt der letzten erfolgreichen DNS-Prüfung oder `null`, wenn die Domain nicht verifiziert ist. Eine fehlgeschlagene Prüfung setzt den Wert zurück.

- `manual_review_required` (boolean): Ob die Domain auf die manuelle Prüfung durch Emailit wartet.

- `manually_verified_at` (string | null): Zeitpunkt, zu dem Emailit die Domain manuell genehmigt hat, oder `null`.

- `dns_checked_at` (string | null): Zeitpunkt der letzten Prüfung der DNS-Einträge.

- `spf_status, dkim_status, return_path_status` (string): Status der drei erforderlichen Einträge: `pending` (noch nicht geprüft), `ok`, `missing` oder `invalid`. Alle drei müssen `ok` sein, damit die Domain verifiziert ist.

- `mx_status` (string): Wie `return_path_status`.

- `dmarc_status` (string): Status des DMARC-Eintrags: `pending`, `ok`, `missing`, `invalid` oder `error`. Für die Verifizierung optional.

- `tracking_status` (string): Status des Tracking-CNAME. Muss `ok` sein, bevor Sie das Tracking aktivieren können.

- `inbound_status` (string): Status des Inbound-MX-Eintrags. Erforderlich, um auf der Domain [E-Mails zu empfangen](/de/docs/inbound/).

- `spf_error, dkim_error, mx_error, return_path_error, dmarc_error, tracking_error, inbound_error` (string | null): Was nach einer fehlgeschlagenen Prüfung am jeweiligen Eintrag falsch ist, oder `null`.

- `tracking_key` (string | null): Das Label der Tracking-Subdomain oder `null` für den Standardwert `go`.

- `inbound_key` (string | null): Das Label der Inbound-Subdomain oder `null` für den Standardwert `inbound`.

- `track_loads` (integer): `1`, wenn Öffnungs-Tracking für E-Mails von dieser Domain standardmäßig aktiviert ist, sonst `0`.

- `track_clicks` (integer): `1`, wenn Klick-Tracking standardmäßig aktiviert ist, sonst `0`.

- `dmarc_reports` (boolean): Ob Emailit DMARC-Berichte für die Domain sammelt.

- `dmarc_address` (string | null): Die Adresse, die DMARC-Berichte empfängt, oder `null`, wenn `dmarc_reports` deaktiviert ist.

- `verification_token, verification_method, dkim_identifier_string` (string): Interne Verifizierungsdetails. `verification_method` ist `dns` und `dkim_identifier_string` ist der DKIM-Selektor `emailit`.

- `created_at, updated_at` (string): Zeitpunkt, zu dem die Domain hinzugefügt bzw. zuletzt geändert wurde.

- `dns_records` (object[]): Die anzulegenden Einträge. Jeder hat `type` (`MX`, `TXT` oder `CNAME`), `name`, `value`, `priority` (bei MX-Einträgen), `ttl` (`auto`), `required` (ob er für die Verifizierung nötig ist) sowie seinen aktuellen `status` und `error`.

| Eintrag | Typ | Name | Wert | Erforderlich |
| --- | --- | --- | --- | --- |
| Return-Path | MX | `emailit.acme.com` | `feedback-smtp.ffdc-1.emailit.com`, Priorität 10 | Ja |
| SPF | TXT | `emailit.acme.com` | `v=spf1 include:_spf.emailit.com ~all` | Ja |
| DKIM | TXT | `emailit._domainkey.acme.com` | `v=DKIM1; t=s; h=sha256; p=…` | Ja |
| DMARC | TXT | `_dmarc.acme.com` | `v=DMARC1; p=none;`, dazu Berichtsadressen, wenn `dmarc_reports` aktiviert ist | Nein |
| Tracking | CNAME | `go.acme.com` | `go.emailitmail.com` | Nein |
| Inbound | MX | `inbound.acme.com` | `inbound.emailitmail.com`, Priorität 10 | Nein |

**Anfrage** `GET /domains/{id}`

**Node.js**

```javascript
import { Emailit } from '@emailit/node';
const emailit = new Emailit('your_api_key');

const domain = await emailit.domains.get('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**Python**

```python
from emailit import EmailitClient
client = EmailitClient("your_api_key")

domain = client.domains.get("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**PHP**

```php
$emailit = Emailit::client('your_api_key');

$domain = $emailit->domains()->get('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**Ruby**

```ruby
require "emailit"
client = Emailit::EmailitClient.new("your_api_key")

domain = client.domains.get("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**Go**

```go
import "github.com/emailit/emailit-go/v2"
client := emailit.NewClient("your_api_key")

domain, err := client.Domains.Get("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**Rust**

```rust
use emailit::Emailit;

let emailit = Emailit::new("your_api_key");

let domain = emailit.domains.get("dom_4K468YrjOkR1wwdhqiO0G9XEUey").await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;

EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject domain = emailit.domains().get("dom_4K468YrjOkR1wwdhqiO0G9XEUey");
```

**.NET**

```csharp
using Emailit;

var emailit = new EmailitClient("your_api_key");

var domain = emailit.Domains.Get("dom_4K468YrjOkR1wwdhqiO0G9XEUey");
```

**Laravel**

```php
use Emailit\Laravel\Facades\Emailit;

$domain = Emailit::domains()->get('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**cURL**

```bash
curl https://api.emailit.com/v2/domains/dom_4K468YrjOkR1wwdhqiO0G9XEUey \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**200**

```json
{
  "object": "domain",
  "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
  "name": "acme.com",
  "verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
  "verification_method": "dns",
  "verified_at": "2026-10-01T03:00:12.000000Z",
  "manually_verified_at": null,
  "manual_review_required": false,
  "verification_status": "verified",
  "dkim_identifier_string": "emailit",
  "dns_checked_at": "2026-10-01T03:00:12.000000Z",
  "spf_status": "ok",
  "spf_error": null,
  "dkim_status": "ok",
  "dkim_error": null,
  "mx_status": "ok",
  "mx_error": null,
  "return_path_status": "ok",
  "return_path_error": null,
  "dmarc_status": "ok",
  "dmarc_error": null,
  "tracking_status": "ok",
  "tracking_error": null,
  "tracking_key": null,
  "inbound_status": "invalid",
  "inbound_error": "queryMx ENOTFOUND inbound.acme.com",
  "inbound_key": null,
  "track_loads": 1,
  "track_clicks": 1,
  "dmarc_reports": true,
  "dmarc_address": "4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com",
  "created_at": "2026-09-14T08:02:51.000000Z",
  "updated_at": "2026-10-01T03:00:12.000000Z",
  "dns_records": [
    {
      "required": true,
      "type": "MX",
      "name": "emailit.acme.com",
      "value": "feedback-smtp.ffdc-1.emailit.com",
      "priority": 10,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit.acme.com",
      "value": "v=spf1 include:_spf.emailit.com ~all",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit._domainkey.acme.com",
      "value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": false,
      "type": "TXT",
      "name": "_dmarc.acme.com",
      "value": "v=DMARC1; p=none; rua=mailto:4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com; ruf=mailto:4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com;",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": false,
      "type": "CNAME",
      "name": "go.acme.com",
      "value": "go.emailitmail.com",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": false,
      "type": "MX",
      "name": "inbound.acme.com",
      "value": "inbound.emailitmail.com",
      "priority": 10,
      "ttl": "auto",
      "status": "invalid",
      "error": "queryMx ENOTFOUND inbound.acme.com"
    }
  ]
}
```

**404**

```json
{
  "error": "Domain not found"
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/domains/get/

## Domain verifizieren — POST /domains/{id}/verify

> Prüfen Sie sofort die DNS-Einträge einer Versanddomain und aktualisieren Sie ihren Verifizierungsstatus. SPF, DKIM und Return-Path müssen bestehen, bevor Sie senden können.

# Domain verifizieren

Fragt die DNS-Einträge der Domain sofort ab, speichert das Ergebnis und gibt die Domain mit ihren neuen Status zurück.

`POST /domains/{id}/verify`

Erfordert einen API-Schlüssel mit dem Scope `full`. Rufen Sie den Endpunkt auf, nachdem Sie die Einträge aus [Domain erstellen](/de/docs/api-reference/domains/create/) angelegt haben, und erneut, wann immer Sie sie ändern. DNS-Änderungen brauchen etwas Zeit, bis sie sich verbreiten. Zeigt ein Eintrag `missing`, warten Sie also einige Minuten und versuchen Sie es erneut.

Die Domain wird `verified`, wenn alle drei erforderlichen Einträge `ok` sind:

- **SPF:** ein TXT-Eintrag unter `emailit.<domain>`, der `_spf.emailit.com` einbindet.
- **DKIM:** ein TXT-Eintrag unter `emailit._domainkey.<domain>` mit dem öffentlichen Schlüssel der Domain.
- **Return-Path:** ein einzelner MX-Eintrag unter `emailit.<domain>`, der auf `feedback-smtp.ffdc-1.emailit.com` zeigt.

Bei Pay as you go erhält eine Domain, die vor weniger als 30 Tagen registriert wurde, stattdessen `pending_review`, und Emailit prüft sie manuell. Die Einträge für DMARC, Tracking und eingehende E-Mails werden ebenfalls geprüft, beeinflussen die Verifizierung aber nicht.

Emailit prüft außerdem jede Domain einmal täglich. Besteht ein erforderlicher Eintrag die Prüfung nicht mehr, ist die Domain nicht mehr verifiziert, Sendungen von ihr schlagen fehl und der Workspace-Inhaber erhält eine E-Mail. Siehe [Domain-Verifizierung](/de/docs/domains/verification/).

## Pfadparameter

- `id` (string, erforderlich): Die ID der Domain oder der Domainname.

## Rückgabe

Gibt das [Domain-Objekt](/de/docs/api-reference/domains/get/) mit dem Ergebnis dieser Prüfung in `verification_status`, in jedem Feld `*_status` und `*_error` sowie in `dns_records` zurück. Diese Antwort enthält weder `dmarc_reports` noch `dmarc_address`; diese lesen Sie mit [Domain abrufen](/de/docs/api-reference/domains/get/) aus.

**Anfrage** `POST /domains/{id}/verify`

**Node.js**

```javascript
import { Emailit } from '@emailit/node';
const emailit = new Emailit('your_api_key');

const domain = await emailit.domains.verify('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**Python**

```python
from emailit import EmailitClient
client = EmailitClient("your_api_key")

domain = client.domains.verify("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**PHP**

```php
$emailit = Emailit::client('your_api_key');

$domain = $emailit->domains()->verify('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**Ruby**

```ruby
require "emailit"
client = Emailit::EmailitClient.new("your_api_key")

domain = client.domains.verify("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**Go**

```go
import "github.com/emailit/emailit-go/v2"
client := emailit.NewClient("your_api_key")

domain, err := client.Domains.Verify("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**Rust**

```rust
use emailit::Emailit;

let emailit = Emailit::new("your_api_key");

let domain = emailit.domains.verify("dom_4K468YrjOkR1wwdhqiO0G9XEUey").await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;

EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject domain = emailit.domains().verify("dom_4K468YrjOkR1wwdhqiO0G9XEUey");
```

**.NET**

```csharp
using Emailit;

var emailit = new EmailitClient("your_api_key");

var domain = emailit.Domains.Verify("dom_4K468YrjOkR1wwdhqiO0G9XEUey");
```

**Laravel**

```php
use Emailit\Laravel\Facades\Emailit;

$domain = Emailit::domains()->verify('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/domains/dom_4K468YrjOkR1wwdhqiO0G9XEUey/verify \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**200 Ausstehend**

```json
{
  "object": "domain",
  "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
  "name": "acme.com",
  "verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
  "verification_method": "dns",
  "verified_at": null,
  "manually_verified_at": null,
  "manual_review_required": false,
  "dkim_identifier_string": "emailit",
  "dns_checked_at": "2026-10-01T09:20:41.000000Z",
  "spf_status": "ok",
  "spf_error": null,
  "dkim_status": "missing",
  "dkim_error": "queryTxt ENOTFOUND emailit._domainkey.acme.com",
  "mx_status": "ok",
  "mx_error": null,
  "return_path_status": "ok",
  "return_path_error": null,
  "dmarc_status": "error",
  "dmarc_error": "queryTxt ENOTFOUND _dmarc.acme.com",
  "tracking_status": "invalid",
  "tracking_error": "queryCname ENOTFOUND go.acme.com",
  "tracking_key": null,
  "inbound_status": "invalid",
  "inbound_error": "queryMx ENOTFOUND inbound.acme.com",
  "inbound_key": null,
  "track_loads": 0,
  "track_clicks": 0,
  "created_at": "2026-10-01T09:12:03.000000Z",
  "updated_at": "2026-10-01T09:20:41.000000Z",
  "dns_records": [
    {
      "required": true,
      "type": "MX",
      "name": "emailit.acme.com",
      "value": "feedback-smtp.ffdc-1.emailit.com",
      "priority": 10,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit.acme.com",
      "value": "v=spf1 include:_spf.emailit.com ~all",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit._domainkey.acme.com",
      "value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
      "priority": null,
      "ttl": "auto",
      "status": "missing",
      "error": "queryTxt ENOTFOUND emailit._domainkey.acme.com"
    },
    {
      "required": false,
      "type": "TXT",
      "name": "_dmarc.acme.com",
      "value": "v=DMARC1; p=none;",
      "priority": null,
      "ttl": "auto",
      "status": "error",
      "error": "queryTxt ENOTFOUND _dmarc.acme.com"
    },
    {
      "required": false,
      "type": "CNAME",
      "name": "go.acme.com",
      "value": "go.emailitmail.com",
      "priority": null,
      "ttl": "auto",
      "status": "invalid",
      "error": "queryCname ENOTFOUND go.acme.com"
    },
    {
      "required": false,
      "type": "MX",
      "name": "inbound.acme.com",
      "value": "inbound.emailitmail.com",
      "priority": 10,
      "ttl": "auto",
      "status": "invalid",
      "error": "queryMx ENOTFOUND inbound.acme.com"
    }
  ],
  "verification_status": "pending"
}
```

**404**

```json
{
  "error": "Domain not found"
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/domains/verify/

## Domain aktualisieren — POST /domains/{id}

> Aktivieren oder deaktivieren Sie Öffnungs- und Klick-Tracking, ändern Sie Tracking- und Inbound-Subdomain oder aktivieren Sie DMARC-Berichte für eine Versanddomain.

# Domain aktualisieren

Aktualisiert die Einstellungen einer Versanddomain. Nur die gesendeten Felder ändern sich.

`POST /domains/{id}`

Erfordert einen API-Schlüssel mit dem Scope `full`. Löst das Event `domain.updated` aus.

## Pfadparameter

- `id` (string, erforderlich): Die ID der Domain oder der Domainname.

## Body-Parameter

- `track_loads` (boolean): Aktiviert oder deaktiviert das Öffnungs-Tracking standardmäßig für E-Mails von dieser Domain. Zum Aktivieren ist ein verifizierter Tracking-CNAME erforderlich (`tracking_status` ist `ok`). Siehe [Eigene Tracking-Domain einrichten](/de/docs/tracking/custom-tracking-domain/).

- `track_clicks` (boolean): Aktiviert oder deaktiviert das Klick-Tracking standardmäßig. Gleiche Voraussetzung wie bei `track_loads`.

- `tracking_key` (string | null): Ein neues Subdomain-Label für den Tracking-CNAME oder `null` für den Standardwert `go`. Eine Änderung setzt `tracking_status` auf `pending` zurück; legen Sie also den neuen CNAME-Eintrag an und [verifizieren](/de/docs/api-reference/domains/verify/) Sie erneut.

- `inbound_key` (string | null): Ein neues Subdomain-Label für den Empfang von E-Mails oder `null` für den Standardwert `inbound`. Eine Änderung setzt `inbound_status` auf `pending` zurück.

- `dmarc_reports` (boolean): DMARC-Berichte für die Domain sammeln. Beim Aktivieren kommt eine Berichtsadresse in den vorgeschlagenen DMARC-Eintrag; aktualisieren Sie danach also Ihren `_dmarc`-Eintrag. Nur in den Tarifen Pro, Business und Custom. Beim Deaktivieren bleibt die Adresse für später erhalten.

- `name` (string): Ein neuer Domainname. Die DNS-Einträge wechseln zum neuen Namen; legen Sie sie also dort an und verifizieren Sie erneut, bevor Sie von ihm senden.

Die älteren Flags `outgoing`, `incoming` und `use_for_any` werden akzeptiert und haben keine Wirkung. Unbekannte Felder werden ignoriert. Eine Anfrage ohne eines dieser Felder gibt `400` zurück.

## Rückgabe

Gibt das aktualisierte [Domain-Objekt](/de/docs/api-reference/domains/get/) einschließlich `dns_records` zurück.

**Anfrage** `POST /domains/{id}`

**Node.js**

```javascript
import { Emailit } from '@emailit/node';
const emailit = new Emailit('your_api_key');

const domain = await emailit.domains.update('dom_4K468YrjOkR1wwdhqiO0G9XEUey', { track_clicks: false });
```

**Python**

```python
from emailit import EmailitClient
client = EmailitClient("your_api_key")

domain = client.domains.update("dom_4K468YrjOkR1wwdhqiO0G9XEUey", {"track_clicks": False})
```

**PHP**

```php
$emailit = Emailit::client('your_api_key');

$domain = $emailit->domains()->update('dom_4K468YrjOkR1wwdhqiO0G9XEUey', ['track_clicks' => false]);
```

**Ruby**

```ruby
require "emailit"
client = Emailit::EmailitClient.new("your_api_key")

domain = client.domains.update("dom_4K468YrjOkR1wwdhqiO0G9XEUey", track_clicks: false)
```

**Go**

```go
import "github.com/emailit/emailit-go/v2"
client := emailit.NewClient("your_api_key")

domain, err := client.Domains.Update("dom_4K468YrjOkR1wwdhqiO0G9XEUey", &emailit.UpdateDomainRequest{TrackClicks: false})
```

**Rust**

```rust
use emailit::Emailit;

let emailit = Emailit::new("your_api_key");

let domain = emailit.domains.update("dom_4K468YrjOkR1wwdhqiO0G9XEUey", emailit::types::UpdateDomainParams { track_clicks: Some(false), ..Default::default() }).await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;

EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject domain = emailit.domains().update("dom_4K468YrjOkR1wwdhqiO0G9XEUey", DomainUpdateParams.builder().setTrackClicks(false).build());
```

**.NET**

```csharp
using Emailit;

var emailit = new EmailitClient("your_api_key");

var domain = emailit.Domains.Update("dom_4K468YrjOkR1wwdhqiO0G9XEUey", new DomainUpdateOptions { TrackClicks = false });
```

**Laravel**

```php
use Emailit\Laravel\Facades\Emailit;

$domain = Emailit::domains()->update('dom_4K468YrjOkR1wwdhqiO0G9XEUey', ['track_clicks' => false]);
```

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/domains/dom_4K468YrjOkR1wwdhqiO0G9XEUey \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"track_clicks": false}'
```

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/domains/acme.com \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"track_loads": true, "track_clicks": true}'
```

**200**

```json
{
  "object": "domain",
  "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
  "name": "acme.com",
  "verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
  "verification_method": "dns",
  "verified_at": "2026-10-01T03:00:12.000000Z",
  "manually_verified_at": null,
  "manual_review_required": false,
  "verification_status": "verified",
  "dkim_identifier_string": "emailit",
  "dns_checked_at": "2026-10-01T03:00:12.000000Z",
  "spf_status": "ok",
  "spf_error": null,
  "dkim_status": "ok",
  "dkim_error": null,
  "mx_status": "ok",
  "mx_error": null,
  "return_path_status": "ok",
  "return_path_error": null,
  "dmarc_status": "ok",
  "dmarc_error": null,
  "tracking_status": "ok",
  "tracking_error": null,
  "tracking_key": null,
  "inbound_status": "invalid",
  "inbound_error": "queryMx ENOTFOUND inbound.acme.com",
  "inbound_key": null,
  "track_loads": 1,
  "track_clicks": 0,
  "dmarc_reports": false,
  "dmarc_address": null,
  "created_at": "2026-09-14T08:02:51.000000Z",
  "updated_at": "2026-10-01T10:44:20.000000Z",
  "dns_records": [
    {
      "required": true,
      "type": "MX",
      "name": "emailit.acme.com",
      "value": "feedback-smtp.ffdc-1.emailit.com",
      "priority": 10,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit.acme.com",
      "value": "v=spf1 include:_spf.emailit.com ~all",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": true,
      "type": "TXT",
      "name": "emailit._domainkey.acme.com",
      "value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": false,
      "type": "TXT",
      "name": "_dmarc.acme.com",
      "value": "v=DMARC1; p=none;",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": false,
      "type": "CNAME",
      "name": "go.acme.com",
      "value": "go.emailitmail.com",
      "priority": null,
      "ttl": "auto",
      "status": "ok",
      "error": null
    },
    {
      "required": false,
      "type": "MX",
      "name": "inbound.acme.com",
      "value": "inbound.emailitmail.com",
      "priority": 10,
      "ttl": "auto",
      "status": "invalid",
      "error": "queryMx ENOTFOUND inbound.acme.com"
    }
  ]
}
```

**400**

```json
{
  "error": "No valid fields provided for update. Provide at least one of: name, outgoing, incoming, use_for_any, track_loads, track_clicks, tracking_key, inbound_key, dmarc_reports"
}
```

**403**

```json
{
  "error": "plan_required",
  "required_plan": "pro"
}
```

**404**

```json
{
  "error": "Domain not found"
}
```

**409**

```json
{
  "error": "Another domain with this name already exists"
}
```

**422**

```json
{
  "error": "Tracking requires a verified custom CNAME. New messages are not rewritten to a shared tracking URL."
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/domains/update/

## Domains auflisten — GET /domains

> Listen Sie die Versanddomains eines Workspace mit ihrem Verifizierungs- und DNS-Status auf, dazu die Anzahl der Domains, die Ihr Tarif erlaubt.

# Domains auflisten

Gibt eine Seite mit Versanddomains zurück, die neuesten zuerst, zusammen mit dem Domain-Kontingent Ihres Tarifs.

`GET /domains`

Erfordert einen API-Schlüssel mit dem Scope `full`. Die Listeneinträge enthalten keine `dns_records`; dafür nutzen Sie [Domain abrufen](/de/docs/api-reference/domains/get/).

## Query-Parameter

- `page` (integer): Die abzurufende Seite.

- `limit` (integer): Domains pro Seite, von 1 bis 100.

- `search` (string): Abgleich mit dem Domainnamen, ohne Beachtung der Groß-/Kleinschreibung.

- `match` (string): `all` oder `or`. Wie die Filter unten kombiniert werden.

- `order` (string): Ein Filterschlüssel, nach dem sortiert wird.

- `direction` (string): `asc` oder `desc`.

## Filter

Fügen Sie Filter als `key.condition=value` hinzu, zum Beispiel `dkim_status.exact=ok`. Siehe [Filtern und Sortieren](/de/docs/api-reference/filtering/).

| Schlüssel | Typ | Werte und Hinweise |
| --- | --- | --- |
| `name` | string | |
| `created_at` | date | |
| `spf_status` | enum | `ok`, `missing`, `invalid` |
| `dkim_status` | enum | `ok`, `missing`, `invalid` |
| `return_path_status` | enum | `ok`, `missing`, `invalid` |

Jeder Schlüssel ist auch ein Sortierschlüssel.

## Rückgabe

- `data` (object[]): Die [Domain-Objekte](/de/docs/api-reference/domains/get/) auf dieser Seite, ohne `dns_records`.

- `next_page_url` (string | null): Pfad der nächsten Seite oder `null`. Siehe [Paginierung](/de/docs/api-reference/pagination/).

- `previous_page_url` (string | null): Pfad der vorherigen Seite oder `null`.

- `domain_limit` (integer | null): Wie viele Versanddomains Ihr Tarif erlaubt, oder `null` ohne Limit.

- `domain_count` (integer): Wie viele Versanddomains der Workspace hat, über alle Seiten hinweg.

- `plan_name` (string | null): Der Name Ihres Tarifs, etwa `Pay as you go` oder `Pro`.

**Anfrage** `GET /domains`

**Node.js**

```javascript
import { Emailit } from '@emailit/node';
const emailit = new Emailit('your_api_key');

const domains = await emailit.domains.list();
```

**Python**

```python
from emailit import EmailitClient
client = EmailitClient("your_api_key")

domains = client.domains.list()
```

**PHP**

```php
$emailit = Emailit::client('your_api_key');

$domains = $emailit->domains()->list();
```

**Ruby**

```ruby
require "emailit"
client = Emailit::EmailitClient.new("your_api_key")

domains = client.domains.list
```

**Go**

```go
import "github.com/emailit/emailit-go/v2"
client := emailit.NewClient("your_api_key")

domains, err := client.Domains.List(nil)
```

**Rust**

```rust
use emailit::Emailit;

let emailit = Emailit::new("your_api_key");

let domains = emailit.domains.list(None).await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;

EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject domains = emailit.domains().list();
```

**.NET**

```csharp
using Emailit;

var emailit = new EmailitClient("your_api_key");

var domains = emailit.Domains.List();
```

**Laravel**

```php
use Emailit\Laravel\Facades\Emailit;

$domains = Emailit::domains()->list();
```

**cURL**

```bash
curl https://api.emailit.com/v2/domains \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**cURL**

```bash
curl -G https://api.emailit.com/v2/domains \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d dkim_status.not_exact=ok \
  -d spf_status.not_exact=ok \
  -d match=or
```

**200**

```json
{
  "data": [
    {
      "object": "domain",
      "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
      "name": "acme.com",
      "verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
      "verification_method": "dns",
      "verified_at": "2026-10-01T03:00:12.000000Z",
      "manually_verified_at": null,
      "manual_review_required": false,
      "verification_status": "verified",
      "dkim_identifier_string": "emailit",
      "dns_checked_at": "2026-10-01T03:00:12.000000Z",
      "spf_status": "ok",
      "spf_error": null,
      "dkim_status": "ok",
      "dkim_error": null,
      "mx_status": "ok",
      "mx_error": null,
      "return_path_status": "ok",
      "return_path_error": null,
      "dmarc_status": "ok",
      "dmarc_error": null,
      "tracking_status": "ok",
      "tracking_error": null,
      "tracking_key": null,
      "inbound_status": "invalid",
      "inbound_error": "queryMx ENOTFOUND inbound.acme.com",
      "inbound_key": null,
      "track_loads": 1,
      "track_clicks": 1,
      "dmarc_reports": true,
      "dmarc_address": "4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com",
      "created_at": "2026-09-14T08:02:51.000000Z",
      "updated_at": "2026-10-01T03:00:12.000000Z"
    }
  ],
  "next_page_url": null,
  "previous_page_url": null,
  "domain_limit": 100,
  "domain_count": 1,
  "plan_name": "Pro"
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/domains/list/

## Domain löschen — DELETE /domains/{id}

> Löschen Sie eine Versanddomain endgültig aus dem Workspace. Sie können danach nicht mehr von ihr senden, und das Löschen lässt sich nicht rückgängig machen.

# Domain löschen

Löscht eine Versanddomain endgültig.

`DELETE /domains/{id}`

Erfordert einen API-Schlüssel mit dem Scope `full`. Nach dem Löschen schlagen Sendungen von der Domain mit `Domain not verified` fehl, und auf die Domain beschränkte API-Schlüssel können nicht mehr senden. Der DKIM-Schlüssel der Domain, ihr Verlauf der Versandgesundheit und eine gespeicherte Cloudflare-Verbindung werden ebenfalls entfernt. Bereits gesendete E-Mails bleiben in Ihren Logs. Löst das Event `domain.deleted` aus.

Um wieder von der Domain zu senden, [erstellen Sie sie](/de/docs/api-reference/domains/create/) erneut. Sie erhält einen neuen DKIM-Schlüssel, daher müssen Sie den DKIM-Eintrag aktualisieren.

## Pfadparameter

- `id` (string, erforderlich): Die ID der Domain oder der Domainname.

## Rückgabe

- `object` (string): Immer `domain`.

- `id` (string): Die ID der gelöschten Domain.

- `name` (string): Der Domainname.

- `deleted` (boolean): Immer `true`.

**Anfrage** `DELETE /domains/{id}`

**Node.js**

```javascript
import { Emailit } from '@emailit/node';
const emailit = new Emailit('your_api_key');

await emailit.domains.delete('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**Python**

```python
from emailit import EmailitClient
client = EmailitClient("your_api_key")

client.domains.delete("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**PHP**

```php
$emailit = Emailit::client('your_api_key');

$emailit->domains()->delete('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**Ruby**

```ruby
require "emailit"
client = Emailit::EmailitClient.new("your_api_key")

client.domains.delete("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**Go**

```go
import "github.com/emailit/emailit-go/v2"
client := emailit.NewClient("your_api_key")

err := client.Domains.Delete("dom_4K468YrjOkR1wwdhqiO0G9XEUey")
```

**Rust**

```rust
use emailit::Emailit;

let emailit = Emailit::new("your_api_key");

emailit.domains.delete("dom_4K468YrjOkR1wwdhqiO0G9XEUey").await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;

EmailitClient emailit = new EmailitClient("your_api_key");

emailit.domains().delete("dom_4K468YrjOkR1wwdhqiO0G9XEUey");
```

**.NET**

```csharp
using Emailit;

var emailit = new EmailitClient("your_api_key");

emailit.Domains.Delete("dom_4K468YrjOkR1wwdhqiO0G9XEUey");
```

**Laravel**

```php
use Emailit\Laravel\Facades\Emailit;

Emailit::domains()->delete('dom_4K468YrjOkR1wwdhqiO0G9XEUey');
```

**cURL**

```bash
curl -X DELETE https://api.emailit.com/v2/domains/dom_4K468YrjOkR1wwdhqiO0G9XEUey \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**200**

```json
{
  "object": "domain",
  "id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
  "name": "acme.com",
  "deleted": true
}
```

**404**

```json
{
  "error": "Domain not found"
}
```

---
Quelle: https://emailit.com/de/docs/api-reference/domains/delete/
