Alle Antworten auf einen Blick
Nachgestellt am 09.10.2026 mit einer erfundenen Formular-ID. Sendet ein normales HTML-Formular, antwortet Formspree mit einer HTML-Seite. Schickt Ihr Code Accept: application/json, kommt JSON zurück. Derselbe Fehler hat also zwei Texte.
| Was Sie sehen | Wie gesendet wurde | Ursache |
|---|---|---|
{"error":"Form not found","errors":[{"code":"FORM_NOT_FOUND","message":"Form not found"}]} (404) | fetch mit JSON | Falsche oder gelöschte Formular-ID |
| Seite: „Form not found. Please check the form hashid“ | HTML-Formular | Falsche oder gelöschte Formular-ID |
| Seite: „Form should POST. Make sure your form has the method="POST" attribute“ | Link, oder Formular ohne method | Der Browser hat GET gesendet |
{"error":"Please submit POST request."} (405) | fetch mit GET | Der Browser hat GET gesendet |
{"error":"Invalid \"Referer\" header"} (400) | Alte Adresse formspree.io/you@example.com | Die Anfrage kam ohne Seitenadresse |
{"error":"This form isn't set up yet"} (404) | Alte Adresse formspree.io/you@example.com | Zu dieser Adresse gibt es in Formspree kein Formular |
„Form not found“: Die Formular-ID stimmt nicht
Jedes Formspree-Formular hat einen Endpunkt wie https://formspree.io/f/xxxxxxxx. „Form not found“ bedeutet, dass der Teil hinter /f/ zu keinem Formular in irgendeinem Konto passt. Die häufigsten Gründe:
- ein Tippfehler, oder der Platzhalter
YOUR_FORM_IDaus einem Tutorial oder von einem KI-Baukasten steht noch im Code; - das Formular wurde gelöscht oder in einem anderen Formspree-Konto angelegt;
- eine Umgebungsvariable enthält die ID lokal, ist auf der Live-Seite aber leer, und die URL endet auf
/f/undefined.
Kopieren Sie den Endpunkt noch einmal von der Seite des Formulars im Formspree-Dashboard und setzen Sie die ganze URL in das action des Formulars ein.
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST"> <label>Email <input type="email" name="email" required></label> <label>Message <textarea name="message" required></textarea></label> <button type="submit">Send</button> </form>
„Form should POST“: method="POST" ergänzen
Ein HTML-Formular ohne method sendet GET: Der Browser hängt die Felder an die URL und öffnet sie. Formspree nimmt nur POST an und zeigt deshalb „Form should POST“. Dieselbe Seite erscheint, wenn Sie den Endpunkt in einem Browser-Tab öffnen. Ergänzen Sie method="POST" im Formular. Mit fetch setzen Sie method: "POST", sonst kommt {"error":"Please submit POST request."} zurück.
„Invalid Referer header“ und „This form isn't set up yet“
Ältere Anleitungen schicken das Formular an https://formspree.io/you@example.com. Unter dieser Adresse antwortete Formspree mit Invalid "Referer" header, wenn die Anfrage keine Seitenadresse mitbrachte, und mit This form isn't set up yet, wenn sie eine hatte. In beiden Fällen wird nichts zugestellt. Legen Sie in Formspree ein Formular an und verwenden Sie dessen /f/-Endpunkt statt einer E-Mail-Adresse.
Mit fetch erst die Antwort lesen, dann Erfolg melden
Von KI gebaute Formulare senden oft per fetch und zeigen „Danke!“, egal was zurückkommt. Bei einer falschen ID antwortet Formspree mit 404, und der Besucher sieht trotzdem die Dankesmeldung. In unserem Test von 105 KI-gebauten Websites meldeten 27 Formulare Erfolg und sendeten nichts (die Studie). Schicken Sie Accept: application/json mit, prüfen Sie response.ok und zeigen Sie sonst den error-Text von Formspree an.
const response = await fetch("https://formspree.io/f/YOUR_FORM_ID", {
method: "POST",
headers: { Accept: "application/json" },
body: new FormData(form),
});
const data = await response.json();
if (!response.ok) throw new Error(data.error); // e.g. "Form not found"
showSuccess();Wenn Sie ohnehin wechseln
Formgong funktioniert nach demselben Prinzip: Das Formular sendet an eine URL mit einem Schlüssel, und die Antwort lautet "success": true oder sagt, was nicht stimmt. Unterschiede gibt es dort, wo es für kleine Websites zählt: Telegram-Benachrichtigungen schon im kostenlosen Tarif, 1.000 Einsendungen pro Monat, Datenspeicherung in der EU und Seiten in 12 Sprachen. Siehe Formgong vs. Formspree und die HTML-Anleitung. Für den Wechsel ändern Sie das action und ergänzen <input type="hidden" name="access_key">. Unser Endpunkt ist https://formgong.com/submit.
Alles in einem Konto. Feedback erwünscht
Mit einem Formgong-Konto bekommen Sie neben dem Kontaktformular, das an E-Mail und Telegram sendet, auch kostenlose Website-Vorlagen (auf Englisch), in denen das Formular schon angeschlossen ist, einen KI-Hilfe-Chat, der Fragen Ihrer Besucher aus Ihren eigenen Seiten beantwortet, und Kundenbewertungen zum Sammeln und Anzeigen. Anfragen landen in einem Posteingang. Jedes dieser Produkte hat einen kostenlosen Tarif.
Fehlt Ihnen auf dieser Seite etwas, oder ist etwas unklar? Schreiben Sie uns an support@formgong.com. Wir lesen jede Nachricht und verbessern die Seite danach.
Häufig gestellte Fragen
Was bedeutet „Form not found“ bei Formspree?
Die ID hinter /f/ im action Ihres Formulars passt zu keinem Formular. Kopieren Sie den Endpunkt erneut aus dem Formspree-Dashboard und prüfen Sie, dass die URL auf der Live-Seite nicht auf /f/undefined endet.
Warum sagt Formspree „Form should POST“?
Dem Formular fehlt method="POST", oder Sie haben den Endpunkt als Link geöffnet. Ergänzen Sie method="POST" im form-Tag.
Funktioniert formspree.io/meine@email.de noch?
In unserem Test lieferte dieses Adressformat „Invalid Referer header“ oder „This form isn't set up yet“. Legen Sie ein Formular an und verwenden Sie seinen /f/-Endpunkt.
Woran erkenne ich, dass ein Formspree-Formular wirklich gesendet hat?
Senden Sie mit fetch den Header Accept: application/json und zeigen Sie Erfolg nur, wenn response.ok true ist. Schicken Sie danach eine Testnachricht und suchen Sie sie im Formspree-Dashboard.
Quellen und Dokumentation
Offizielle Quellen zu dieser Anleitung: Formspree: Help Center, MDN: das method-Attribut von form, MDN: Fetch API verwenden. HTML-Kontaktformular, wo die Daten gespeichert werden.
Verwandte Anleitungen
- Lovable-Formular an E-Mail und Telegram senden
- HTML-Kontaktformular ohne Backend: ein funktionierendes Beispiel
- So senden Sie Website-Einsendungen an Telegram
- Kontaktformular sendet keine E-Mail? So finden Sie die Ursache
- Website-Leads in Telegram verwalten – ohne CRM
- Formular-Backend für KI-Websites: Lovable, Bolt, v0, Cursor
- Telegram-Bot fürs Kontaktformular: selbst bauen?
- Formular-Backend und DSGVO: 7 Prüfpunkte
- Kontaktformular-Spamschutz ohne Captcha
- Mailto-Formular in HTML: warum es scheitert
- HTML-Formular in Google Sheets: 2 kostenlose Wege
- Webflow-Formular-Limit: was tun nach 50?
- Turnstile vs. reCAPTCHA vs. hCaptcha im Vergleich
- Contact Form 7 und Elementor an Telegram senden
- Squarespace-Formular sendet keine E-Mail?
- Shopify-Kontaktformular: Wohin gehen Mails?
- Google Formular an Telegram: kostenlos
- Wix-Kontaktformular sendet keine E-Mail?
- EU-/DSGVO-Formspree-Alternativen im Vergleich
- WordPress-Kontaktformular ohne Plugin
- Kontaktformulare, die nichts senden: 793 KI-Websites im Test
- Web3Forms-Fehler: „Invalid access key“ und 403 erklärt
- Kundenbewertungen kostenlos auf der Website einbinden
- Kontaktformular „Failed to fetch“: Ursachen und Lösungen
- WooCommerce-Produktanfrageformular
- Contact Form 7 oder WPForms
- Gravity Forms Alternative kostenlos
- WordPress Kontaktformular kostenlos
- Formular-Mails landen im Spam: die Lösung
- HTML-Formular sendet nicht ab: die fünf Schalter
- Kontaktformular funktioniert nicht: Fehler finden