Funktion
Die Render-API
Ein Endpunkt nimmt eine Vorlage und JSON und antwortet mit einer signierten URL. Alles darum herum gibt es, damit dieser Endpunkt unter Last, bei Wiederholungen und in einem Jahr noch funktioniert.
Kostenloser Plan mit 100 Einheiten im Monat, keine Kreditkarte

Synchron, asynchron und im Batch
Eine einzelne Rechnung kommt in der Antwort zurück. Ein hundertseitiger Bericht wird eingereiht und über einen Webhook gemeldet. Tausend Zertifikate gehen in einen Batch, der in einem Zip endet.
curl -X POST https://api-eu.formfeed.dev/v1/renders/batch \
-H "Authorization: Bearer ff_live_..." \
-H "Content-Type: application/json" \
-d '{"template": "certificate", "zip": true, "items": [{"data": {"name": "Jane Doe"}}]}'Für Wiederholungen gebaut
- Idempotenz-Schlüssel. Eine Anfrage, die innerhalb von 24 Stunden mit demselben Idempotency-Key wiederholt wird, erhält die ursprüngliche Antwort statt eines zweiten Renderings.
- Deduplizierung. Eine Live-Anfrage, die einer in den letzten 24 Stunden gerenderten gleicht, erhält deren Datei zu null Einheiten. Test-Schlüssel,
url-Renderings, Post-Processing und Batch-Einträge rendern immer. - Rate-Limit-Header. Anfragen, die Arbeit auslösen, etwa Renderings, Batches und PDF-Werkzeuge, antworten mit Limit, Rest und Reset; ein 429 trägt Retry-After. Das Limit gilt pro Workspace und richtet sich nach dem Plan.
- Problem Details. Fehler folgen RFC 9457 mit stabilem Code und, bei Vorlagenfehlern, Zeile und Spalte.
- Erst prüfen. Mit validate_data wird die Anfrage gegen das gespeicherte Schema der Vorlage geprüft und mit einer Fehlerliste abgewiesen, bevor gerendert oder gezählt wird.
PDF-Werkzeuge in derselben Anfrage
Der post-Block eines Renderings hängt weitere PDFs an, bringt ein Text- oder Bild-Wasserzeichen auf und verschlüsselt das Ergebnis mit AES-256; dieselben Werkzeuge laufen über eigene Endpunkte auf gespeicherten Ausgaben, und ein Endpunkt zum Umwandeln macht aus Word-, Excel-, PowerPoint- und OpenDocument-Dateien ein PDF (Office-Umwandlung). Bilder kommen als PNG, JPG oder WebP. Post-Processing und Umwandlung gibt es ab Starter.
Webhooks, die sich prüfen lassen
Endpunkte erhalten signierte Ereignisse für fertige und fehlgeschlagene Renderings und Batches und, wenn sie sie abonnieren, Kontingentwarnungen. Die Signatur ist ein HMAC über den rohen Body mit Zeitstempel, und beide SDKs prüfen sie in einem Aufruf. Eine Zustellung wird bis zu sechsmal über etwa 14,5 Stunden versucht, die App zeigt jede mit ihrem Status und ihren Versuchen, und das Kommandozeilenwerkzeug leitet Ereignisse an localhost weiter, während Sie den Empfänger bauen. Ein Empfänger, der die Signatur in konstanter Zeit prüft, ist ausgeschrieben für Go, PHP, C#, Java und Ruby.
Batches aus einer Tabelle
Nicht jeder Batch beginnt im Code. Laden Sie in der App eine CSV- oder Excel-Datei hoch, ordnen Sie die Spalten den Feldern der Vorlage zu und laden Sie das Zip herunter.

Reproduzierbare Ausgabe
Ein Rendering speichert die Vorlagenversion mit ihrer Prüfsumme, den Chromium-Build und den SHA-256 der Datei. Dieselben Eingaben ergeben mit demselben Chromium-Build dasselbe Dokument; die Datei trägt die Zeit ihrer Entstehung, jedes Rendering hat also seinen eigenen Hash. Neben einer archivierten Rechnung aufbewahrt, belegen die beiden Prüfsummen, welche Vorlagenversion sie erzeugt hat und dass die Datei seither nicht verändert wurde. Einzelheiten stehen in der Dokumentation zum Rendern.
Kopien im eigenen Bucket
Ab Pro kann ein Workspace einen Bucket bei Amazon S3, Cloudflare R2 oder einem S3-kompatiblen Anbieter verbinden (Hetzner, IONOS, Scaleway, Wasabi, Backblaze B2, MinIO, Google Cloud Storage), und jedes Dokument landet zusätzlich dort, unter einer Schlüsselvorlage Ihrer Wahl oder dem Schlüssel, den eine Anfrage nennt. Formfeed schreibt nur in den Bucket und liest oder löscht dort nie, und es testet den Schlüssel, bevor es ihn speichert. Vorübergehende Fehler werden im Hintergrund wiederholt; nach fünf Fehlern in Folge, die keine Wiederholung behebt, etwa bei einem widerrufenen Schlüssel, pausiert die Verbindung, und Inhaber und Admins erhalten eine E-Mail. Funktioniert der Schlüssel wieder, sendet „Fehlgeschlagene Zustellungen wiederholen“ die verpassten Dokumente, die Formfeed noch aufbewahrt. Die eigene Kopie bleibt für die Aufbewahrungsdauer des Workspace erhalten, Download-Links funktionieren also weiter. Einrichtung und Berechtigungen stehen in der Dokumentation zum eigenen Speicher.
Clients
SDKs für TypeScript und Python, ein Kommandozeilenwerkzeug, ein OpenAPI-Dokument und ein Server für das Model Context Protocol für KI-Agenten. Alle sprechen dieselben Endpunkte, nichts ist einem Client vorbehalten. Ohne SDK ist die API ein POST mit JSON-Body: Die Guides je Sprache enthalten vollständige Programme für PHP, Go, C#, Java, Ruby und curl neben Node.js und Python.