Embedding

Plain HTML form

Web3Forms-compatible — works with any static HTML page, no JavaScript required.

Vlozi Forms is fully compatible with plain HTML <form> tags. No JavaScript, no SDK, no build step — just point your form's action at your form's endpoint.

Basic example

<form action="https://api.vlozi.app/forms/f/YOUR_FORM_ID" method="POST">
  <label>
    Email
    <input type="email" name="email" required />
  </label>
  <label>
    Message
    <textarea name="message" required></textarea>
  </label>
 
  <!-- Spam protection: always include this hidden honeypot field -->
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
 
  <!-- Redirect after success (important for plain HTML — see below) -->
  <input type="hidden" name="redirect" value="https://yoursite.com/thank-you" />
 
  <button type="submit">Send</button>
</form>

The redirect field

Without a redirect field (or a form-level redirect URL), the browser displays the raw JSON response after submission. Always set one for a plain HTML form:

<!-- Option A: per-submission redirect field -->
<input type="hidden" name="redirect" value="https://yoursite.com/thank-you" />
 
<!-- Option B: configure at form level in the dashboard (Settings → Redirect URL) -->

The redirect field takes priority over the form-level redirectUrl setting.

File uploads

Plain HTML forms can also upload files — just set enctype="multipart/form-data":

<form
  action="https://api.vlozi.app/forms/f/YOUR_FORM_ID"
  method="POST"
  enctype="multipart/form-data"
>
  <input type="email" name="email" required />
  <input type="file" name="resume" accept=".pdf,.doc,.docx" />
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
  <input type="hidden" name="redirect" value="https://yoursite.com/thank-you" />
  <button type="submit">Send</button>
</form>

Limits: up to 5 files per submission, 25 MB each.

Reserved field names

These field names are consumed by the service and are not stored in the submission:

Field Purpose
botcheck (or your custom honeypot field name) Spam trap — always include as a hidden checkbox
cf-turnstile-response Turnstile CAPTCHA token (auto-added by the Turnstile widget)
redirect 303-redirect destination on success
access_key Ignored — Vlozi uses the URL form_id instead

Adding custom fields

Any name attribute not in the reserved list above is stored verbatim:

<input type="text" name="company" placeholder="Company (optional)" />
<input type="tel" name="phone" placeholder="Phone" />
<select name="budget">
  <option value="">Select budget</option>
  <option value="under-10k">Under $10k</option>
  <option value="10k-50k">$10k – $50k</option>
  <option value="over-50k">Over $50k</option>
</select>

TIP

If you define fields in your form's schema (dashboard → Forms → your form → Fields), the service validates submitted values against those field definitions. Without a schema, any field is accepted — this is the Web3Forms-parity mode.

Web3Forms migration

Switching from Web3Forms? Change the action URL and remove the access_key field — everything else stays the same:

- <form action="https://api.web3forms.com/submit" method="POST">
-   <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
+ <form action="https://api.vlozi.app/forms/f/YOUR_FORM_ID" method="POST">
  <input type="email" name="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Submit</button>
</form>
Forms · EmbeddingEdit on GitHub