Skip to content

API Reference

POST https://app.formkove.com/api/forms/{form_id}/submissions

Replace {form_id} with your form ID from the Formkove dashboard.

Send a JSON object with your form fields. Formkove accepts any field names; just match them to your HTML form fields.

FieldTypeDescription
subjectstringEmail subject line for notifications
replytostringReply-to address in notification emails
redirectstringURL to redirect to after successful submission
botcheckbooleanHoneypot spam check. Must be present (hidden via CSS)
webhookstringURL to send submission data to (Pro)

All other fields are treated as form data and forwarded to your notifications.

The form_id in the URL is your access key. It identifies the form and authenticates the submission. No additional key field is needed.

fetch('https://app.formkove.com/api/forms/YOUR_FORM_ID/submissions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
name: 'Jane Smith',
email: 'jane@example.com',
message: 'Hi, I'd like to schedule a demo.',
subject: 'New Demo Request'
})
});
{
"success": true,
"submission_id": "sub_abc123",
"message": "Submission received"
}
{
"success": false,
"error": "Invalid form ID"
}

Missing required fields return a descriptive error message.

{
"success": false,
"error": "Rate limit exceeded. Please try again later."
}
{
"statusCode": 500,
"error": "Something went wrong on our end. Try again shortly."
}

The API supports CORS for client-side form submissions. JavaScript fetch() calls work directly from the browser, with no server-side proxy needed.

If you’re sending from a server (e.g., a backend form handler), you need a Pro or Agency plan.

File attachments are not supported in JSON body submissions. To receive files, use the standard HTML form submission method (multipart/form-data). This is available on Pro and Agency plans.


For a complete fetch-based implementation, see JavaScript Form Submission.