Vorlage + JSON
Das Layout einmal speichern und nur noch Daten senden. Ideal für Dokumente, die Sie tausendfach erzeugen: Rechnungen, Zertifikate, Kontoauszüge. Mehr über PDF-Vorlagen mit Variablen und Schleifen.
Produkt
HTML to PDF API PDF Generation API Image Generation API PDF Template API URL to PDF API Markdown to PDF API EnterpriseAnwendungsfälle
Invoice PDF API Receipt Generation API Report Generation API Certificate Generation API Document Generation APIPDF Generation API
Eine REST-API für jedes PDF, das Ihr Produkt verschickt: aus einer Vorlage und JSON, rohem HTML, einer URL oder Markdown. Gerendert in Chromium, ausgeliefert als Link, Datei oder per Webhook.
Eine PDF-Generierungs-API ist ein Webdienst, den Ihre Anwendung aufruft, um PDF-Dokumente automatisch zu erzeugen. Sie schicken Inhalte — etwa eine Vorlagen-ID mit JSON-Daten, rohes HTML, eine URL oder Markdown —, und der Dienst rendert sie und liefert das fertige PDF zurück. Er ersetzt die PDF-Bibliothek oder den Headless-Browser, den Sie sonst selbst bauen, betreiben und pflegen würden.
| Eingaben | Vorlage + JSON, HTML + CSS, URL, Markdown |
|---|---|
| Ausgaben | PDF; PNG, JPEG oder WebP aus denselben Eingaben |
| Rendering-Engine | Engine 2026.4 auf Chromium (Chrome 153.0.8010.47), JavaScript standardmäßig aktiv |
| Renderzeit | Median 216 ms, p95 516 ms, p99 667 ms (Warteschlange + Verarbeitung, ohne Netzwerk)1 |
| Modi | Synchron, asynchron mit Webhooks, Stapel aus JSON oder CSV |
| Auslieferung | Signierte URL, Binärdaten, base64 oder Ihr eigener S3-kompatibler Bucket (Enterprise) |
| Zuverlässigkeit | Idempotenzschlüssel, signierte Webhooks mit 8 Zustellversuchen, automatische Wiederholung bei Browser-Abstürzen |
| Preis | Free: 50 Renderings/Monat. Bezahlt ab 15 €/Monat (jährlich abgerechnet) für 3.000 Renderings, automatisches Nachladen ab 6 € je 1.000 |
1. Gemessen über 1.664 erfolgreiche Renderings mit Engine 2026.4. total_ms = Zeit in der Warteschlange plus Verarbeitung im Worker, ohne API-Overhead und Netzwerkübertragung. p75 378 ms, p90 478 ms, Maximum 2.261 ms.
Wählen Sie die Eingabe, die zu dem Ort passt, an dem Ihre Inhalte schon liegen. Alle vier teilen sich Engine, Druckoptionen, Auslieferung und Webhooks — Sie können sie also in einem Produkt mischen.
Das Layout einmal speichern und nur noch Daten senden. Ideal für Dokumente, die Sie tausendfach erzeugen: Rechnungen, Zertifikate, Kontoauszüge. Mehr über PDF-Vorlagen mit Variablen und Schleifen.
Senden Sie Markup, das Ihre App schon rendert, und bekommen Sie es als PDF zurück — mit Kopfzeilen, Seitenzahlen und Webfonts. Siehe die HTML to PDF API.
Eine Live-Seite erfassen, nachdem ihr JavaScript fertig ist, auch hinter einem Login. Sie können jede Webseite in ein PDF verwandeln.
Dokus, Berichte und KI-Ausgaben, gestaltet mit einem Druck-Theme und standardmäßig bereinigt. Mehr zu Markdown to PDF.
Ein Ereignis in Ihrem Produkt — eine Zahlung, ein abgeschlossener Kurs oder ein Monatsabschluss — löst einen API-Aufruf aus.
Die Daten werden eingesetzt, die Seite lädt in Chromium, Skripte und Schriften werden fertig, und das PDF wird gedruckt.
In der Antwort, als signierter Link, in Ihrem Speicher-Bucket oder per Webhook angekündigt.
Jede Eingabe gibt es auch über einen einzigen Endpunkt, POST /v1/renders: input.type wählt Vorlage, HTML, URL oder Markdown, output.format wählt PDF oder ein Bildformat:
curl https://api.dynamicdocumentapi.com/v1/renders \
-H "Authorization: Bearer $DYNAMIC_DOCUMENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": { "type": "html", "html": "<h1>Welcome, {{ name }}</h1>" },
"data": { "name": "Acme Co." },
"output": { "format": "pdf", "pdf": { "paper": { "size": "Letter" } } },
"mode": "async",
"webhook": { "url": "https://example.com/hooks/pdf",
"events": ["render.succeeded", "render.failed"] }
}'
# 202 Accepted → { "id": "rnd_…", "status": "queued" }
const res = await fetch("https://api.dynamicdocumentapi.com/v1/renders", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DYNAMIC_DOCUMENT_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
input: { type: "html", html: "<h1>Welcome, {{ name }}</h1>" },
data: { name: "Acme Co." },
output: { format: "pdf", pdf: { paper: { size: "Letter" } } },
mode: "async",
webhook: { url: "https://example.com/hooks/pdf", events: ["render.succeeded", "render.failed"] },
}),
});
const { id, status } = await res.json(); // 202, status "queued"
import os
import requests
res = requests.post(
"https://api.dynamicdocumentapi.com/v1/renders",
headers={"Authorization": f"Bearer {os.environ['DYNAMIC_DOCUMENT_API_KEY']}"},
json={
"input": {"type": "html", "html": "<h1>Welcome, {{ name }}</h1>"},
"data": {"name": "Acme Co."},
"output": {"format": "pdf", "pdf": {"paper": {"size": "Letter"}}},
"mode": "async",
"webhook": {"url": "https://example.com/hooks/pdf",
"events": ["render.succeeded", "render.failed"]},
},
timeout=30,
)
render = res.json() # 202, render["status"] == "queued"
<?php
$ch = curl_init('https://api.dynamicdocumentapi.com/v1/renders');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('DYNAMIC_DOCUMENT_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'input' => ['type' => 'html', 'html' => '<h1>Welcome, {{ name }}</h1>'],
'data' => ['name' => 'Acme Co.'],
'output' => ['format' => 'pdf', 'pdf' => ['paper' => ['size' => 'Letter']]],
'mode' => 'async',
'webhook' => ['url' => 'https://example.com/hooks/pdf',
'events' => ['render.succeeded', 'render.failed']],
]),
]);
$render = json_decode(curl_exec($ch), true); // 202, status "queued"
„Dynamisch" heißt, dass sich das Dokument mit den Daten ändert, nicht nur die Werte darin. Eine Vorlage bestimmt, was erscheint, wie oft und in welchem Format:
Ein PDF zu erzeugen ist leicht. Jedes Mal das richtige PDF zu erzeugen — unter Last, mit Wiederholungen und ohne Duplikate —, das ist der Teil, den Teams unterschätzen.
Standardmäßig synchron. Dauert ein Rendering länger als das Sync-Limit Ihres Tarifs, antwortet die API mit 202 und arbeitet weiter, statt zu scheitern. Nutzen Sie "mode": "async" für lange Aufträge und Stapel für Tausende Dokumente aus einer Vorlage.
Webhooks folgen dem Format Standard Webhooks: HMAC-SHA256-Signaturen in webhook-signature, mit Zeitstempel gegen Wiedereinspielen. Eine Zustellung, die Ihr Server nicht annimmt, wird bis zu achtmal über etwa 28 Stunden versucht und lässt sich von Hand erneut auslösen.
Senden Sie einen Idempotency-Key-Header, etwa Ihre Rechnungsnummer. Eine wiederholte Anfrage innerhalb von 24 Stunden liefert das ursprüngliche Rendering statt eines zweiten Dokuments.
Testschlüssel rendern kostenlos mit dem Wasserzeichen „TEST" und bewahren Dateien einen Tag auf — Entwicklung und CI berühren so weder Ihr Kontingent noch die Dokumente Ihrer Kunden.
Headless Chrome selbst zu betreiben ist eine vernünftige Wahl. Es ist aber mehr Arbeit, als der erste Prototyp vermuten lässt. Das gehört zu jedem Teil.
| Bereich | Selbst gebaut mit Headless Chrome | Dynamic Document API |
|---|---|---|
| Erstes PDF | Ein Tag mit Puppeteer oder Playwright | Minuten mit einem API-Schlüssel |
| Produktivdienst | Warteschlange, Worker-Pool, Zeitlimits, Dateispeicher, signierte Links, Webhooks | Inklusive |
| Browser-Updates | Chrome bringt alle vier Wochen eine neue Hauptversion; Sie testen und verteilen jede davon | Wir testen Engine-Versionen und legen sie fest |
| Schriften und Darstellungsfehler | Fehlende Schriften, Ersatzzeichen, abgeschnittene Tabellenzeilen, zu spät geladene Diagramme | Schriftladen, Wartebedingungen und Seitenumbrüche eingebaut |
| Sicherheit | Den Zugriff auf interne Netze aus fremdem HTML zu sperren, liegt bei Ihnen | Private und interne Adressen bei jedem Abruf gesperrt |
| Vorlagen | Vorlagen im Code, ausgerollt mit Ihrer App | Versionierte Vorlagen mit Rückkehr zu älteren Versionen, änderbar ohne Deployment |
| Am besten, wenn | Daten Ihr Netzwerk nie verlassen dürfen oder das Volumen sehr hoch und gleichmäßig ist | Sie zuverlässige PDFs wollen, ohne Browser zu betreiben |
Growth (47 €/Monat, 15.000 Renderings), Pro (119 €/Monat, 50.000) und Scale (319 €/Monat, 200.000) werden jährlich abgerechnet; Enterprise beginnt bei 1.500 €. Geht ein Bezahltarif zur Neige, werden automatisch 1.000 Renderings für 6 € bis 2 € je 1.000 nachgeladen — eine Pipeline hält am Monatsende also nie an. Siehe die vollständigen Preise, oder sprechen Sie mit dem Vertrieb über höhere Volumen.
FAQ
HTML zu PDF ist ein Weg, ein PDF zu erzeugen: Sie senden fertiges Markup. Eine PDF-Generierungs-API übernimmt die ganze Aufgabe: Sie füllt auch gespeicherte Vorlagen mit JSON, erfasst URLs und wandelt Markdown um — und bringt mit, was der Produktivbetrieb braucht, etwa asynchrone Aufträge, Webhooks, Stapel und die Auslieferung der Dateien.
Der Free-Tarif umfasst 50 Renderings im Monat. Bezahltarife beginnen bei 3.000 Renderings im Monat für 15 € bei jährlicher Abrechnung und reichen bis 200.000 bei Scale; Enterprise beginnt bei 1.000.000. Geht ein Bezahltarif zur Neige, werden automatisch 1.000 Renderings zum Nachladepreis des Tarifs hinzugefügt. Im Free-Tarif beginnen Renderings-Pakete bei 50 € für 10.000 Renderings.
Ja. Ein Stapel nimmt eine Vorlage und eine Liste von Einträgen oder eine CSV-Datei und erzeugt ein PDF pro Eintrag. Fortschritt und Abschluss kommen per Webhook, fehlgeschlagene Einträge lassen sich einzeln wiederholen, und alle PDFs können zu einer Datei zusammengefügt werden. Stapel gibt es in Bezahltarifen.
Sie bekommen einen Fehler mit maschinenlesbarem Code — etwa einen Vorlagenfehler mit Zeile und Spalte, einen Navigationsfehler oder eine Zeitüberschreitung — plus einen render.failed-Webhook, falls Sie ihn abonniert haben. Browser-Abstürze werden automatisch in einem frischen Browser wiederholt. Fehler in Ihrer Vorlage oder Ihren Daten werden nicht wiederholt, weil das Ergebnis dasselbe wäre.
Render-Nutzdaten und erzeugte Dateien bleiben in der Region des API-Hosts, den Sie aufrufen. Dateien werden über signierte, ablaufende Links ausgeliefert, und Sie bestimmen, wie viele Tage sie aufbewahrt werden — bis zum Maximum Ihres Tarifs.
Ja. Jede Eingabe, die ein PDF erzeugt, kann auch PNG, JPEG oder WebP erzeugen — etwa ein Zertifikat als druckbares PDF und als Bild zum Teilen oder einen Screenshot einer URL.
50 Renderings im Monat im Free-Tarif, ohne Kreditkarte, automatisches Nachladen in Bezahltarifen, kein Browser zu betreiben.
Kostenlos starten