Form Endpoints
Each form in Formoar gets a unique endpoint URL that accepts submissions via HTTP POST. This page covers how to create endpoints, configure them, and understand the submission flow.
The endpoint URL
Every form gets a unique endpoint at:
https://formoar.com/api/f/{your-form-id}
The endpoint accepts both application/json and multipart/form-data (standard HTML form submissions).
- Name
Content-Type- Type
- header
- Description
Either
application/jsonorapplication/x-www-form-urlencoded/multipart/form-data.
Allowed origins
By default, your form accepts submissions from any origin. For production use, you should restrict submissions to your domain(s) using the Allowed Origins setting in the form dashboard.
https://example.com
https://www.example.com
If a submission comes from an origin not in your list, the API returns a 403 Forbidden error.
Leave the allowed origins list empty during development to accept submissions
from any domain (including localhost).
Email notifications
When enabled, Formoar sends you an email for every new submission. You can configure:
- Notification email — the address that receives submission emails (defaults to your account email)
- Enable/disable — toggle email notifications per form
Emails are sent asynchronously (fire-and-forget) so they don't slow down the submission response.
Custom redirect URL
On paid plans, you can set a Redirect URL for HTML form submissions. After a successful submission, the user is redirected to your custom URL instead of the Formoar default page.
Custom redirect only applies to HTML form submissions (not AJAX/JSON requests). AJAX submissions always receive a JSON response.
Response format
JSON submissions
When submitting with Content-Type: application/json, you'll always get a JSON response:
- Name
ok- Type
- boolean
- Description
Present and
truewhen the submission was accepted.
- Name
error- Type
- string
- Description
Error message if the submission was rejected (only present on errors).
Success response
{
"ok": true
}
Error response
{
"error": "Monthly submission limit reached"
}