Public Submissions Router
Core Features

Public Submissions Router

Public Submissions Router Overview

The Voieform Public Submissions Router is an intelligent edge router that listens for form posts from any client application—whether standard HTML forms, Single Page Apps (React/Vue/Svelte), mobile apps, or backend webhooks—and securely routes them to your configured notifications and storage backends.

Universal Endpoint Target
Submit to https://voieform.com/f/{form_key} without needing your own server backend.
Automatic Honeypot & AI Filtering
Built-in _gotcha trap and Groq AI spam classification prevent spam entries.
Multi-Channel Dispatch
Triggers email notifications, HMAC webhooks, and instant Telegram alerts simultaneously.
Flexible Payload Formats
Accepts application/json, multipart/form-data, and x-www-form-urlencoded.

Special Reserved Fields

You can include optional hidden inputs or JSON properties to customize behavior on the fly:

Field NameTypeDescription
_subjectStringOverrides default email notification subject line. E.g., "New Lead from Pricing Page".
_next / _redirectURL StringCustom thank-you page URL for standard HTML redirects.
_gotchaHidden StringHoneypot field. Keep hidden via CSS. If filled by automated bots, the entry is rejected.
_replyto / emailEmail StringSets the Reply-To header in your email notification so you can reply directly to the submitter.

Integration Examples

1. Standard HTML Form
index.htmlhtml
<!-- Standard HTML Form submitting to Voieform Router -->
<form action="https://voieform.com/f/pr_live_x92a" method="POST">
  <!-- Optional Custom Email Subject -->
  <input type="hidden" name="_subject" value="New Lead from Website" />
  
  <!-- Optional Custom Redirect Page (for non-AJAX submissions) -->
  <input type="hidden" name="_next" value="https://yourwebsite.com/thank-you" />
  
  <!-- Honeypot field (hidden from real users, traps bots) -->
  <input type="text" name="_gotcha" style="display:none" tabIndex="-1" autocomplete="off" />

  <label for="name">Your Name</label>
  <input type="text" id="name" name="name" required />

  <label for="email">Email Address</label>
  <input type="email" id="email" name="email" required />

  <label for="message">Message</label>
  <textarea id="message" name="message" required></textarea>

  <button type="submit">Submit Form</button>
</form>
2. JavaScript Fetch (AJAX)
submit.jsjavascript
// AJAX / Fetch Submission Example (JSON Payload)
async function submitForm(data) {
  try {
    const response = await fetch("https://voieform.com/f/pr_live_x92a", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "Accept": "application/json"
      },
      body: JSON.stringify({
        name: data.name,
        email: data.email,
        message: data.message,
        _subject: "Custom AJAX Lead Notification"
      })
    });

    const result = await response.json();
    
    if (response.ok && result.success) {
      console.log("Submission successful! Submission ID:", result.submission_id);
      alert("Thank you! Your message has been sent.");
    } else {
      console.error("Submission failed:", result.error);
    }
  } catch (error) {
    console.error("Network error submitting form:", error);
  }
}
3. cURL CLI Submission
terminal.shbash
# Submit directly via cURL
curl -X POST https://voieform.com/f/pr_live_x92a \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jane Doe",
    "email": "jane@example.com",
    "message": "Interested in enterprise pricing.",
    "_subject": "API Direct Lead"
  }'

Response Status Codes

Status CodeMeaningDetails
200 OK / 302 FoundSuccessSubmission accepted. JSON returns { success: true, submission_id: '...' }.
400 Bad RequestValidation ErrorMissing required fields or honeypot trapped.
401 UnauthorizedInvalid API KeyForm API key is invalid, deleted, or restricted by domain origin whitelist.
429 Too Many RequestsRate Limit ExceededMonthly submission quota reached for current plan tier.
Ctrl+I
Public Submissions Router | Voieform