Vorlagen auflisten

Rufen Sie eine Liste aller veröffentlichten Vorlagen in Ihrem Emailit-Konto ab. Es werden nur Vorlagen mit gesetztem published_at-Wert zurückgegeben. Der Inhalt (HTML/Text) wird in der Listenansicht ausgeschlossen.

GET/templates

Abfrageparameter

per_pageinteger

Einträge pro Seite (1-100). Standard: 25.

pageinteger

Seitenzahl (mindestens: 1). Standard: 1.

filter[name]string

Nach Name filtern (Teilübereinstimmung).

filter[alias]string

Nach Alias filtern (exakte Übereinstimmung).

filter[editor]string

Nach Editor-Typ filtern: html, tiptap oder dragit.

sortstring

Sortierfeld: name, alias, created_at, updated_at oder published_at. Standard: created_at.

orderstring

Sortierreihenfolge: asc oder desc. Standard: desc.

const response = await fetch('https://api.emailit.com/v2/templates?page=1&per_page=25', {
method: 'GET',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/templates?page=1&per_page=25',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL-Fehler #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.get(
'https://api.emailit.com/v2/templates',
params={
    'page': 1,
    'per_page': 25
},
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/templates?page=1&per_page=25')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)

func main() {
baseURL := "https://api.emailit.com/v2/templates"
params := url.Values{}
params.Add("page", "1")
params.Add("per_page", "25")

fullURL := baseURL + "?" + params.Encode()

req, _ := http.NewRequest("GET", fullURL, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .get("https://api.emailit.com/v2/templates")
    .query(&[("page", "1"), ("per_page", "25")])
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class ListTemplates {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/templates?page=1&per_page=25"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .GET()
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class ListTemplates
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.GetAsync(
            "https://api.emailit.com/v2/templates?page=1&per_page=25");
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X GET "https://api.emailit.com/v2/templates?page=1&per_page=25" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"data": [
{
  "id": "tem_47TaFwzJx6mD7NeJYvLjFxVwbgT",
  "name": "Willkommens-E-Mail",
  "alias": "willkommens-email",
  "from": "Support <support@unternehmen.de>",
  "subject": "Willkommen bei unserem Service!",
  "reply_to": ["support@unternehmen.de"],
  "editor": "html",
  "published_at": "2025-12-24T10:30:00.000000Z",
  "preview_url": "https://cdn.unternehmen.de/previews/willkommen.png",
  "total_versions": 3,
  "created_at": "2025-12-24T09:00:00.000000Z",
  "updated_at": "2025-12-24T10:30:00.000000Z"
}
],
"total_records": 10,
"per_page": 25,
"current_page": 1,
"total_pages": 1
}
{
"message": "Nicht autorisiert"
}

Template abrufen

Ruft ein Template anhand der ID ab, einschließlich vollständigem Inhalt und allen anderen Versionen (Templates mit demselben Alias).

GET/templates/:id

Pfad-Parameter

idstringRequired

Template-ID (z.B. tem_47TaFwzJx6mD7NeJYvLjFxVwbgT).

const response = await fetch('https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT', {
method: 'GET',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Fehler #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.get(
'https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT"

req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .get("https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class GetTemplate {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .GET()
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class GetTemplate
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.GetAsync(
            "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT");
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X GET "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"data": {
"id": "tem_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"name": "Willkommens-E-Mail v1",
"alias": "welcome-email",
"from": "Support <support@company.com>",
"subject": "Willkommen!",
"reply_to": ["support@company.com"],
"html": "<h1>Willkommen!</h1>",
"text": "Willkommen!",
"editor": "html",
"published_at": "2025-12-24T10:30:00.000000Z",
"preview_url": "https://cdn.company.com/previews/welcome.png",
"created_at": "2025-12-24T09:00:00.000000Z",
"updated_at": "2025-12-24T10:30:00.000000Z",
"versions": [
  {
    "id": "tem_anotherOidHere123456789",
    "name": "Willkommens-E-Mail v2",
    "published_at": null,
    "created_at": "2025-12-24T11:00:00.000000Z",
    "updated_at": "2025-12-24T11:00:00.000000Z"
  }
]
}
}
{
"message": "Template nicht gefunden"
}

Wichtige Konzepte

Alias-Gruppierung

Templates mit demselben alias sind Versionen desselben Templates. Wenn Sie ein Template anhand der ID abrufen, enthält das versions-Array alle anderen Templates, die denselben Alias verwenden.

Veröffentlichung

Pro Alias kann nur ein Template gleichzeitig veröffentlicht sein. Das veröffentlichte Template hat einen published_at-Zeitstempel, der nicht null ist. Entwürfe haben published_at auf null gesetzt.

Template erstellen

Erstellen Sie eine neue Template über die Emailit API. Templates werden automatisch veröffentlicht, wenn der Alias noch nicht existiert; andernfalls bleiben sie als Entwürfe gespeichert.

POST/templates

Request Body

namestringRequired

Template-Name. Maximal 191 Zeichen.

aliasstringRequired

Template-Alias zur Gruppierung von Versionen. Darf nur Kleinbuchstaben (a-z), Zahlen (0-9), Unterstriche (_) und Bindestriche (-) enthalten. Muster: ^[a-z0-9_-]+$. Maximal 191 Zeichen.

fromstring

Absender-E-Mail-Adresse im RFC-Format (z.B. Name <email@domain.com>). Maximal 191 Zeichen.

subjectstring

E-Mail-Betreff. Maximal 191 Zeichen.

reply_tostring | string[]

Einzelne E-Mail-Adresse oder Array von E-Mail-Adressen für Antworten.

htmlstring

HTML-Inhalt für das E-Mail-Template.

textstring

Nur-Text-Inhalt für das E-Mail-Template.

editorstring

Editor-Typ: html (Standard), tiptap oder dragit.

const response = await fetch('https://api.emailit.com/v2/templates', {
method: 'POST',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Willkommens-E-Mail',
alias: 'willkommens-email',
from: 'Support <support@unternehmen.de>',
subject: 'Willkommen bei unserem Service!',
reply_to: ['support@unternehmen.de'],
html: '<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>',
text: 'Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.',
editor: 'html'
})
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/templates',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Willkommens-E-Mail',
'alias' => 'willkommens-email',
'from' => 'Support <support@unternehmen.de>',
'subject' => 'Willkommen bei unserem Service!',
'reply_to' => ['support@unternehmen.de'],
'html' => '<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>',
'text' => 'Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.',
'editor' => 'html'
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Fehler #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.post(
'https://api.emailit.com/v2/templates',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
},
json={
    'name': 'Willkommens-E-Mail',
    'alias': 'willkommens-email',
    'from': 'Support <support@unternehmen.de>',
    'subject': 'Willkommen bei unserem Service!',
    'reply_to': ['support@unternehmen.de'],
    'html': '<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>',
    'text': 'Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.',
    'editor': 'html'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/templates')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'
request.body = {
name: 'Willkommens-E-Mail',
alias: 'willkommens-email',
from: 'Support <support@unternehmen.de>',
subject: 'Willkommen bei unserem Service!',
reply_to: ['support@unternehmen.de'],
html: '<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>',
text: 'Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.',
editor: 'html'
}.to_json

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/templates"

data := map[string]interface{}{
    "name": "Willkommens-E-Mail",
    "alias": "willkommens-email",
    "from": "Support <support@unternehmen.de>",
    "subject": "Willkommen bei unserem Service!",
    "reply_to": []string{"support@unternehmen.de"},
    "html": "<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>",
    "text": "Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.",
    "editor": "html",
}

jsonData, _ := json.Marshal(data)

req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::{json, Value};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .post("https://api.emailit.com/v2/templates")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .json(&json!({
        "name": "Willkommens-E-Mail",
        "alias": "willkommens-email",
        "from": "Support <support@unternehmen.de>",
        "subject": "Willkommen bei unserem Service!",
        "reply_to": ["support@unternehmen.de"],
        "html": "<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>",
        "text": "Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.",
        "editor": "html"
    }))
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.http.HttpRequest.BodyPublishers;

public class CreateTemplate {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    String jsonBody = """
        {
            "name": "Willkommens-E-Mail",
            "alias": "willkommens-email",
            "from": "Support <support@unternehmen.de>",
            "subject": "Willkommen bei unserem Service!",
            "reply_to": ["support@unternehmen.de"],
            "html": "<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>",
            "text": "Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.",
            "editor": "html"
        }
        """;
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/templates"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .POST(BodyPublishers.ofString(jsonBody))
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class CreateTemplate
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var data = new {
            name = "Willkommens-E-Mail",
            alias = "willkommens-email",
            from = "Support <support@unternehmen.de>",
            subject = "Willkommen bei unserem Service!",
            reply_to = new[] { "support@unternehmen.de" },
            html = "<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>",
            text = "Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.",
            editor = "html"
        };
        var json = JsonConvert.SerializeObject(data);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        
        var response = await client.PostAsync(
            "https://api.emailit.com/v2/templates", content);
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X POST https://api.emailit.com/v2/templates \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json" \
-d '{
"name": "Willkommens-E-Mail",
"alias": "willkommens-email",
"from": "Support <support@unternehmen.de>",
"subject": "Willkommen bei unserem Service!",
"reply_to": ["support@unternehmen.de"],
"html": "<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>",
"text": "Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.",
"editor": "html"
}'
{
"data": {
"id": "tem_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"name": "Willkommens-E-Mail",
"alias": "willkommens-email",
"from": "Support <support@unternehmen.de>",
"subject": "Willkommen bei unserem Service!",
"reply_to": ["support@unternehmen.de"],
"html": "<h1>Willkommen!</h1><p>Vielen Dank, dass Sie sich uns angeschlossen haben.</p>",
"text": "Willkommen! Vielen Dank, dass Sie sich uns angeschlossen haben.",
"editor": "html",
"published_at": "2025-12-24T10:30:00.000000Z",
"preview_url": null,
"created_at": "2025-12-24T10:30:00.000000Z",
"updated_at": "2025-12-24T10:30:00.000000Z"
},
"message": "Template wurde erfolgreich erstellt."
}
{
"message": "Validierung fehlgeschlagen",
"errors": {
"name": ["Name ist erforderlich"],
"alias": ["Alias darf nur Kleinbuchstaben (a-z), Zahlen (0-9), Unterstriche (_) und Bindestriche (-) enthalten"]
}
}

Automatische Veröffentlichung

  • Neuer Alias: Wenn Sie ein Template mit einem noch nicht existierenden Alias erstellen, wird das Template automatisch veröffentlicht (published_at wird gesetzt).
  • Bestehender Alias: Wenn Sie ein Template mit einem Alias erstellen, für den bereits Templates vorhanden sind, wird das neue Template als Entwurf gespeichert (published_at ist null). Sie können es später über den Template veröffentlichen Endpunkt veröffentlichen.

Validierungsregeln

FeldRegeln
nameErforderlich, max. 191 Zeichen
aliasErforderlich, max. 191 Zeichen, Muster: ^[a-z0-9_-]+$
fromOptional, max. 191 Zeichen
subjectOptional, max. 191 Zeichen
reply_toOptional, muss gültige E-Mail-Adresse(n) sein
editorOptional, muss html, tiptap oder dragit sein

Template aktualisieren

Aktualisieren Sie eine bestehende Vorlage über die Emailit API. Alle Felder sind optional. Dieser Endpunkt ändert nicht den published_at-Status.

POST/templates/:id

Pfad-Parameter

idstringRequired

Template-ID (z.B. tem_47TaFwzJx6mD7NeJYvLjFxVwbgT).

Request Body (alle optional)

namestring

Name der Vorlage. Maximal 191 Zeichen.

aliasstring

Alias der Vorlage. Muss eindeutig sein, falls geändert. Darf nur Kleinbuchstaben (a-z), Zahlen (0-9), Unterstriche (_) und Bindestriche (-) enthalten. Maximal 191 Zeichen.

fromstring

Absender-E-Mail-Adresse im RFC-Format. Maximal 191 Zeichen.

subjectstring

E-Mail-Betreffzeile. Maximal 191 Zeichen.

reply_tostring | string[]

Antwort-E-Mail-Adresse(n).

htmlstring

HTML-Inhalt für die E-Mail-Vorlage.

textstring

Nur-Text-Inhalt für die E-Mail-Vorlage.

editorstring

Editor-Typ: html, tiptap oder dragit.

const response = await fetch('https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT', {
method: 'POST',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Willkommens-E-Mail - Aktualisiert',
subject: 'Willkommen! Schön, dass Sie da sind'
})
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Willkommens-E-Mail - Aktualisiert',
'subject' => 'Willkommen! Schön, dass Sie da sind'
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Fehler #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.post(
'https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
},
json={
    'name': 'Willkommens-E-Mail - Aktualisiert',
    'subject': 'Willkommen! Schön, dass Sie da sind'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'
request.body = {
name: 'Willkommens-E-Mail - Aktualisiert',
subject: 'Willkommen! Schön, dass Sie da sind'
}.to_json

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT"

data := map[string]interface{}{
    "name": "Willkommens-E-Mail - Aktualisiert",
    "subject": "Willkommen! Schön, dass Sie da sind",
}

jsonData, _ := json.Marshal(data)

req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::{json, Value};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .post("https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .json(&json!({
        "name": "Willkommens-E-Mail - Aktualisiert",
        "subject": "Willkommen! Schön, dass Sie da sind"
    }))
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.http.HttpRequest.BodyPublishers;

public class UpdateTemplate {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    String jsonBody = """
        {
            "name": "Willkommens-E-Mail - Aktualisiert",
            "subject": "Willkommen! Schön, dass Sie da sind"
        }
        """;
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .POST(BodyPublishers.ofString(jsonBody))
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class UpdateTemplate
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var data = new {
            name = "Willkommens-E-Mail - Aktualisiert",
            subject = "Willkommen! Schön, dass Sie da sind"
        };
        var json = JsonConvert.SerializeObject(data);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        
        var response = await client.PostAsync(
            "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT", content);
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X POST https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json" \
-d '{
"name": "Willkommens-E-Mail - Aktualisiert",
"subject": "Willkommen! Schön, dass Sie da sind"
}'
{
"data": {
"id": "tem_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"name": "Willkommens-E-Mail - Aktualisiert",
"alias": "welcome-email",
"from": "Support <support@company.com>",
"subject": "Willkommen! Schön, dass Sie da sind",
"reply_to": ["support@company.com"],
"html": "<h1>Willkommen!</h1>",
"text": "Willkommen!",
"editor": "html",
"published_at": "2025-12-24T10:30:00.000000Z",
"preview_url": null,
"created_at": "2025-12-24T10:30:00.000000Z",
"updated_at": "2025-12-24T12:00:00.000000Z"
},
"message": "Template wurde erfolgreich aktualisiert."
}
{
"message": "Validierung fehlgeschlagen",
"errors": {
"alias": ["Alias existiert bereits"]
}
}
{
"message": "Template nicht gefunden"
}

Wichtige Hinweise

  • Das Aktualisieren einer Vorlage ändert nicht deren published_at-Status. Eine veröffentlichte Vorlage bleibt veröffentlicht und ein Entwurf bleibt ein Entwurf.
  • Wenn Sie den alias zu einem bereits existierenden ändern, erhalten Sie einen Validierungsfehler.
  • Um eine Entwurfs-Vorlage zu veröffentlichen, verwenden Sie den Template veröffentlichen Endpunkt.

Template löschen

Löschen Sie eine Vorlage aus Ihrem Emailit-Konto.

DELETE/templates/:id

Pfad-Parameter

idstringRequired

Template-ID (z.B. tem_47TaFwzJx6mD7NeJYvLjFxVwbgT).

const response = await fetch('https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT', {
method: 'DELETE',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Fehler #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.delete(
'https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT"

req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .delete("https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class DeleteTemplate {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .DELETE()
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class DeleteTemplate
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.DeleteAsync(
            "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT");
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X DELETE "https://api.emailit.com/v2/templates/tem_47TaFwzJx6mD7NeJYvLjFxVwbgT" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"data": null,
"message": "Template wurde erfolgreich gelöscht."
}
{
"message": "Template nicht gefunden"
}

Wichtige Hinweise

  • Löschen einer veröffentlichten Vorlage: Wenn Sie die veröffentlichte Vorlage für einen Alias löschen, ist für diesen Alias keine Vorlage mehr veröffentlicht, bis Sie eine andere Version über den Template veröffentlichen Endpunkt veröffentlichen.
  • Löschen eines Entwurfs: Das Löschen einer Entwurfsvorlage hat keine Auswirkungen auf die aktuell veröffentlichte Vorlage für diesen Alias.
  • Diese Aktion ist unwiderruflich. Die Vorlage und ihr Inhalt werden dauerhaft gelöscht.

Template veröffentlichen

Veröffentlicht ein Template und hebt automatisch die Veröffentlichung aller anderen Templates mit demselben Alias auf. Pro Alias kann immer nur ein Template gleichzeitig veröffentlicht sein.

POST/templates/:id/publish

Pfad-Parameter

idstringRequired

Template-ID (z.B. tem_47TaFwzJx6mD7NeJYvLjFxVwbgT).

Request Body

Leerer Body (keine Parameter erforderlich).

const response = await fetch('https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish', {
method: 'POST',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Fehler #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.post(
'https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish"

req, _ := http.NewRequest("POST", url, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .post("https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.http.HttpRequest.BodyPublishers;

public class PublishTemplate {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .POST(BodyPublishers.noBody())
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class PublishTemplate
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.PostAsync(
            "https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish",
            null);
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X POST "https://api.emailit.com/v2/templates/tem_anotherOidHere123456789/publish" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"data": {
"id": "tem_anotherOidHere123456789",
"name": "Willkommens-E-Mail v2",
"alias": "welcome-email",
"from": "Support <support@company.com>",
"subject": "Willkommen! Aktualisierte Version",
"reply_to": ["support@company.com"],
"html": "<h1>Willkommen v2!</h1>",
"text": "Willkommen v2!",
"editor": "html",
"published_at": "2025-12-24T13:00:00.000000Z",
"preview_url": null,
"created_at": "2025-12-24T11:00:00.000000Z",
"updated_at": "2025-12-24T13:00:00.000000Z"
},
"message": "Template wurde erfolgreich veröffentlicht."
}
{
"message": "Template nicht gefunden"
}

So funktioniert die Veröffentlichung

Wenn Sie ein Template veröffentlichen:

  1. Das Ziel-Template erhält einen published_at-Zeitstempel mit der aktuellen Zeit.
  2. Alle anderen Templates mit demselben Alias bekommen ihren published_at-Wert auf null gesetzt (unveröffentlicht).

Dadurch wird sichergestellt, dass pro Alias immer nur ein Template veröffentlicht ist, was die Verwaltung von Template-Versionen und das Wechseln zwischen ihnen vereinfacht.

Anwendungsfälle

  • A/B-Tests: Erstellen Sie mehrere Versionen eines Templates und veröffentlichen Sie verschiedene Versionen, um die Performance zu testen.
  • Rollback: Kehren Sie schnell zu einer früheren Version zurück, indem Sie ein älteres Template veröffentlichen.
  • Staging: Erstellen Sie neue Versionen als Entwürfe, testen Sie diese und veröffentlichen Sie sie, wenn sie bereit sind.
Lokalisiert durch KI