Your forms deserve a real backend.
Collect, filter, and route form submissions through one API. Spam filtering, email notifications, and contact records are built in, so there is no backend to write. Hand the account to your client when the site ships.
// Submit a form to your inForm endpoint
const res = await fetch(
"https://inform.besynergistic.com/api/f/YOUR_FORM_ID"
, { method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
name: "Jane",
email: "jane@company.co",
message: "Hello!"
}) });
// → { "ok": true, "id": "sub_k8f2m..." }
Features
Everything your forms need.
Spam filtering, notifications, contacts, and team access, all handled for you.
Spam filtering
Honeypot fields, gibberish detection, timing checks, and rate limiting, all built in. No CAPTCHA required.
Email notifications
Admin alerts on every submission, confirmation emails to submitters, and per-field customization.
Contact management
Automatically create contacts from email fields. Add tags, notes, and keep a full submission history.
API-first
POST JSON from static HTML, React, Next.js, Vue, or a server-side proxy. Send whatever fields you have. There is no schema to define.
Client handoff
Build the forms, then transfer ownership to your client in one click. They keep their submissions, contacts, and settings.
Teams & orgs
Invite team members, assign roles, and manage multiple client sites under one account. CORS locking per form included.
How it works
Three steps. That's it.
Create a form
Set up a form in the dashboard. Configure spam filters, notifications, and allowed origins.
Integrate
Point your form at your endpoint and POST JSON or URL-encoded data from any framework.
Manage & hand off
Review submissions, manage contacts, and get notified in real time. When the site is ready, transfer ownership to your client.
Integration
Works with any stack.
POST JSON from a static site, a React app, or a server-side proxy. inForm accepts any schema.
// app/api/contact/route.ts
import { NextResponse } from "next/server";
export async function POST(req: Request) {
const body = await req.json();
const res = await fetch(
`${process.env.INFORM_URL}/api/f/${process.env.FORM_ID}`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.INFORM_API_KEY}`,
},
body: JSON.stringify(body),
}
);
const data = await res.json();
return NextResponse.json(data, { status: res.status });
}// components/contact-form.tsx
"use client";
export function ContactForm() {
async function handleSubmit(e: React.FormEvent) {
e.preventDefault();
const form = e.target as HTMLFormElement;
const data = Object.fromEntries(new FormData(form));
await fetch("/api/contact", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
});
}
return (
<form onSubmit={handleSubmit}>
<input name="name" placeholder="Name" required />
<input name="email" type="email" required />
<textarea name="message" required />
<button type="submit">Send</button>
</form>
);
}Pricing
Simple, transparent pricing.
Start free. Upgrade when you need more.
Free
For side projects and personal sites.
- 100 submissions / month
- 1 form
- 1 team member
- Basic spam filtering
- Admin notifications
- 30-day data retention
- Contact management
- Priority support
Pro
For freelancers and growing businesses.
- 1,000 submissions / month
- 5 forms
- 3 team members
- Advanced spam filtering
- Admin + submitter notifications
- Unlimited data retention
- Contact management
- Priority email support
Business
For agencies and larger teams.
- 10,000 submissions / month
- Unlimited forms
- 10 team members
- Advanced spam filtering
- Admin + submitter notifications
- Unlimited data retention
- Contact management
- Dedicated support
FAQ
Common questions.
Start collecting submissions in minutes.
No credit card required. Free tier includes 100 submissions per month.
Get started free