Integrate · Last updated April 23, 2026
Response format
When you POST JSON (for example with fetch), the submit endpoint always responds with JSON. Classic HTML form POSTs redirect to a success page instead — see Custom redirects.
Success
A 200 response confirms the submission was stored.
JSONresponse.json
{
"success": true,
"message": "Submission received successfully"
}Errors
Errors come back with an error key and a human-friendly message.
JSONresponse.json
{
"error": "Submission limit reached",
"message": "Your monthly submission limit has been reached."
}Status codes
| Status | Meaning |
|---|---|
200 OK | Submission stored and any webhooks / emails queued. |
400 Bad Request | The payload was missing required fields or could not be parsed as JSON or form-encoded data. |
404 Not Found | The form ID in the URL does not exist or has been deleted. |
429 Too Many Requests | You hit your monthly submission limit. Upgrade your plan or wait for the next billing period — see Rate limits. |
500 Server Error | Something blew up on our side. Safe to retry — submissions are idempotent by request ID. |