# Šablony API

> Vytvářejte verze šablon, pro každý alias jednu publikujte a používejte je při odesílání.

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

## Vytvoření šablony — POST /templates

> Vytvořte verzi šablony pod aliasem. Nový alias se publikuje hned; verze pro existující alias vznikne jako nepublikovaný koncept.

# Vytvoření šablony

Vytvoří verzi šablony. Verze se stejným `alias` patří ke stejné šabloně a pro každý alias je v jednu chvíli publikovaná jen jedna verze. Když [odešlete e-mail](/cs/docs/api-reference/emails/send/) s parametrem `template` nastaveným na alias, Emailit použije publikovanou verzi. Vyžaduje API klíč s oprávněním `full`.

`POST /templates`

## Tělo požadavku

- `name` (string, povinné): Název šablony zobrazený ve webovém rozhraní. Nejvýše 191 znaků.

- `alias` (string, povinné): Identifikátor, který seskupuje verze šablony. Nejvýše 191 znaků; jen malá písmena, číslice, podtržítka a pomlčky (`^[a-z0-9_-]+$`). Pokud tento alias zatím žádná šablona nepoužívá, nová verze se hned publikuje. Pokud alias už existuje, nová verze vznikne nepublikovaná (`published_at` je `null`) a publikujete ji endpointem [Publikování šablony](/cs/docs/api-reference/templates/publish/).

- `from` (string): Výchozí odesílatel, například `Acme <hello@acme.com>`. Nejvýše 191 znaků.

- `subject` (string): Výchozí předmět. Nejvýše 191 znaků. Může obsahovat proměnné jazyka [Temple](/cs/docs/templates/temple/), například `{{ first_name }}`.

- `reply_to` (string | string[]): Adresa pro odpověď, nebo pole adres. Každá hodnota musí být platná e-mailová adresa.

- `html` (string): Tělo v HTML.

- `text` (string): Tělo v prostém textu.

- `source` (string): Zdrojový dokument editoru, například JSON z editoru Dragit u šablony vytvořené v drag & drop editoru. Ukládá se beze změny. U `editor: "mjml"` je to MJML: Emailit ho zvaliduje, uloží jako [dokument MJML](/cs/docs/templates/mjml/#the-stored-document) a zkompiluje z něj `html`.

- `editor` (string): Editor, ke kterému šablona patří: `html` (výchozí), `text`, `dragit` nebo `tiptap`. Hodnota `mjml` je v alfaverzi a otevřená jen týmu Emailitu; ostatní požadavky dostanou `403` s `error: "mjml_alpha"`. Viz [Editory a API pro MJML](/cs/docs/templates/mjml/).

## Odpověď

Vrací `201 Created` se šablonou v poli `data` a potvrzující zprávou `message`. Šablona obsahuje `html`, `text` a `source`. Emailit také odešle webhookovou událost [`template.created`](/cs/docs/webhooks/events/template/created/).

Šablony MJML vracejí navíc objekt `mjml` s verzemi dokumentu. Neplatné MJML vrací `422` s `errors.source` a `diagnostics`; viz [Validace](/cs/docs/templates/mjml/#validation).

Pokud některé pole neprojde validací, odpověď je `400` s `message: "Validation failed"` a objektem `errors` s klíči podle polí, například u aliasu s velkými písmeny nebo neplatné adresy v `reply_to`. Chybějící `name` nebo `alias` nebo nepovolená hodnota `editor` místo toho vrací standardní chybu validace `400` s polem `details`. Viz [Chyby](/cs/docs/api-reference/errors/).

**Požadavek** `POST /templates`

**Node.js**

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

const template = await emailit.templates.create({
  name: 'Welcome email',
  alias: 'welcome-email',
  subject: 'Welcome to Acme, {{ first_name }}',
  html: '<h1>Welcome, {{ first_name }}</h1>'
});
```

**Python**

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

template = client.templates.create({
    "name": "Welcome email",
    "alias": "welcome-email",
    "subject": "Welcome to Acme, {{ first_name }}",
    "html": "<h1>Welcome, {{ first_name }}</h1>"
})
```

**PHP**

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

$template = $emailit->templates()->create([
    'name' => 'Welcome email',
    'alias' => 'welcome-email',
    'subject' => 'Welcome to Acme, {{ first_name }}',
    'html' => '<h1>Welcome, {{ first_name }}</h1>'
]);
```

**Ruby**

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

template = client.templates.create(
  name: "Welcome email",
  alias: "welcome-email",
  subject: "Welcome to Acme, {{ first_name }}",
  html: "<h1>Welcome, {{ first_name }}</h1>"
)
```

**Go**

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

template, err := client.Templates.Create(&emailit.CreateTemplateRequest{
    Name:    "Welcome email",
    Alias:   "welcome-email",
    Subject: "Welcome to Acme, {{ first_name }}",
    Html:    "<h1>Welcome, {{ first_name }}</h1>",
})
```

**Rust**

```rust
use emailit::Emailit;
let emailit = Emailit::new("your_api_key");

let template = emailit.templates.create(
    emailit::types::CreateTemplateParams::new("Welcome email")
        .with_subject("Welcome to Acme, {{ first_name }}")
        .with_html("<h1>Welcome, {{ first_name }}</h1>")
).await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;
EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject template = emailit.templates().create(
    TemplateCreateParams.builder()
        .setName("Welcome email")
        .setAlias("welcome-email")
        .setSubject("Welcome to Acme, {{ first_name }}")
        .setHtml("<h1>Welcome, {{ first_name }}</h1>")
        .build()
);
```

**.NET**

```csharp
using Emailit;
var emailit = new EmailitClient("your_api_key");

var template = emailit.Templates.Create(new TemplateCreateOptions {
    Name = "Welcome email",
    Alias = "welcome-email",
    Subject = "Welcome to Acme, {{ first_name }}",
    Html = "<h1>Welcome, {{ first_name }}</h1>"
});
```

**Laravel**

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

$template = Emailit::templates()->create([
    'name' => 'Welcome email',
    'alias' => 'welcome-email',
    'subject' => 'Welcome to Acme, {{ first_name }}',
    'html' => '<h1>Welcome, {{ first_name }}</h1>'
]);
```

**cURL**

```bash
curl https://api.emailit.com/v2/templates \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome email",
    "alias": "welcome-email",
    "subject": "Welcome to Acme, {{ first_name }}",
    "html": "<h1>Welcome, {{ first_name }}</h1>"
  }'
```

**201**

```json
{
  "data": {
    "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    "name": "Welcome email",
    "alias": "welcome-email",
    "from": null,
    "subject": "Welcome to Acme, {{ first_name }}",
    "reply_to": null,
    "html": "<h1>Welcome, {{ first_name }}</h1>",
    "text": null,
    "source": null,
    "editor": "html",
    "published_at": "2026-09-30T10:30:00.482119Z",
    "preview_url": null,
    "created_at": "2026-09-30T10:30:00.482119Z",
    "updated_at": "2026-09-30T10:30:00.482119Z"
  },
  "message": "Template was successfully created."
}
```

**400**

```json
{
  "message": "Validation failed",
  "errors": {
    "alias": ["Alias must contain only lowercase letters (a-z), numbers (0-9), underscores (_), and hyphens (-)"]
  }
}
```

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

## Načtení šablony — GET /templates/{id}

> Načtěte jednu verzi šablony podle ID s celým obsahem a přehledem všech ostatních verzí se stejným aliasem.

# Načtení šablony

Vrací jednu verzi šablony včetně obsahu a v poli `versions` vypíše ostatní verze se stejným aliasem. Šablony se dohledávají jen podle ID, ne podle aliasu. Vyžaduje API klíč s oprávněním `full`.

`GET /templates/:id`

## Parametry v cestě

- `id` (string, povinné): ID šablony, například `tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a`.

## Odpověď

Vrací `200 OK` se šablonou v poli `data`. Kromě polí šablony obsahuje odpověď pole `versions` s `id`, `name`, `published_at`, `created_at` a `updated_at` všech ostatních verzí se stejným aliasem, od nejnovějších. Publikovaná verze je ta, jejíž `published_at` není `null`.

Pokud ID ve vašem workspace neexistuje, vrací `404` s `message: "Template not found"`.

**Požadavek** `GET /templates/{id}`

**Node.js**

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

const template = await emailit.templates.get('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a');
```

**Python**

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

template = client.templates.get("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a")
```

**PHP**

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

$template = $emailit->templates()->get('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a');
```

**Ruby**

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

template = client.templates.get("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a")
```

**Go**

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

template, err := client.Templates.Get("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a")
```

**Rust**

```rust
use emailit::Emailit;
let emailit = Emailit::new("your_api_key");

let template = emailit.templates.get("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a").await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;
EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject template = emailit.templates().get("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a");
```

**.NET**

```csharp
using Emailit;
var emailit = new EmailitClient("your_api_key");

var template = emailit.Templates.Get("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a");
```

**Laravel**

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

$template = Emailit::templates()->get('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a');
```

**cURL**

```bash
curl https://api.emailit.com/v2/templates/tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "data": {
    "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    "name": "Welcome email",
    "alias": "welcome-email",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome to Acme, {{ first_name }}",
    "reply_to": ["support@acme.com"],
    "html": "<h1>Welcome, {{ first_name }}</h1>",
    "text": "Welcome, {{ first_name }}",
    "source": null,
    "editor": "html",
    "published_at": "2026-09-30T10:30:00.482119Z",
    "preview_url": null,
    "created_at": "2026-09-28T08:12:45.103882Z",
    "updated_at": "2026-09-30T10:30:00.482119Z",
    "versions": [
      {
        "id": "tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f",
        "name": "Welcome email (October)",
        "published_at": null,
        "created_at": "2026-09-30T14:02:11.550731Z",
        "updated_at": "2026-09-30T14:02:11.550731Z"
      }
    ]
  }
}
```

**404**

```json
{
  "message": "Template not found"
}
```

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

## Úprava šablony — POST /templates/{id}

> Upravte název, alias, odesílatele, předmět nebo obsah verze šablony. Úprava verzi nikdy nepublikuje ani nestáhne.

# Úprava šablony

Upraví jednu verzi šablony. Pošlete jen pole, která chcete změnit. Verze si zachová stav publikování: publikovaná verze zůstane publikovaná a koncept zůstane konceptem. Vyžaduje API klíč s oprávněním `full`.

`POST /templates/:id`

## Parametry v cestě

- `id` (string, povinné): ID šablony, například `tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a`.

## Tělo požadavku

- `name` (string): Název šablony. Nejvýše 191 znaků.

- `alias` (string): Nový alias. Nejvýše 191 znaků; jen malá písmena, číslice, podtržítka a pomlčky. Nesmí to být alias, který už používá jiná šablona.

- `from` (string): Výchozí odesílatel, například `Acme <hello@acme.com>`. Nejvýše 191 znaků. Pokud ho chcete vymazat, pošlete prázdný řetězec.

- `subject` (string): Výchozí předmět. Nejvýše 191 znaků. Pokud ho chcete vymazat, pošlete prázdný řetězec.

- `reply_to` (string | string[]): Adresa pro odpověď, nebo pole adres. Pokud ji chcete vymazat, pošlete prázdný řetězec.

- `html` (string): Tělo v HTML.

- `text` (string): Tělo v prostém textu.

- `source` (string): Zdrojový dokument editoru, například JSON z editoru Dragit. U šablony MJML celé MJML: Emailit ho zvaliduje a znovu zkompiluje `html` a jakékoli `html`, které pošlete, se ignoruje.

- `editor` (string): `html`, `text`, `dragit` nebo `tiptap`. Hodnota `mjml` je v alfaverzi a otevřená jen týmu Emailitu; změna obsahu šablony MJML bez přístupu k MJML vrací `403` s `error: "mjml_alpha"`. Přejmenování nebo publikování funguje pro všechny. Viz [Editory a API pro MJML](/cs/docs/templates/mjml/).

## Odpověď

Vrací `200 OK` s upravenou šablonou v poli `data` a potvrzující zprávou `message`. Emailit také odešle webhookovou událost [`template.updated`](/cs/docs/webhooks/events/template/updated/).

Pokud je některá hodnota neplatná, vrací `400` s `message: "Validation failed"` a objektem `errors`, například `"Alias already exists"`. Hodnoty delší než 191 znaků nebo neznámý `editor` vracejí standardní chybu validace `400`. Pokud šablona neexistuje, vrací `404`.

Pokud chcete, aby se tato verze používala při odesílání, zavolejte endpoint [Publikování šablony](/cs/docs/api-reference/templates/publish/).

**Požadavek** `POST /templates/{id}`

**Node.js**

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

const template = await emailit.templates.update('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a', {
  subject: 'Welcome aboard, {{ first_name }}'
});
```

**Python**

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

template = client.templates.update("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a", {
    "subject": "Welcome aboard, {{ first_name }}"
})
```

**PHP**

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

$template = $emailit->templates()->update('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a', [
    'subject' => 'Welcome aboard, {{ first_name }}'
]);
```

**Ruby**

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

template = client.templates.update("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a", subject: "Welcome aboard, {{ first_name }}")
```

**Go**

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

template, err := client.Templates.Update("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a", &emailit.UpdateTemplateRequest{
    Subject: "Welcome aboard, {{ first_name }}",
})
```

**Rust**

```rust
use emailit::Emailit;
let emailit = Emailit::new("your_api_key");

let template = emailit.templates.update("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    emailit::types::UpdateTemplateParams {
        subject: Some("Welcome aboard, {{ first_name }}".into()),
        ..Default::default()
    }
).await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;
EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject template = emailit.templates().update("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    TemplateUpdateParams.builder()
        .setSubject("Welcome aboard, {{ first_name }}")
        .build()
);
```

**.NET**

```csharp
using Emailit;
var emailit = new EmailitClient("your_api_key");

var template = emailit.Templates.Update("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a", new TemplateUpdateOptions {
    Subject = "Welcome aboard, {{ first_name }}"
});
```

**Laravel**

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

$template = Emailit::templates()->update('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a', [
    'subject' => 'Welcome aboard, {{ first_name }}'
]);
```

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/templates/tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"subject": "Welcome aboard, {{ first_name }}"}'
```

**200**

```json
{
  "data": {
    "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
    "name": "Welcome email",
    "alias": "welcome-email",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome aboard, {{ first_name }}",
    "reply_to": ["support@acme.com"],
    "html": "<h1>Welcome, {{ first_name }}</h1>",
    "text": "Welcome, {{ first_name }}",
    "source": null,
    "editor": "html",
    "published_at": "2026-09-30T10:30:00.482119Z",
    "preview_url": null,
    "created_at": "2026-09-28T08:12:45.103882Z",
    "updated_at": "2026-10-01T09:15:27.640000Z"
  },
  "message": "Template was successfully updated."
}
```

**400**

```json
{
  "message": "Validation failed",
  "errors": {
    "alias": ["Alias already exists"]
  }
}
```

**404**

```json
{
  "message": "Template not found"
}
```

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

## Výpis šablon — GET /templates

> Vypište publikovanou verzi každé šablony ve workspace s filtry, řazením a stránkováním po stránkách.

# Výpis šablon

Vrací publikovanou verzi každé šablony, od nejnovějších. Nepublikované verze se nevypisují; všechny verze aliasu uvidíte, když [načtete šablonu](/cs/docs/api-reference/templates/get/). Vyžaduje API klíč s oprávněním `full`.

`GET /templates`

## Parametry dotazu

- `page` (integer): Číslo stránky, začíná na `1`. Výchozí hodnota je `1`.

- `per_page` (integer): Počet šablon na stránce, od `1` do `100`. Výchozí hodnota je `25`.

- `include_content` (boolean): Nastavte na `true`, pokud chcete u každé šablony vrátit i `html`, `text` a `source`. Ve výchozím stavu se vynechávají, aby odpovědi zůstaly malé.

- `filter[name]` (string): Částečná shoda s názvem nebo aliasem šablony bez ohledu na velikost písmen.

- `filter[alias]` (string): Přesný alias.

- `filter[editor]` (string): Editor: `html`, `text`, `dragit`, `tiptap` nebo `mjml` ([alfaverze](/cs/docs/templates/mjml/)).

- `match` (string): `all` (výchozí) vyžaduje shodu všech filtrů `key.condition`. U `or` stačí shoda kteréhokoli z nich. Viz [Filtrování a řazení](/cs/docs/api-reference/filtering/).

- `sort` (string): Klíč řazení: `name`, `alias`, `created_at` (výchozí), `updated_at` nebo `published_at`.

- `order` (string): Směr řazení: `asc`, nebo `desc` (výchozí).

## Filtry

Klíče filtrů a řazení: viz [Filtrování](https://emailit.com/cs/docs/api-reference/filtering/).

U tohoto endpointu přijímá `order` jen `asc`, nebo `desc`. Klíč řazení předejte v `sort`, například `sort=name&order=asc`.

## Odpověď

Vrací `200 OK` se šablonami v poli `data` a stránkovacími poli `total_records`, `per_page`, `current_page` a `total_pages`. Každá šablona obsahuje `total_versions`, tedy počet verzí se stejným aliasem.

**Požadavek** `GET /templates`

**Node.js**

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

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

**Python**

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

templates = client.templates.list()
```

**PHP**

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

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

**Ruby**

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

templates = client.templates.list
```

**Go**

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

templates, err := client.Templates.List(nil)
```

**Rust**

```rust
use emailit::Emailit;
let emailit = Emailit::new("your_api_key");

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

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;
EmailitClient emailit = new EmailitClient("your_api_key");

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

**.NET**

```csharp
using Emailit;
var emailit = new EmailitClient("your_api_key");

var templates = emailit.Templates.List();
```

**Laravel**

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

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

**cURL**

```bash
curl https://api.emailit.com/v2/templates \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "data": [
    {
      "id": "tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a",
      "name": "Welcome email",
      "alias": "welcome-email",
      "from": "Acme <hello@acme.com>",
      "subject": "Welcome to Acme, {{ first_name }}",
      "reply_to": ["support@acme.com"],
      "editor": "html",
      "published_at": "2026-09-30T10:30:00.482119Z",
      "preview_url": null,
      "total_versions": 3,
      "created_at": "2026-09-28T08:12:45.103882Z",
      "updated_at": "2026-09-30T10:30:00.482119Z"
    }
  ],
  "total_records": 1,
  "per_page": 25,
  "current_page": 1,
  "total_pages": 1
}
```

**401**

```json
{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "Invalid API key"
}
```

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

## Publikování šablony — POST /templates/{id}/publish

> Publikujte verzi šablony, aby ji začaly používat e-maily odesílané s jejím aliasem. Všechny ostatní verze aliasu se zároveň stáhnou.

# Publikování šablony

Publikuje verzi šablony a v jedné transakci stáhne všechny ostatní verze se stejným aliasem. Použijte ho k nasazení nového konceptu nebo k návratu ke starší verzi. Vyžaduje API klíč s oprávněním `full`.

`POST /templates/:id/publish`

## Parametry v cestě

- `id` (string, povinné): ID verze, kterou chcete publikovat, například `tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f`.

## Tělo požadavku

Bez těla. Opětovné publikování už publikované verze nastaví nové `published_at`.

## Odpověď

Vrací `200 OK` s publikovanou šablonou v poli `data` a potvrzující zprávou `message`. Pokud šablona neexistuje, vrací `404`.

Emailit odešle webhookovou událost [`template.updated`](/cs/docs/webhooks/events/template/updated/) pro verzi, kterou jste publikovali, a po jedné pro každou staženou verzi.

**Požadavek** `POST /templates/{id}/publish`

**Node.js**

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

const template = await emailit.templates.publish('tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f');
```

**Python**

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

template = client.templates.publish("tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f")
```

**PHP**

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

$template = $emailit->templates()->publish('tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f');
```

**Ruby**

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

template = client.templates.publish("tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f")
```

**Go**

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

template, err := client.Templates.Publish("tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f")
```

**Rust**

```rust
use emailit::Emailit;
let emailit = Emailit::new("your_api_key");

let template = emailit.templates.publish("tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f").await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;
EmailitClient emailit = new EmailitClient("your_api_key");

EmailitObject template = emailit.templates().publish("tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f");
```

**.NET**

```csharp
using Emailit;
var emailit = new EmailitClient("your_api_key");

var template = emailit.Templates.Publish("tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f");
```

**Laravel**

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

$template = Emailit::templates()->publish('tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f');
```

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/templates/tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f/publish \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "data": {
    "id": "tem_2xKyB4qLm7RtV9sNd3HwEa6uC1f",
    "name": "Welcome email (October)",
    "alias": "welcome-email",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome to Acme, {{ first_name }}",
    "reply_to": ["support@acme.com"],
    "html": "<h1>Welcome, {{ first_name }}</h1><p>Here is your October guide.</p>",
    "text": "Welcome, {{ first_name }}. Here is your October guide.",
    "source": null,
    "editor": "html",
    "published_at": "2026-10-01T09:20:04.118502Z",
    "preview_url": null,
    "created_at": "2026-09-30T14:02:11.550731Z",
    "updated_at": "2026-10-01T09:20:04.118000Z"
  },
  "message": "Template was successfully published."
}
```

**404**

```json
{
  "message": "Template not found"
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/templates/publish/

## Smazání šablony — DELETE /templates/{id}

> Trvale smažte jednu verzi šablony. Po smazání publikované verze zůstane její alias bez publikované šablony.

# Smazání šablony

Trvale smaže jednu verzi šablony. Ostatní verze se stejným aliasem zůstanou. Vyžaduje API klíč s oprávněním `full`.

`DELETE /templates/:id`

## Parametry v cestě

- `id` (string, povinné): ID šablony, například `tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a`.

## Odpověď

Vrací `200 OK` s `data: null` a potvrzující zprávou `message`. Emailit odešle webhookovou událost [`template.deleted`](/cs/docs/webhooks/events/template/deleted/) se smazanou verzí. Pokud šablona neexistuje, vrací `404`.

Pokud smažete publikovanou verzi, nebude pro tento alias publikovaná žádná verze, dokud [nepublikujete jinou](/cs/docs/api-reference/templates/publish/), a odesílání s tímto aliasem selže. Smazání konceptu publikovanou verzi neovlivní. Smazání nelze vrátit zpět.

**Požadavek** `DELETE /templates/{id}`

**Node.js**

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

await emailit.templates.delete('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a');
```

**Python**

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

client.templates.delete("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a")
```

**PHP**

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

$emailit->templates()->delete('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a');
```

**Ruby**

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

client.templates.delete("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a")
```

**Go**

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

err := client.Templates.Delete("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a")
```

**Rust**

```rust
use emailit::Emailit;
let emailit = Emailit::new("your_api_key");

emailit.templates.delete("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a").await?;
```

**Java**

```java
import com.emailit.*;
import com.emailit.params.*;
EmailitClient emailit = new EmailitClient("your_api_key");

emailit.templates().delete("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a");
```

**.NET**

```csharp
using Emailit;
var emailit = new EmailitClient("your_api_key");

emailit.Templates.Delete("tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a");
```

**Laravel**

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

Emailit::templates()->delete('tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a');
```

**cURL**

```bash
curl -X DELETE https://api.emailit.com/v2/templates/tem_2xKx7M2c9wQe3kHhJ8sVtY1pZ0a \
  -H "Authorization: Bearer your_api_key"
```

**200**

```json
{
  "data": null,
  "message": "Template was successfully deleted."
}
```

**404**

```json
{
  "message": "Template not found"
}
```

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