Docs durchsuchen

Guides und API-Endpunkte durchsuchen

Referenz

Rendering

Rendert einen Block-Stapel serverseitig zu MJML + kompiliertem, responsivem HTML — die Live-Vorschau des Builders im Kundenportal, zustandslos und ohne etwas zu versenden. MJML-Templates unterstützen bedingte Abschnitte {{#param}}…{{/param}}, die nur bei nicht-leerem Wert rendern (optionale Elemente wie Logo oder AGB-Link verschwinden sonst).

Verfügbar
POST

/v1/render/preview

Rendert den übergebenen Stapel (blocks) mit seinen values serverseitig zu MJML und kompiliertem, responsivem HTML. Der MJML-Compiler läuft serverseitig (stub: false), das Ergebnis ist also fertiges, in jedem Mail-Client darstellbares HTML. Die Design-Regeln des Kunden werden dabei über das Code-Grundgerüst angewendet; Marken-Werte (Logo, Impressum) kommen aus den Kunden-Parametern. Bedingte MJML-Abschnitte {{#param}}…{{/param}} werden ausgewertet: Parameter ohne Wert werden aus dem gerenderten HTML weggelassen. Versendet nichts und legt nichts an — reine Vorschau für den Editor. Scope full.

Body-Parameter

NameTypPflichtBeschreibung
blocksobject[]erforderlichDer Stapel als Block-Refs ({ block_id, values }) — genau der Stand, den der Builder gerade hält. block_id ist die unveränderliche UUID des Blocks (aus GET /v1/blocks, Feld id), NICHT der slug. z. B. [{"block_id":"b1a2c3d4-5e6f-4a8b-9c0d-1e2f3a4b5c6d","values":{"headline":"Hi"}}]
valuesobjectoptionalGlobale Werte, die zusätzlich/überschreibend in die Block-Refs einfließen (z. B. eine Vorschau mit Beispieldaten). z. B. {"headline":"Vorschau-Titel"}

Request · Next.js

const res = await fetch(`https://api.newsletterkit.ventureon.io/v1/render/preview`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.NEWSLETTERKIT_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": crypto.randomUUID(),
    },
    body: JSON.stringify({
      blocks: [{"block_id":"b1a2c3d4-5e6f-4a8b-9c0d-1e2f3a4b5c6d","values":{"headline":"Hi"}}],
      values: {"headline":"Vorschau-Titel"},
    }),
});
const data = await res.json();

Response 200

{
  "data": {
    "mjml": "<mjml>…</mjml>",
    "html": "<!doctype html>…</html>",
    "errors": [],
    "stub": false
  },
  "request_id": "…"
}

Der MJML-Compiler läuft serverseitig — html ist fertiges, responsives HTML und stub ist immer false. errors listet etwaige MJML-Compiler-Warnungen/-Fehler (leeres Array bei sauberem Render). Bedingte Abschnitte {{#param}}…{{/param}} werden ausgewertet (Parameter ohne Wert werden weggelassen). Vorschau ist PII-frei und nicht abrechnungsrelevant — es wird keine E-Mail erzeugt.