Framework guides
HTML
The baseline integration — no JavaScript involved.
A plain form post works everywhere, including for visitors with JavaScript disabled. After a successful submission the browser is redirected — set a redirect field, or configure one in the form settings, to land visitors on your own thank-you page.
contact.html
<form id="contact" action="https://api.formpost.ai/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
<input type="text" name="name" placeholder="Your name" required>
<input type="email" name="email" placeholder="Your email" required>
<textarea name="message" placeholder="Your message" required></textarea>
<!-- Spam trap: real people never see this field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send message</button>
</form>Sending visitors to your own page
redirect
<input type="hidden" name="redirect" value="https://example.com/thank-you">Submitting without leaving the page
contact.js
const form = document.querySelector("#contact");
form.addEventListener("submit", async (event) => {
event.preventDefault();
const response = await fetch("https://api.formpost.ai/submit", {
method: "POST",
headers: { "Content-Type": "application/json", Accept: "application/json" },
// fromEntries keeps only the last value of a repeated field name, and
// cannot carry files. Post the FormData itself if you need either.
body: JSON.stringify({
access_key: "YOUR_ACCESS_KEY_HERE",
...Object.fromEntries(new FormData(form)),
}),
});
const result = await response.json();
if (result.success) form.reset();
// On failure result.message says why — surface it in your own UI.
});