What Is a Form Endpoint? (And How to Use One)
A form endpoint is the URL an HTML form submits to. Here's how form endpoints work, how they differ from a form backend, and how to get one for free.
The ShipMyForm team
· 4 min read
A form endpoint is the URL an HTML form submits to — the address in the form's
action attribute. When a visitor hits submit, the browser bundles up the field
values and sends them to that URL as an HTTP request. Whatever is listening at the
endpoint — your own server code, or a hosted form backend —
receives the data and decides what happens next: store it, email it, forward it to
Slack or a spreadsheet.
That's the whole idea. The endpoint is the address; everything interesting happens in the service behind it.
How a form endpoint works
Take the smallest possible form:
<form action="https://shipmyform.com/f/YOUR_FORM_ID" method="POST">
<input type="email" name="email" required />
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>Three things define how the submission travels:
actionis the endpoint — the URL the data goes to.method="POST"tells the browser to send the fields in the request body (forms that change or create data should always POST, never GET).- Each
nameattribute becomes a field in the submission. Here the endpoint receivesemailandmessage; add<input name="phone">and it receivesphonetoo, no configuration needed.
The endpoint processes the request and responds — usually by redirecting the visitor
to a thank-you page, or by returning JSON if the form was submitted with JavaScript.
If you'd rather submit without a page reload, the same endpoint works with fetch:
see how to submit a form with fetch.
Form endpoint vs. form backend vs. form builder
These three get mixed up constantly, and they're different layers:
| Term | What it is | What you own |
|---|---|---|
| Form endpoint | The URL that receives submissions | Just an address |
| Form backend | The hosted service behind the endpoint: storage, spam filtering, notifications, integrations | Your HTML; the service runs the rest |
| Form builder | A tool that hosts the form UI itself (Typeform, Google Forms) | Nothing — the form lives on their page |
So "form endpoint" and "form backend" describe the same setup from two angles: the
endpoint is what you paste into your action, the backend is the machinery behind
it. If you're a developer who wants to keep your own markup and styling, you want an
endpoint backed by a form backend — not a form builder that replaces your form.
Where do you get a form endpoint?
You have two options.
Build one. Any URL that accepts a POST request can be a form endpoint: a PHP script, an Express route, a serverless function. You'll then write the parts around it — parsing, validation, spam filtering, storage, email delivery — which is real ongoing work. The build vs. buy breakdown covers when that's worth it.
Use a hosted one. A form backend gives you a ready-made endpoint per form.
With ShipMyForm, you create a form, copy its endpoint URL, and point your
action at it — the free tier includes 100 submissions a month, spam filtering,
and email notifications. Your form works on any static site, with no server and
no API route.
Hosted backends issue a unique endpoint for each form you create, so your contact form, waitlist, and feedback form each get their own inbox, notifications, and spam rules — instead of everything landing in one pile.
Is it safe to expose an endpoint in your HTML?
Yes — and it has to be. The browser needs the URL to send the submission, so a form endpoint is public by design, the same way any page URL is. Exposing it is not a security hole, because a good endpoint protects itself server-side:
- Spam filtering — honeypots, rate limiting, and optional challenges like Cloudflare Turnstile stop bots that find the URL.
- Allowed domains — the endpoint only accepts submissions that come from your site, so someone can't quietly reuse it on theirs.
- No secrets in the client — an endpoint URL is not an API key. If a setup asks you to put a private key in your HTML or JavaScript, that's the actual risk.
This is precisely why endpoints suit static sites: everything sensitive lives behind the URL, not in your code.
What a good form endpoint should handle
The URL is the easy part. When you're choosing (or building) the service behind it, look for:
- Storage — a searchable inbox of submissions, with export.
- Notifications — email on every submission, or routed to Slack.
- Spam protection — invisible by default; your visitors shouldn't solve puzzles.
- Integrations — push submissions to Google Sheets, Notion, webhooks, or automation tools like n8n.
- Redirects and JSON responses — a thank-you redirect for plain HTML forms, JSON
for
fetchsubmissions. - File uploads — if your form collects attachments, the endpoint has to store them.
Getting started
If you just want a working form on a static site, the shortest path is a hosted
endpoint: create a free form, paste the endpoint into your action, and
submissions land in your inbox — spam-filtered, stored, and emailed to you.
To go deeper on the machinery behind the URL, read the pillar guide: what is a form backend? Or jump straight to your use case — send HTML form submissions to email, or generate the markup with the free contact form generator.
Frequently asked questions
- What is a form endpoint?
- A form endpoint is the URL that receives an HTML form's submissions — the address in the form's action attribute. When someone hits submit, the browser sends the field data to that URL as a POST request, and whatever is listening there processes it.
- Is a form endpoint the same as a form backend?
- Not quite. The endpoint is just the URL; the form backend is the service behind it that stores submissions, filters spam, and sends notifications. A hosted form backend gives you a ready-made endpoint so you don't have to build the service yourself.
- How do I get a form endpoint for free?
- Sign up with a hosted form backend, create a form, and it gives you a unique endpoint URL to paste into your form's action attribute. ShipMyForm's free tier includes 100 submissions a month with spam filtering and email notifications — no credit card or server required.
- Is it safe to expose a form endpoint in my HTML?
- Yes — form endpoints are public by design, just like any URL a browser posts to. Good ones are protected server-side with spam filtering, rate limiting, and allowed-domain checks, so exposing the URL doesn't expose you to abuse. Never put private API keys in your HTML, though; an endpoint URL is not a secret, but a key is.
- Can I use a form endpoint with React, Next.js, or Astro?
- Yes. An endpoint is framework-agnostic: point a plain <form action> at it, or send the data with fetch from any JavaScript code. That's what makes hosted endpoints popular for static and JAMstack sites — the form works without an API route or server.
Related guides
What Is a Form Backend? (And When You Need One)
The plain-language definition, how form endpoints work, and when a hosted backend beats rolling your own.
How to Submit a Form with JavaScript fetch()
The vanilla-JS pattern for submitting a form without a page reload — intercept submit, fetch() the data, and render success and per-field errors from the JSON response.
How to Send an HTML Form to Your Email (Without a Backend)
Why mailto: and PHP mail() let you down on a static site — and the reliable way to get form submissions into your inbox, spam folder avoided.