Docs Getting started
Docs
Getting started
PostTo receives form submissions and delivers them — to your email inbox, to your own server via webhook, or both. You don't write any backend code. You point your form at a URL PostTo gives you, and PostTo handles validation, spam filtering, and delivery.
The three-step version
- Create an endpoint. In the dashboard, click "New endpoint," give it a name, and set the email address submissions should go to. You'll get back a unique URL.
- Point your form at it. Set your HTML form's
actionattribute to that URL — or send a POST request from your server if you'd rather not touch the browser at all. - Submissions arrive. Every submission lands in the destination inbox you set, and in the dashboard, where you can search, export, or review anything that got flagged as spam.
The smallest possible example
No JavaScript, no library, no build step. This is a complete, working contact form:
<form action="https://postto.dev/api/v1/send/YOUR_TOKEN" method="POST">
<input type="text" name="name" placeholder="Name">
<input type="email" name="email" placeholder="Email">
<textarea name="message" placeholder="Message"></textarea>
<button type="submit">Send</button>
</form>
Replace YOUR_TOKEN with the token from your endpoint's URL, shown in the dashboard after you create it. Submit the form and the
message arrives in your inbox within seconds — the visitor is redirected to a simple "thanks" page PostTo hosts for you.
Two ways to send a submission
Which one you use depends on where the request comes from:
- Token mode (the example above) — the endpoint URL itself is the credential. This is the right choice for any HTML form, since the URL is meant to be visible in your page's source. See Sending submissions.
- Signed mode — for server-to-server requests, each submission is additionally signed with a secret key, so PostTo can verify it really came from your server and reject replayed requests. This mode requires a secret that must never appear in browser code. See Signed mode.
What happens to a submission
Every submission passes through the same pipeline, whichever mode you use:
- A honeypot and heuristic spam check run immediately, on every plan, for free — see Spam protection.
- If the submission passes, PostTo sends the email and — if you've configured one — fires a webhook to your server.
- If a submission looks like spam, it's never silently thrown away: it's held and shown in your dashboard, where you can review and release it manually.
Where to go next
- Sending submissions — request format, and examples in cURL, JavaScript, PHP, Laravel, and Python.
- Response format & error codes — what PostTo sends back, and every error your integration should handle.
- Webhooks — forward every submission to your own server, not just email.
Try it against your own form
Create an endpoint and get a working URL in under a minute — free plan, no credit card.
Start for free