Forms
A form in Formtorch is a named container inside a project. When someone submits your form, Formtorch stores the submission, runs spam scoring, sends notifications, and fires any webhooks. Everything is tied to that specific form.
Form endpoint
Every form gets a unique endpoint URL when you create it:
https://formtorch.com/f/YOUR_FORM_IDThe YOUR_FORM_ID part is a 10-character alphanumeric ID (e.g. a1b2c3d4e5). Point your HTML form’s action attribute, or your fetch call, at this URL to start receiving submissions.
Supported submission formats
Formtorch accepts submissions in three formats:
| Format | Content-Type | When to use |
|---|---|---|
| HTML form | application/x-www-form-urlencoded | Plain HTML forms with method="POST" |
| Multipart | multipart/form-data | Forms with file uploads |
| JSON | application/json | Fetch/XHR with a JSON body |
All three formats are handled automatically. No configuration needed.
Reserved fields
Fields prefixed with _ are reserved for Formtorch metadata. They control behavior and are not stored as regular submission fields.
| Field | Type | Description |
|---|---|---|
_formName | string | Override the display name for this submission in the dashboard |
_redirect | string (URL) | Redirect the user to this URL after a successful submission |
_test | "true" | Mark as a test submission. Excluded from quota; no notifications sent. |
_honeypot | string | Value of the honeypot field. Flagged as spam if non-empty. |
_honeypotField | string | Name of the honeypot input element |
To use a reserved field in an HTML form, add it as a hidden input:
<input type="hidden" name="_redirect" value="https://yoursite.com/thank-you" />To use it with fetch and FormData:
const data = new FormData(form);
data.append("_redirect", "https://yoursite.com/thank-you");CORS
Formtorch accepts cross-origin requests from any domain. You don’t need to add your domain to an allowlist or configure anything.
If you’re submitting via fetch from a browser, you may get a no-cors response. This is expected. Formtorch still receives and processes the submission. To read the response status in JavaScript, submit normally (with CORS) rather than with {mode: 'no-cors'}.
Rate limits
Formtorch applies rate limiting per form and per IP to prevent abuse. The limits are generous for typical usage. If you’re running load tests or bulk imports, use the _test field or reach out to configure higher limits.
For file uploads, add enctype="multipart/form-data" to your HTML form, or
use FormData with file inputs in JavaScript. Files are stored and accessible
from the submission detail view in the dashboard.