Browse our collection of clear, ready-to-use documentation. Explore clear, practical guides with ready-to-use examples so you can implement, customize, and launch in minutes.
Get a working contact form in under 2 minutes. No backend code needed — just HTML.
create form & copy your unique endpoint.
Set your HTML form's action to your endpoint URL and method to POST.
Every submission goes straight to your email and shows up in your dashboard.
The simplest setup — just point your form's action to your endpoint URL and you're ready to go.
<form action="https://000form.com/f/YOUR_FORM_ID" method="POST"> <input type="text" name="name" placeholder="Your name" required> <input type="email" name="email" placeholder="Your email" required> <textarea name="message" placeholder="Your message"></textarea> <button type="submit">Send</button> </form>
Set a custom subject line on the email you receive. If you don't add this, the subject will be New Form Submission from 000form.
<input type="hidden" name="_subject" value="New contact from website">
Name your email field email and we'll automatically set it as the reply-to address — so you can reply directly to the person from your inbox.
<input type="email" name="email" placeholder="Your email">
Send a copy of the notification email to one or more extra addresses.
<!-- One address --> <input type="hidden" name="_cc" value="team@yourcompany.com"> <!-- Multiple addresses — separate with commas --> <input type="hidden" name="_cc" value="sales@co.com, support@co.com">
Send the user to your own thank-you page after they submit.
<input type="hidden" name="_next" value="https://yoursite.com/thank-you">
Choose how your notification email looks. Default is basic.
| Value | What it looks like |
|---|---|
basic | Simple list — one field per row.Used by default. |
box | Each field gets its own bordered box. Images show as previews. |
table | Two-column table — field name on left, value on right. |
<input type="hidden" name="_template" value="basic"> <!-- default --> <input type="hidden" name="_template" value="box"> <input type="hidden" name="_template" value="table">
Send an automatic reply to the person who filled in your form.
<input type="hidden" name="_auto-response" value="Thanks for getting in touch! We'll get back to you shortly.">
Block submissions that contain certain words.
<input type="hidden" name="_blacklist" value="buy now, click here, casino, free money">
Protect your forms from spam using honeypot traps or built-in CAPTCHA verification.
Add a hidden field that spam bots fill in automatically. Real users never see it, so only bots trigger it.
<!-- Hidden honeypot field — bots fill it, humans don't --> <input type="text" name="_gotcha" style="display:none;" tabindex="-1" autocomplete="off">
Enable our built-in CAPTCHA to block automated submissions. Simply add this hidden field to your form.
<!-- Enable CAPTCHA protection — requires user verification --> <input type="hidden" name="_captcha" value="true">
Let people attach files when they submit.
<form enctype="multipart/form-data"> <input type="file" name="uploads[]" multiple> </form>
| Limit | Value | etxekPer file | 10 MB max | etxekPer submission | Up to 5 files |
|---|
Submit the form without reloading the page.
const form = document.getElementById('contact-form'); form.addEventListener('submit', async (e) => { e.preventDefault(); const res = await fetch(form.action, { method: 'POST', body: new FormData(form), headers: { 'Accept': 'application/json' } }); const data = await res.json(); if (data.success) { // Success! } });
Ready to get started?
Try Express