Documentation
StaticSend provides a simple API endpoint for your forms. Send a POST request to your form URL with any JSON or Form Data payload.
HTML Form
The simplest way to use StaticSend. Just set the form action to your endpoint URL.
index.html
<!-- Simple HTML Form -->
<form action="https://staticsend.vercel.app/api/submit/YOUR_FORM_ID" method="POST">
<input type="email" name="email" placeholder="Your email" required>
<textarea name="message" placeholder="Your message"></textarea>
<button type="submit">Send</button>
</form>JavaScript / Fetch
Submit forms asynchronously using the Fetch API. Perfect for SPAs or custom validation.
script.js
// Using Fetch API
const handleSubmit = async (e) => {
e.preventDefault();
const formData = {
email: "user@example.com",
message: "Hello world!"
};
try {
const response = await fetch("https://staticsend.vercel.app/api/submit/YOUR_FORM_ID", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
});
if (response.ok) {
alert("Form submitted!");
}
} catch (error) {
console.error("Error:", error);
}
};React
A typical React implementation handling loading and success states.
ContactForm.jsx
import { useState } from 'react';
export default function ContactForm() {
const [status, setStatus] = useState('idle');
const handleSubmit = async (e) => {
e.preventDefault();
setStatus('loading');
const formData = new FormData(e.target);
const data = Object.fromEntries(formData);
try {
const res = await fetch('https://staticsend.vercel.app/api/submit/YOUR_FORM_ID', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data),
});
if (res.ok) setStatus('success');
else setStatus('error');
} catch (err) {
setStatus('error');
}
};
return (
<form onSubmit={handleSubmit}>
<input name="email" type="email" required />
<textarea name="message" required />
<button disabled={status === 'loading'}>
{status === 'loading' ? 'Sending...' : 'Send'}
</button>
</form>
);
}Python
Send submissions from your backend scripts or automation tools.
script.py
import requests
url = "https://staticsend.vercel.app/api/submit/YOUR_FORM_ID"
data = {
"email": "user@example.com",
"message": "Hello from Python!"
}
response = requests.post(url, json=data)
if response.status_code == 200:
print("Success!")
else:
print("Error:", response.text)Terminal / cURL
Test your endpoint directly from the command line.
terminal
curl -X POST https://staticsend.vercel.app/api/submit/YOUR_FORM_ID \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "message": "Hello from terminal"}'