HTML, JSON, and multipart ingest
Accept native form posts, JSON requests, and file uploads on one endpoint. Field names are preserved, including repeated values and nested keys.
Features
Ingest, validation, storage, email, files, webhooks, and delivery records. Use only the pieces you need; the endpoint stays the same.
Accept native form posts, JSON requests, and file uploads on one endpoint. Field names are preserved, including repeated values and nested keys.
Require fields, block specific values, mark suspicious submissions as spam, or route based on a field. Rules run before quota is counted.
Recipients confirm once by email. Unverified submissions are stored as pending and delivered automatically after confirmation, with a resend cooldown.
Owner email, autoresponse, and webhook attempts are recorded separately with status, error detail, and a manual retry action.
Allow only the file types you expect, cap the number and size per form, and expire attachments on a retention schedule.
Set the subject and body for owner notifications using submitted field variables and an attachment summary.
Deliver events to HTTP endpoints, Discord, or Telegram. Payloads are signed with HMAC-SHA256 and failed attempts are retried.
Save progress before the visitor finishes, then send a resume link. A completed submission merges into the original record.
Custom honeypot fields, optional Turnstile, per-form rate limits, origin allowlists, and a suppression list for bad addresses.
See daily volume, sources, UTM parameters, device type, and failed deliveries. Export submission data as CSV.
Use account-scoped API keys for submissions and delivery records, or drop in /embed.js for inline status messages.
Connect a sending domain with a TXT ownership record and encrypted SMTP credentials, or use the default sender.
Current defaults
These are the defaults in the current early-access build. Per-account limits can differ.
| Area | Default | Notes |
|---|---|---|
| Recipients | 5 per form | Duplicates are removed; each address must be verified. |
| Files | 5 per submission, 25 MB each | MIME and extension allowlist applies. |
| Attachment retention | 90 days | Configurable; expired files are removed by a sweep. |
| Rate limit | 20 submissions per minute per form and IP | Forms are isolated from each other. |
| Request body | 64 KB | File uploads use multipart limits instead. |
| Webhook attempts | 5 | Each attempt is recorded; replay is available. |
No. It is the backend behind your form. You can use plain HTML, a framework component, or an existing builder that can post to a custom endpoint.
Yes. Require, block, spam, and route rules run on the server. A failing require rule returns a 422 response with the missing fields, and blocked or spam submissions can be stored without sending mail.
Each form supports up to five verified email recipients plus an autoresponse to the submitter. Webhook endpoints, Discord, and Telegram can receive the same event.
Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.
POST https://freelyform.com/f/FORM_ID