Add contact forms, feedback widgets, and lead capture to any website in 2 minutes. Submissions delivered to your inbox instantly.
Free tier • 250 submissions/mo • No credit card
<!-- Add this to any HTML page. That's it. -->
<form action="https://api.edgesubmit.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_API_KEY" />
<label for="name">Name</label>
<input type="text" name="name" id="name" required />
<label for="email">Email</label>
<input type="email" name="email" id="email" required />
<label for="message">Message</label>
<textarea name="message" id="message" required></textarea>
<button type="submit">Send Message</button>
</form>
// Works with fetch, axios, or any HTTP client
const response = await fetch("https://api.edgesubmit.com/submit", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
access_key: "YOUR_API_KEY",
name: "Jane Smith",
email: "jane@example.com",
message: "Hello from my website!"
})
});
const data = await response.json();
console.log(data.success); // true
import { useState } from "react";
export default function ContactForm() {
const [status, setStatus] = useState("");
async function onSubmit(e) {
e.preventDefault();
const form = new FormData(e.target);
form.append("access_key", "YOUR_API_KEY");
const res = await fetch("https://api.edgesubmit.com/submit", {
method: "POST", body: form
});
const json = await res.json();
setStatus(json.success ? "Sent!" : "Error");
}
return (
<form onSubmit={onSubmit}>
<input name="name" placeholder="Name" required />
<input name="email" type="email" placeholder="Email" required />
<textarea name="message" placeholder="Message" required />
<button type="submit">Send</button>
{status && <p>{status}</p>}
</form>
);
}
# Send a test submission from your terminal
curl -X POST https://api.edgesubmit.com/submit \
-H "Content-Type: application/json" \
-d '{
"access_key": "YOUR_API_KEY",
"name": "Test User",
"email": "test@example.com",
"message": "Hello from the terminal!"
}'
# Response:
# { "success": true, "message": "Submission received" }
How It Works
No npm install. No config file. No Docker. Just HTML.
Sign up from the dashboard and get your unique API key. Takes 10 seconds. No credit card required.
Set your form action to our endpoint. Works with HTML forms, React, Vue, Svelte, Next.js, or a plain fetch call.
Every submission is instantly delivered to your inbox in a clean, formatted email with reply-to set automatically.
Features
Everything you need. Nothing you don't.
Runs at the edge across 300+ global locations. Sub-50ms response times. Zero cold starts.
Built-in rate limiting per API key. Add a honeypot field and we'll silently drop bots. Keep your inbox clean.
Submissions land in your inbox within seconds. Clean HTML formatting, reply-to set to the sender automatically.
Plain HTML, React, Vue, Svelte, Next.js, Astro, WordPress — anything that can make an HTTP POST request.
Full CORS support out of the box. Whitelist specific origins per API key for extra security if you want.
Every submission is stored and searchable. View, filter, and export your form data through the dashboard API.
Pricing
Start free. Scale when you're ready.
Join developers who use EdgeSubmit to handle form submissions without managing servers.
Get Your API Key — Free