# Domény API

> Přidávejte odesílací domény, čtěte jejich DNS záznamy a stav ověření a ověřujte je.

Základní URL: `https://api.emailit.com/v2`. Autentizujte se hlavičkou `Authorization: Bearer <API key>`.

## Vytvoření domény — POST /domains

> Přidejte do workspace odesílací doménu a získejte DNS záznamy pro SPF, DKIM, return path, DMARC, měření a příchozí poštu, které před ověřením přidáte do DNS.

# Vytvoření domény

Přidá odesílací doménu a vrátí DNS záznamy, které pro ni přidáte do DNS.

`POST /domains`

Vyžaduje API klíč s oprávněním `full`. Emailit pro doménu vygeneruje 2048bitový klíč DKIM. Záznamy z pole `dns_records` přidejte u svého poskytovatele DNS a potom zavolejte endpoint [Ověření domény](/cs/docs/api-reference/domains/verify/). Jakmile je doména ověřená, můžete z ní odesílat. Viz [Přidání odesílací domény](/cs/docs/domains/add-a-domain/) a [DNS záznamy odesílacích domén](/cs/docs/domains/dns-records/).

Počet domén závisí na tarifu: 3 v tarifu Pay as you go (25 po prvním nákupu kreditů), 100 v tarifu Pro a 1 000 v tarifu Business. Vyvolá událost `domain.created`.

## Parametry v těle požadavku

- `name` (string, povinné): Doména, ze které budete odesílat, například `acme.com` nebo `mail.acme.com`, bez `http://`, `https://` a `www.`. Ukládá se malými písmeny. Adresy v poli `from` musí používat přesně tuto doménu.

- `tracking_key` (string): Název subdomény pro CNAME záznam pro měření otevření a prokliků. Výchozí hodnota je `go`, což dává `go.acme.com`. Písmena, číslice a pomlčky.

- `inbound_key` (string): Název subdomény pro příjem e-mailů. Výchozí hodnota je `inbound`, což dává `inbound.acme.com`. Písmena, číslice a pomlčky.

- `dmarc_reports` (boolean): Sbírat pro doménu DMARC reporty. Emailit vytvoří adresu pro reporty a přidá ji do navrhovaného záznamu DMARC. Dostupné v tarifech Pro, Business a Custom. Viz [DMARC reporty](/cs/docs/dmarc/).

- `track_loads` (boolean): Při vytváření domény musí být `false`. Měření zapněte endpointem [Úprava domény](/cs/docs/api-reference/domains/update/), jakmile bude CNAME záznam pro měření ověřený.

- `track_clicks` (boolean): Totéž co `track_loads`, pro měření prokliků.

Starší příznaky `outgoing`, `incoming` a `use_for_any` se kvůli kompatibilitě přijímají, ale nemají žádný účinek.

## Odpověď

Vrací `201` s [objektem domény](/cs/docs/api-reference/domains/get/) včetně pole `dns_records`. Nová doména má stav `pending`, v tarifu Pay as you go do první kontroly DNS stav `pending_review`.

**Požadavek** `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 Měření**

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

---
Zdroj: https://emailit.com/cs/docs/api-reference/domains/create/

## Načtení domény — GET /domains/{id}

> Načtěte odesílací doménu podle ID nebo názvu, včetně stavu ověření, stavu jednotlivých DNS záznamů a záznamů, které máte přidat do DNS.

# Načtení domény

Načte odesílací doménu se stavem ověření a DNS záznamy.

`GET /domains/{id}`

Vyžaduje API klíč s oprávněním `full`. Stavy záznamů odpovídají poslední kontrole DNS, která proběhne, když zavoláte endpoint [Ověření domény](/cs/docs/api-reference/domains/verify/), a automaticky jednou denně.

## Parametry v cestě

- `id` (string, povinné): ID domény (`dom_…`, u starších domén `sd_…` a `sed_…`), nebo název domény, například `acme.com`.

## Odpověď

Vrací objekt domény.

- `object` (string): Vždy `domain`.

- `id` (string): ID domény.

- `name` (string): Název domény.

- `verification_status` (string): `verified`, když doména může odesílat. `pending`, dokud SPF, DKIM nebo return path ještě nejsou v pořádku. `pending_review` v tarifu Pay as you go, když doména před ověřením potřebuje ruční kontrolu od Emailitu, například protože byla zaregistrována před méně než 30 dny.

- `verified_at` (string | null): Kdy naposledy prošla kontrola DNS, nebo `null`, pokud doména není ověřená. Neúspěšná kontrola hodnotu vymaže.

- `manual_review_required` (boolean): Jestli doména čeká na ruční kontrolu od Emailitu.

- `manually_verified_at` (string | null): Kdy Emailit doménu ručně schválil, nebo `null`.

- `dns_checked_at` (string | null): Kdy byly DNS záznamy naposledy zkontrolovány.

- `spf_status, dkim_status, return_path_status` (string): Stav tří povinných záznamů: `pending` (zatím nezkontrolovaný), `ok`, `missing` nebo `invalid`. Aby byla doména ověřená, musí mít všechny tři stav `ok`.

- `mx_status` (string): Totéž co `return_path_status`.

- `dmarc_status` (string): Stav záznamu DMARC: `pending`, `ok`, `missing`, `invalid` nebo `error`. Pro ověření není povinný.

- `tracking_status` (string): Stav CNAME záznamu pro měření. Než můžete měření zapnout, musí být `ok`.

- `inbound_status` (string): Stav příchozího MX záznamu. Je potřeba k [příjmu e-mailů](/cs/docs/inbound/) na doméně.

- `spf_error, dkim_error, mx_error, return_path_error, dmarc_error, tracking_error, inbound_error` (string | null): Co je s jednotlivými záznamy po neúspěšné kontrole špatně, nebo `null`.

- `tracking_key` (string | null): Název subdomény pro měření, nebo `null` pro výchozí `go`.

- `inbound_key` (string | null): Název příchozí subdomény, nebo `null` pro výchozí `inbound`.

- `track_loads` (integer): `1`, pokud je měření otevření pro e-maily z této domény ve výchozím stavu zapnuté, jinak `0`.

- `track_clicks` (integer): `1`, pokud je měření prokliků ve výchozím stavu zapnuté, jinak `0`.

- `dmarc_reports` (boolean): Jestli Emailit pro doménu sbírá DMARC reporty.

- `dmarc_address` (string | null): Adresa, na kterou chodí DMARC reporty, nebo `null`, když je `dmarc_reports` vypnuté.

- `verification_token, verification_method, dkim_identifier_string` (string): Interní údaje o ověření. `verification_method` je `dns` a `dkim_identifier_string` je selektor DKIM, `emailit`.

- `created_at, updated_at` (string): Kdy byla doména přidána a kdy naposledy změněna.

- `dns_records` (object[]): Záznamy, které máte přidat do DNS. Každý má `type` (`MX`, `TXT` nebo `CNAME`), `name`, `value`, `priority` (u MX záznamů), `ttl` (`auto`), `required` (jestli je potřeba k ověření) a svůj aktuální `status` a `error`.

| Záznam | Typ | Název | Hodnota | Povinné |
| --- | --- | --- | --- | --- |
| Return path | MX | `emailit.acme.com` | `feedback-smtp.ffdc-1.emailit.com`, priorita 10 | Ano |
| SPF | TXT | `emailit.acme.com` | `v=spf1 include:_spf.emailit.com ~all` | Ano |
| DKIM | TXT | `emailit._domainkey.acme.com` | `v=DKIM1; t=s; h=sha256; p=…` | Ano |
| DMARC | TXT | `_dmarc.acme.com` | `v=DMARC1; p=none;` a adresy pro reporty, když je `dmarc_reports` zapnuté | Ne |
| Měření | CNAME | `go.acme.com` | `go.emailitmail.com` | Ne |
| Příchozí pošta | MX | `inbound.acme.com` | `inbound.emailitmail.com`, priorita 10 | Ne |

**Požadavek** `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"
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/domains/get/

## Ověření domény — POST /domains/{id}/verify

> Okamžitě zkontrolujte DNS záznamy odesílací domény a aktualizujte stav jejího ověření. Než budete moct odesílat, musí projít SPF, DKIM a return path.

# Ověření domény

Okamžitě vyhledá DNS záznamy domény, uloží výsledek a vrátí doménu s novými stavy.

`POST /domains/{id}/verify`

Vyžaduje API klíč s oprávněním `full`. Zavolejte ho po přidání záznamů z endpointu [Vytvoření domény](/cs/docs/api-reference/domains/create/) do DNS a znovu pokaždé, když je změníte. Šíření změn v DNS může chvíli trvat, takže pokud má záznam stav `missing`, počkejte pár minut a zkuste to znovu.

Doména dostane stav `verified`, když mají všechny tři povinné záznamy stav `ok`:

- **SPF:** TXT záznam na `emailit.<domain>`, který obsahuje `_spf.emailit.com`.
- **DKIM:** TXT záznam na `emailit._domainkey.<domain>` s veřejným klíčem domény.
- **Return path:** jediný MX záznam na `emailit.<domain>`, který odkazuje na `feedback-smtp.ffdc-1.emailit.com`.

V tarifu Pay as you go dostane doména zaregistrovaná před méně než 30 dny místo toho stav `pending_review` a Emailit ji zkontroluje ručně. Kontrolují se i záznamy DMARC, pro měření a pro příchozí poštu, ověření ale neovlivňují.

Emailit navíc každou doménu jednou denně kontroluje znovu. Pokud některý povinný záznam přestane kontrolou procházet, doména přestane být ověřená, odesílání z ní selže a vlastník workspace dostane e-mail. Viz [Ověření domény](/cs/docs/domains/verification/).

## Parametry v cestě

- `id` (string, povinné): ID domény, nebo název domény.

## Odpověď

Vrací [objekt domény](/cs/docs/api-reference/domains/get/) s výsledkem této kontroly v poli `verification_status`, ve všech polích `*_status` a `*_error` a v `dns_records`. Tato odpověď neobsahuje `dmarc_reports` a `dmarc_address`; ty načtete endpointem [Načtení domény](/cs/docs/api-reference/domains/get/).

**Požadavek** `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 Čeká**

```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"
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/domains/verify/

## Úprava domény — POST /domains/{id}

> Zapínejte a vypínejte měření otevření a prokliků, měňte subdomény pro měření a příchozí poštu nebo zapněte DMARC reporty odesílací domény.

# Úprava domény

Upraví nastavení odesílací domény. Změní se jen pole, která pošlete.

`POST /domains/{id}`

Vyžaduje API klíč s oprávněním `full`. Vyvolá událost `domain.updated`.

## Parametry v cestě

- `id` (string, povinné): ID domény, nebo název domény.

## Parametry v těle požadavku

- `track_loads` (boolean): Zapne, nebo vypne výchozí měření otevření pro e-maily z této domény. Zapnutí vyžaduje ověřený CNAME záznam pro měření (`tracking_status` je `ok`). Viz [Nastavení vlastní domény pro měření](/cs/docs/tracking/custom-tracking-domain/).

- `track_clicks` (boolean): Zapne, nebo vypne výchozí měření prokliků. Platí stejný požadavek jako u `track_loads`.

- `tracking_key` (string | null): Nový název subdomény pro CNAME záznam pro měření, nebo `null` pro výchozí `go`. Změna vrátí `tracking_status` na `pending`, takže přidejte do DNS nový CNAME záznam a doménu znovu [ověřte](/cs/docs/api-reference/domains/verify/).

- `inbound_key` (string | null): Nový název subdomény pro příjem e-mailů, nebo `null` pro výchozí `inbound`. Změna vrátí `inbound_status` na `pending`.

- `dmarc_reports` (boolean): Sbírat pro doménu DMARC reporty. Zapnutí přidá do navrhovaného záznamu DMARC adresu pro reporty, takže potom upravte svůj záznam `_dmarc`. Jen v tarifech Pro, Business a Custom. Po vypnutí zůstane adresa uložená pro pozdější použití.

- `name` (string): Nový název domény. DNS záznamy se přesunou k novému názvu, takže je přidejte do DNS u něj a než z něj začnete odesílat, doménu znovu ověřte.

Starší příznaky `outgoing`, `incoming` a `use_for_any` se přijímají, ale nemají žádný účinek. Neznámá pole se ignorují. Požadavek, který neobsahuje žádné z těchto polí, vrací `400`.

## Odpověď

Vrací upravený [objekt domény](/cs/docs/api-reference/domains/get/) včetně `dns_records`.

**Požadavek** `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."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/domains/update/

## Výpis domén — GET /domains

> Vypište odesílací domény workspace se stavem ověření a DNS a zjistěte, kolik domén váš tarif povoluje.

# Výpis domén

Vrací stránku odesílacích domén od nejnovějších spolu s počtem domén, který povoluje váš tarif.

`GET /domains`

Vyžaduje API klíč s oprávněním `full`. Položky seznamu neobsahují `dns_records`; ty získáte endpointem [Načtení domény](/cs/docs/api-reference/domains/get/).

## Parametry dotazu

- `page` (integer): Stránka, kterou chcete načíst.

- `limit` (integer): Počet domén na stránce, od 1 do 100.

- `search` (string): Hledá v názvu domény bez ohledu na velikost písmen.

- `match` (string): `all`, nebo `or`. Určuje, jak se kombinují filtry níže.

- `order` (string): Klíč filtru, podle kterého se řadí.

- `direction` (string): `asc`, nebo `desc`.

## Filtry

Filtry přidejte ve tvaru `key.condition=value`, například `dkim_status.exact=ok`. Viz [Filtrování a řazení](/cs/docs/api-reference/filtering/).

| Klíč | Typ | Hodnoty a poznámky |
| --- | --- | --- |
| `name` | string | |
| `created_at` | date | |
| `spf_status` | enum | `ok`, `missing`, `invalid` |
| `dkim_status` | enum | `ok`, `missing`, `invalid` |
| `return_path_status` | enum | `ok`, `missing`, `invalid` |

Podle každého klíče lze také řadit.

## Odpověď

- `data` (object[]): [Objekty domén](/cs/docs/api-reference/domains/get/) na této stránce, bez `dns_records`.

- `next_page_url` (string | null): Cesta k další stránce, nebo `null`. Viz [Stránkování](/cs/docs/api-reference/pagination/).

- `previous_page_url` (string | null): Cesta k předchozí stránce, nebo `null`.

- `domain_limit` (integer | null): Kolik odesílacích domén váš tarif povoluje, nebo `null`, pokud limit není.

- `domain_count` (integer): Kolik odesílacích domén má workspace, napříč všemi stránkami.

- `plan_name` (string | null): Název vašeho tarifu, například `Pay as you go` nebo `Pro`.

**Požadavek** `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"
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/domains/list/

## Smazání domény — DELETE /domains/{id}

> Trvale smažte odesílací doménu z workspace. Už z ní nebudete moct odesílat a smazání nelze vrátit zpět.

# Smazání domény

Trvale smaže odesílací doménu.

`DELETE /domains/{id}`

Vyžaduje API klíč s oprávněním `full`. Po smazání skončí odesílání z domény chybou `Domain not verified` a API klíče omezené na tuto doménu už nemohou odesílat. Odstraní se také klíč DKIM domény, historie kondice odesílání a případné uložené propojení s Cloudflare. Už odeslané e-maily zůstanou ve vašich logech. Vyvolá událost `domain.deleted`.

Pokud chcete z domény znovu odesílat, znovu ji [vytvořte](/cs/docs/api-reference/domains/create/). Dostane nový klíč DKIM, takže budete muset upravit záznam DKIM.

## Parametry v cestě

- `id` (string, povinné): ID domény, nebo název domény.

## Odpověď

- `object` (string): Vždy `domain`.

- `id` (string): ID smazané domény.

- `name` (string): Název domény.

- `deleted` (boolean): Vždy `true`.

**Požadavek** `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"
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/domains/delete/
