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.
/templatesAbfrageparameter
per_pageintegerEinträge pro Seite (1-100). Standard: 25.
pageintegerSeitenzahl (mindestens: 1). Standard: 1.
filter[name]stringNach Name filtern (Teilübereinstimmung).
filter[alias]stringNach Alias filtern (exakte Übereinstimmung).
filter[editor]stringNach Editor-Typ filtern: html, tiptap oder dragit.
sortstringSortierfeld: name, alias, created_at, updated_at oder published_at. Standard: created_at.
orderstringSortierreihenfolge: 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).
/templates/:idPfad-Parameter
idstringRequiredTemplate-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.
/templatesRequest Body
namestringRequiredTemplate-Name. Maximal 191 Zeichen.
aliasstringRequiredTemplate-Alias zur Gruppierung von Versionen. Darf nur Kleinbuchstaben (a-z), Zahlen (0-9), Unterstriche (_) und Bindestriche (-) enthalten. Muster: ^[a-z0-9_-]+$. Maximal 191 Zeichen.
fromstringAbsender-E-Mail-Adresse im RFC-Format (z.B. Name <email@domain.com>). Maximal 191 Zeichen.
subjectstringE-Mail-Betreff. Maximal 191 Zeichen.
reply_tostring | string[]Einzelne E-Mail-Adresse oder Array von E-Mail-Adressen für Antworten.
htmlstringHTML-Inhalt für das E-Mail-Template.
textstringNur-Text-Inhalt für das E-Mail-Template.
editorstringEditor-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_atwird 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_atistnull). Sie können es später über den Template veröffentlichen Endpunkt veröffentlichen.
Validierungsregeln
| Feld | Regeln |
|---|---|
name | Erforderlich, max. 191 Zeichen |
alias | Erforderlich, max. 191 Zeichen, Muster: ^[a-z0-9_-]+$ |
from | Optional, max. 191 Zeichen |
subject | Optional, max. 191 Zeichen |
reply_to | Optional, muss gültige E-Mail-Adresse(n) sein |
editor | Optional, 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.
/templates/:idPfad-Parameter
idstringRequiredTemplate-ID (z.B. tem_47TaFwzJx6mD7NeJYvLjFxVwbgT).
Request Body (alle optional)
namestringName der Vorlage. Maximal 191 Zeichen.
aliasstringAlias der Vorlage. Muss eindeutig sein, falls geändert. Darf nur Kleinbuchstaben (a-z), Zahlen (0-9), Unterstriche (_) und Bindestriche (-) enthalten. Maximal 191 Zeichen.
fromstringAbsender-E-Mail-Adresse im RFC-Format. Maximal 191 Zeichen.
subjectstringE-Mail-Betreffzeile. Maximal 191 Zeichen.
reply_tostring | string[]Antwort-E-Mail-Adresse(n).
htmlstringHTML-Inhalt für die E-Mail-Vorlage.
textstringNur-Text-Inhalt für die E-Mail-Vorlage.
editorstringEditor-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
aliaszu 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.
/templates/:idPfad-Parameter
idstringRequiredTemplate-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.
/templates/:id/publishPfad-Parameter
idstringRequiredTemplate-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:
- Das Ziel-Template erhält einen
published_at-Zeitstempel mit der aktuellen Zeit. - Alle anderen Templates mit demselben Alias bekommen ihren
published_at-Wert aufnullgesetzt (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.