Creating your first form
Formkove gives you a hosted submission endpoint in seconds: no form builder, no drag-and-drop. You bring your own frontend; Formkove handles what comes after the POST.
Step 1: Create a form
Section titled “Step 1: Create a form”From the Formkove dashboard, click New form. Give it a name. You now have a live endpoint.
Your endpoint URL follows this pattern:
https://app.formkove.com/api/forms/{YOUR_FORM_ID}/submissionsStep 2: Add it to your site
Section titled “Step 2: Add it to your site”Point your HTML form at your Formkove endpoint:
<form action="https://app.formkove.com/api/forms/form_abc123/submissions" method="POST"> <input name="email" type="email" required /> <textarea name="message"></textarea> <button type="submit">Send</button></form>Works with plain HTML, React, Vue, Next.js, or any framework that speaks HTTP.
See framework examples →
Special Form Fields
Section titled “Special Form Fields”You can include special fields to customize how visitor data is processed:
| Field | Description |
|---|---|
email / replyto / reply_to / reply-to / _replyto |
Visitor’s email address, set as the Reply-To header in notification emails. |
YOUR_HONEYPOT_NAME |
A custom honeypot field name configured in your form’s dashboard settings. Add a matching input hidden via CSS (e.g. <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">) to trap bots. |
[!NOTE]
- Redirects: Custom redirects must be appended as a query parameter (e.g.
?redirect=https://yoursite.com/thank-you) to your form’sactionURL, and the target domain must be allowlisted in the form’s Allowed Origins & Redirects dashboard settings. Passingredirectinside the form body as an input field is not supported.- Email Subjects: Notification email subjects are automatically formatted as
New Submission for "[Form Name]"and cannot be overridden by form fields.
Styled Example (Tailwind CSS)
Section titled “Styled Example (Tailwind CSS)”<div class="flex items-center min-h-screen bg-gray-50"> <div class="container mx-auto"> <div class="max-w-md mx-auto bg-white p-6 rounded-md shadow-sm"> <h1 class="text-2xl font-semibold text-gray-700 mb-4">Contact Us</h1>
<!-- Note the custom redirect query parameter in the action URL --> <form action="https://app.formkove.com/api/forms/YOUR_FORM_ID/submissions?redirect=https://yoursite.com/thank-you" method="POST"> <!-- Custom honeypot field (assumes '_gotcha' is configured in dashboard Settings) --> <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
<div class="mb-4"> <label for="name" class="block text-sm text-gray-600 mb-1">Full Name</label> <input type="text" name="name" id="name" required class="w-full px-3 py-2 border border-gray-300 rounded-md"> </div>
<div class="mb-4"> <label for="email" class="block text-sm text-gray-600 mb-1">Email</label> <input type="email" name="email" id="email" required class="w-full px-3 py-2 border border-gray-300 rounded-md"> </div>
<div class="mb-4"> <label for="message" class="block text-sm text-gray-600 mb-1">Message</label> <textarea name="message" id="message" rows="4" required class="w-full px-3 py-2 border border-gray-300 rounded-md"></textarea> </div>
<button type="submit" class="w-full py-2 px-4 bg-indigo-600 text-white rounded-md">Send Message</button> </form> </div> </div></div>Step 3: Configure notifications
Section titled “Step 3: Configure notifications”From the form settings in your dashboard, add the email addresses that should receive notifications. Each address gets a verification email and starts receiving notifications once it’s confirmed. Pro and Agency can also send submissions to Slack, Discord, Google Sheets, and webhooks (including Zapier, Make and n8n).
See all integrations →
Step 4: Set up spam protection
Section titled “Step 4: Set up spam protection”Every form gets rate limits, request size limits and the AI spam filter out of the box. For added protection, you can turn on custom honeypot and add your own Cloudflare Turnstile keys.
Learn about spam protection →
Step 5: Publish and share
Section titled “Step 5: Publish and share”Your form is ready to receive submissions as soon as it’s created. Integrate the endpoint URL into your frontend code (e.g. via HTML <form action="..."> or a fetch/AJAX script) as detailed in our framework guides.
Submitting with JavaScript (fetch, React, Vue, etc.)? Add your site’s origin under Settings → Allowed Origins & Redirects first, or the browser will block the response. See Allowed Origins.
Next steps
Section titled “Next steps”- Set up Slack notifications to get alerted on new submissions
- Send data to Zapier, Make or your own endpoint with webhooks
- Add AI classification to filter spam and tag submissions before they’re delivered