Die EchtPost-API verschickt echte Postkarten aus CRM, Shop oder Workflow – per HTTP-Request, mit echter Briefmarke.
api.echtpost.de/v2card.sent-Webhook nach VersandFür Onboarding, Reaktivierung und Geburtstagsgrüße.
Jan hat die Anbindung an unser CRM an einem Nachmittag erledigt. Eine halbe Stunde Doku lesen, ein erster API-Call mit der eigenen Adresse als Empfänger – zwei Tage später lag die Karte in seinem Briefkasten. Genauso soll das laufen, egal ob du selbst Code schreibst oder jemanden vorbeischickst, der das für dich tut.
Drei Beispiele, die wir in der Wildnis gesehen haben:
Du brauchst dafür keinen Druckerei-Vertrag, keine Vorratshaltung und kein Auge auf Briefmarken. Nur einen Auslöser in deinem System – den Rest übernehmen wir. Mehr dazu, wie das im Kundenbindungs-Mix aussieht, haben wir an anderer Stelle aufgeschrieben.
Kein Sales-Termin vorab, kein Freischaltungs-Ticket, kein Schluck Wasser zwischen Klick und Karte:
api.echtpost.de/v2, oder aus einem Workflow-Tool deiner Wahl. Du schickst uns Empfänger, Motiv und Text – mehr brauchen wir nicht.card.sent-Event per Webhook – mehr Status-Geräusch brauchst du in der Regel nicht.Sobald dein Account angelegt ist, liegt der API-Key im Konto. Kein Anruf, kein Wartezimmer.
Solange eine Karte noch nicht im Druck ist, kannst du sie per API wieder zurückziehen. Falsche Adresse, falscher Tag – kein Problem.
Du übergibst Empfänger einzeln, als Liste oder als Gruppen-ID – ein API-Call, beliebig viele Karten. Adressen können bei uns gespeichert oder ad-hoc mitgeschickt werden.
Sobald wir die Karte an die Post übergeben haben, schicken wir dir ein card.sent-Event mit Signatur. Kein Polling, kein Erraten, ob's raus ist.
Jede Karte bekommt eine echte Briefmarke – sie wird als persönliche Post wahrgenommen, nicht als Werbung.
Pro Karte gibst du an, wann wir sie in Druck geben sollen. Praktisch für Geburtstags-Workflows: API-Call jetzt, Druck ein paar Tage vor dem Termin – Postlaufzeit eingerechnet.
Wir haben uns für zwei klare API-Pfade entschieden, statt fünf halbgare anzubieten. Welcher zu dir passt, hängt davon ab, wer im Team Layout und Text pflegt.
Du legst Motiv, Layout und Wunschtext einmalig als Template im EchtPost-Account an. Marketing pflegt das Template; aus dem Code feuerst du nur noch die template_id plus die Empfänger.
Wir nennen das den „Marketing-Mode“: Wer Text oder Bild ändern will, klickt sich das im Account zusammen – kein Deploy, kein Ticket an die IT.
curl -X POST https://api.echtpost.de/v2/cards/from_template \
-H "Authorization: Bearer $ECHTPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_id": 12345,
"recipients": [
{
"firstname": "Anna",
"lastname": "Müller",
"street": "Hauptstraße 1",
"zipcode": "10115",
"city": "Berlin",
"country": "DE"
}
],
"deliver_at": "2026-06-21"
}'
Du übergibst alles in einem Request: Motiv, Text und Empfänger. Maximale Flexibilität, ein Call pro Karte – ideal, wenn der Text ohnehin dynamisch aus deinem System kommt (Bestellnummer, Vorname, Lieblingsprodukt).
Optional schickst du den Text vorher gegen cards/preview_fit – dann weißt du, ob er auf die Karte passt, bevor du den Request zur Erstellung der Karte abschickst.
curl -X POST https://api.echtpost.de/v2/cards \
-H "Authorization: Bearer $ECHTPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"motive_id": 789,
"content": "Hallo Anna,\n\nschön, dass du dabei bist!\nViele Grüße aus Köln,\nMoritz",
"recipients": [
{
"firstname": "Anna",
"lastname": "Müller",
"street": "Hauptstraße 1",
"zipcode": "10115",
"city": "Berlin",
"country": "DE"
}
]
}'
Funktioniert genauso. Unsere REST-API ist eine ganz normale HTTPS-Schnittstelle – n8n, Zapier oder Make rufen sie über deren generische HTTP-Schritte auf. Ein Make-Szenario, das täglich Bestellungen ausliest und pro Treffer einen Request gegen api.echtpost.de/v2/cards/from_template schickt, ist in einer halben Stunde gebaut. Code im klassischen Sinn schreibst du dafür keinen, ein bisschen JSON und ein paar Variablen aber schon.
Du arbeitest mit Claude, Cursor oder ChatGPT? Dann kannst du unseren MCP-Server einbinden und Postkarten direkt aus dem Chat verschicken. Mehr dazu auf Postkarten MCP – die Seite kommt mit eigenem Brief, hier nehmen wir's nur als Teaser.
Account anlegen dauert eine Minute, der API-Key liegt direkt im Konto. Wenn dir die Doku unterwegs Englisch wird – willkommen im Club, Marken-Englisch ist nun mal Standard – melde dich, dann gehen wir das gemeinsam durch.
Sofort. Account anlegen dauert eine Minute, der Key liegt direkt im Konto-Bereich. Kein Freischaltungs-Termin, kein Sales-Anruf vorab. Wer MCP nutzen will, kann den Server an derselben Stelle aktivieren.
Eine feste Zahl gibt es nicht – wir zählen keine Zeichen, wir messen Zeilen. Für den Text ist auf der Rückseite ein Feld von 72 × 91 mm reserviert. Was da reinpasst, hängt an drei Dingen: Schriftart, Schriftgröße und deiner Formatierung. Vor allem an den Absätzen: Eine Leerzeile kostet zwei Zeilen, und jeder Absatz endet mit einer angebrochenen. Derselbe Text mit vier Absätzen braucht deutlich mehr Platz als am Stück – und ohne Absätze willst du keine Postkarte verschicken, das liest niemand gern.
Zur Orientierung, gemessen mit deutschem Fließtext:
| Schriftart | Größe | Zeilen | Text am Stück | Karte mit Anrede und zwei Absätzen |
|---|---|---|---|---|
| Architects Daughter | 12 | 19 | ca. 450 Zeichen | ca. 290 Zeichen |
| Architects Daughter (Standard) | 13 | 18 | ca. 400 Zeichen | ca. 240 Zeichen |
| Architects Daughter | 14 | 17 | ca. 320 Zeichen | ca. 190 Zeichen |
| Reenie Beanie | 15 | 11 | ca. 390 Zeichen | ca. 200 Zeichen |
| Reenie Beanie | 16 | 11 | ca. 340 Zeichen | ca. 180 Zeichen |
| Reenie Beanie | 17 | 10 | ca. 280 Zeichen | ca. 110 Zeichen |
| Special Elite | 11 | 15 | ca. 480 Zeichen | ca. 310 Zeichen |
| Special Elite | 12 | 14 | ca. 400 Zeichen | ca. 260 Zeichen |
| Special Elite | 13 | 13 | ca. 350 Zeichen | ca. 230 Zeichen |
„Am Stück“ ist ein Block ohne eigene Absätze, nur mit automatischem Umbruch. Die letzte Spalte ist die realistische: Anrede, Leerzeile, zwei Absätze, Leerzeile, Grußformel. Wenn du einem LLM ein Zeichen-Budget vorgeben willst, nimm diese Spalte – bei den Standardeinstellungen also rund 240 Zeichen.
Ein Detail, das leicht untergeht: {anrede} wird erst beim Druck durch die echte Anrede des Empfängers ersetzt. „Hallo Max“ sind neun Zeichen, „Sehr geehrte Frau Müller-Lüdenscheidt“ 37. Bei einem Mailing an viele Empfänger entscheidet die längste Anrede im Request darüber, ob der Text passt.
Mit POST /v2/cards/preview_fit. Du schickst Text und Schrifteinstellungen hin und bekommst zurück, ob es passt (fits), wie viele Zeilen belegt sind (lines_used von max_lines) und, falls nicht, ab welcher Zeile es überläuft plus eine suggested_font_size, mit der es passen würde. Beginnt dein Text mit {anrede}, gib zusätzlich ein sample_greeting mit – sonst rechnen wir mit einer langen Beispielanrede.
Kommt der Text aus einem LLM, ist das der Weg: generieren, gegen preview_fit halten, bei fits: false einmal kürzen lassen. Das Modell braucht dafür kein Zeichen-Gefühl, es braucht nur die Antwort des Endpunkts.
Falls du die Prüfung überspringst, prüft POST /v2/cards selbst: Wir messen den Text gegen jeden Empfänger im Request – mit dessen echter Anrede – und antworten mit 422 und dem Slug text-does-not-fit, wenn er bei einem davon nicht passt. Dazu die betroffene contact_id und dieselbe suggested_font_size. Eine abgeschnittene Karte kann dir auf diesem Weg also nicht passieren.
Bei cards/from_template messen wir nicht nach: Dort hast du Motiv, Text und Umbrüche im Editor schon gesehen. Genau deshalb ist die Vorlage der ruhigere Weg, wenn der Text gleich bleibt und nur die Anrede wechselt. Wenn du darin {anrede} nutzt, lass im Editor Platz für eine lange Anrede.
Zwei feste. Das content_ps – das P.S. – wird als einzelne Fußzeile gedruckt und ist deshalb auf 40 Zeichen begrenzt; darüber kommt ein 422. Legst du einen QR-Code auf die Karte, hat der Begleittext (qr_code_message) maximal 70 Zeichen. Emojis nehmen wir in keinem Textfeld an – die Kartenschriften enthalten sie nicht, im Druck bliebe eine Lücke.
Nicht zwingend. Über generische Workflow-Tools wie n8n, Zapier oder Make kannst du unsere API in ein paar Klicks anbinden. Wer mit Claude oder ChatGPT arbeitet, hängt unseren MCP-Server dran. Wer es lieber selbst baut, findet eine vollständige REST-API.
Ja – entweder über die genannten Workflow-Tools, die alle gängigen CRMs anbinden, oder direkt über die API. Falls ein Datenfeld bei dir anders heißt als bei uns: melde dich, wir gehen das Feld-Mapping gemeinsam durch.
MCP (Model Context Protocol) ist ein offener Standard, mit dem AI-Tools wie Claude oder ChatGPT auf externe Systeme zugreifen. Unser MCP-Server macht die EchtPost-API direkt im Chat nutzbar: „Schick Anna eine Geburtstagskarte“ – und es passiert. Wer keine KI-Agenten einsetzt, braucht MCP nicht.
Die API-Doku ist Englisch. Dieses Marketing, der Support und der Vertrag sind Deutsch. Wenn dir das Englisch im Weg steht, melde dich – wir helfen weiter.
Stückpreis je nach Volumen und Format, ab kleinen einstelligen Euro-Beträgen. Keine Setup-Gebühr, keine Mindestabnahme. Die genaue Staffel findest du auf der Preisseite.
Werktäglich produzieren wir die Karten, am Folgetag übergeben wir sie an die Post. Innerhalb Deutschlands rechnest du danach mit den üblichen 1–3 Werktagen – mehr versprechen können wir nicht, weil ab Versand die Post übernimmt.
Ja. Beim Anlegen eines API-Schlüssels wählst du zwischen Live und Sandbox; der Sandbox-Schlüssel trägt das Präfix ep_test_. Alles, was du damit erzeugst – Karten, Kontakte, Gruppen – liegt getrennt von deinen Live-Daten: nichts wird abgerechnet, nichts geht in den Druck. Ein Live-Schlüssel sieht die Testdaten nicht und umgekehrt. Wenn du fertig bist, löschst du die Sandbox-Daten des Kontos mit einem Klick in den Einstellungen.
Der Modus steckt fest im Präfix und lässt sich später nicht umstellen – für den Produktivbetrieb legst du also einen zweiten, echten Schlüssel an. Wenn du zusätzlich das Verhalten bei leerem Guthaben testen willst, kannst du es in der Sandbox gezielt auslösen; wie das geht, steht in der API-Doku.
Monatliche Rückvergütung für Geschäftskunden: ab 10 Karten 0,50 Euro pro Karte, ab 50 Karten 0,65 Euro pro Karte. So funktioniert die Rückvergütung
Eine Postkarte an viele Empfänger gleichzeitig. Je mehr Karten, desto günstiger der Stückpreis. Alle Mailing-Rabatte einsehen
Alle Preise sind inklusive einer echten, aufgeklebten Briefmarke.
Mehr SaaS-Use-Cases mit Postkarten – von Onboarding bis Reaktivierung – findest du auf unserer Customer-Lifecycle-Seite.
Wie sich Postkarten in deine bestehende Automation-Strecke einfügen – ohne dass dein Stack umgebaut werden muss.
Den Klassiker – Geburtstagspost per CRM-Trigger – kann die API genauso oder du nutzt unsere fertige Geburtstags-Funktion.
Du erreichst uns
in unserem Kölner Büro
unter 0221 - 177 383 93.
Nutz unser Kontaktformular
um uns eine Nachricht zu hinterlassen.
Wähl einen dir
passenden Termin und wir
melden uns telefonisch.