Quick Start
Wire a form in minutes. Use an existing Form ID or create a private form that emails submissions to you
Quick Start
Wire a form in minutes. Use an existing Form ID or create a private form that emails submissions to you.
Ready in 60 Seconds
Follow these steps to get your first form submission working. No server setup, no database, no complex configuration.
Step 1: Get Your Form ID
You have three options for creating a form:
Option A: Quick Private Form (Easiest)
Use the form generator on our homepage—no signup required! Just enter your email and domain, and get a Form ID instantly with automatic email delivery configured.
Create Private Form on Homepage →
Perfect for testing and simple contact forms. Privacy mode enabled by default.
Option B: Use the Dashboard (Full Features)
Sign up for an account to create forms with analytics, multiple connectors, file uploads, and team management.
Best for production forms with advanced requirements.
Option C: Create via API (Programmatic)
Programmatically create private forms that email submissions to you.
curl -X POST "https://api.formfeeder.io/v1/forms/from-email" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"allowedDomain": "https://www.example.com"
}'
Response: { "formId": "pvt_abcd1234", "allowedDomain": "https://www.example.com" }
Step 2: Add FormFeeder to Your HTML
Replace abcd1234 with your actual Form ID from Step 1.
Basic Contact Form
<form action="https://api.formfeeder.io/v1/form/abcd1234" method="POST">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required />
<label for="email">Email:</label>
<input type="email" id="email" name="email" required />
<label for="message">Message:</label>
<textarea id="message" name="message" rows="4" required></textarea>
<button type="submit">Send Message</button>
</form>
With File Uploads
Add enctype="multipart/form-data" to support file attachments:
<form action="https://api.formfeeder.io/v1/form/abcd1234" method="POST" enctype="multipart/form-data">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required />
<label for="resume">Resume:</label>
<input type="file" id="resume" name="resume" accept=".pdf,.doc,.docx" />
<button type="submit">Submit Application</button>
</form>
File limits: Default 5MB per file, 10MB total. Supported: images, PDFs, documents.
Step 3: Test Your Form
- Submit a test from your website (must be from your allowed domain)
- Check your configured destination (email inbox, Slack channel, etc.)
- If you get a 401 error, add your domain to the form's allowed domains list
What's Next?
JavaScript Examples →
React, Next.js, and fetch API integration patterns
Configure Connectors →
Set up email, Slack, and webhook destinations