Quickstart: collect form submissions in 2 minutes
Collect your first form submission in about two minutes. Create a form, point your HTML form's action at its endpoint, and submit.
SiteBackend gives any static site a form backend. You create a form in the dashboard, copy its endpoint URL, and use it as your HTML form's action. No server code, no JavaScript required.
Create an account and a site
Sign up and click Add site in the sidebar. A site groups the forms that live on one website, for example example.com.
Create a form
Open your site and click New form. Every form gets its own endpoint:
https://api.sitebackend.com/forms/YOUR_FORM_IDCopy it from the form's page with the Copy button.
Point your form at the endpoint
Set the endpoint as your form's action and use method="POST". Give every input a name: that's the key it's stored under.
<form action="https://api.sitebackend.com/forms/YOUR_FORM_ID" method="POST">
<label>
Email
<input type="email" name="email" required />
</label>
<label>
Message
<textarea name="message" required></textarea>
</label>
<!-- Honeypot: hidden from people, filled in by bots -->
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off" style="display:none" />
<button type="submit">Send</button>
</form>Send a test submission
Open the page, fill in the form and submit it. You'll land on a thank-you page, and the submission shows up in the form's inbox in your dashboard straight away.
What happens when someone submits?
- SiteBackend checks that the form is active and that the request comes from an allowed origin.
- Spam checks run: the honeypot field, an optional captcha, a content filter and a rate limit of 5 submissions per minute per visitor.
- The submission is stored, the sender is added to your contacts, and notifications are queued for your email, Slack, Discord, webhooks or other channels.
- The visitor is redirected to a thank-you page, or to your own URL if you set one.
How do I submit with JavaScript instead?
Send the same fields as JSON and ask for a JSON response. You get { "ok": true, "id": "…" } back instead of a redirect.
const res = await fetch("https://api.sitebackend.com/forms/YOUR_FORM_ID", {
method: "POST",
headers: { "Content-Type": "application/json", Accept: "application/json" },
body: JSON.stringify({ email: "[email protected]", message: "Hello!" }),
});
const result = await res.json(); // { ok: true, id: "…" } or { ok: false, error: "…" }Next steps
- Lock the form to your domain with allowed origins.
- Send people to your own page after submitting with a redirect URL.
- Get notified by email, Slack, Discord or webhook with notifications.
- See every field, status code and response in the endpoint reference.
- Collect testimonials from your customers and show them on your site with the testimonials quickstart.