Examples

Copy-paste these snippets into your website. Replace YOUR_ACCESS_KEYwith your form's access key from the dashboard.

Contact form

Classic contact form with name, email, and message.

Preview

<form action="https://api.lazyforms.com/f/YOUR_ACCESS_KEY" method="POST">
  <input type="text" name="name" placeholder="Name" required />
  <input type="email" name="email" placeholder="Email" required />
  <textarea name="message" placeholder="Message" required></textarea>

  <button type="submit">Send</button>
</form>

Newsletter signup

Minimal email capture form for newsletters.

Preview

<form action="https://api.lazyforms.com/f/YOUR_ACCESS_KEY" method="POST">
  <input type="email" name="email" placeholder="you@example.com" required />
  <button type="submit">Subscribe</button>
</form>

Feedback form

Collect user feedback with a rating and comment.

Preview

<form action="https://api.lazyforms.com/f/YOUR_ACCESS_KEY" method="POST">
  <select name="rating" required>
    <option value="">Rate your experience</option>
    <option value="5">Excellent</option>
    <option value="4">Good</option>
    <option value="3">Okay</option>
    <option value="2">Poor</option>
    <option value="1">Terrible</option>
  </select>
  <textarea name="feedback" placeholder="Tell us more..." required></textarea>
  <input type="email" name="email" placeholder="Email (optional)" />

  <button type="submit">Submit feedback</button>
</form>

With honeypot spam protection

Add a hidden field to catch bots. Enable honeypot in your form settings.

Preview

+ hidden _honey field (invisible to users)

<form action="https://api.lazyforms.com/f/YOUR_ACCESS_KEY" method="POST">
  <input type="text" name="name" placeholder="Name" required />
  <input type="email" name="email" placeholder="Email" required />
  <textarea name="message" placeholder="Message" required></textarea>

  <!-- Honeypot: hide this from real users -->
  <input type="text" name="_honey" style="display:none" tabindex="-1" />

  <button type="submit">Send</button>
</form>

AJAX / fetch (no redirect)

Submit via JavaScript for a seamless experience. No page reload.

Preview

Submits via fetch() — no page reload

<form id="contact-form">
  <input type="text" name="name" placeholder="Name" required />
  <input type="email" name="email" placeholder="Email" required />
  <textarea name="message" placeholder="Message" required></textarea>
  <button type="submit">Send</button>
</form>

<script>
  document.getElementById('contact-form')
    .addEventListener('submit', async (e) => {
      e.preventDefault();
      const data = new FormData(e.target);
      const res = await fetch(
        'https://api.lazyforms.com/f/YOUR_ACCESS_KEY',
        { method: 'POST', body: data }
      );
      const json = await res.json();
      alert(json.success ? 'Sent!' : 'Error');
    });
</script>

Webhook integration

LazyForms POSTs JSON to your webhook URL on every submission. Set the webhook URL in your form settings.

// LazyForms sends this JSON to your webhook URL:
{
  "form_id": "abc123",
  "form_name": "Contact form",
  "data": {
    "name": "Jane Doe",
    "email": "jane@example.com",
    "message": "Hello!"
  },
  "submitted_at": "2025-01-15T10:30:00Z",
  "ip": "203.0.113.1"
}