Contact form backend, no servers
FormsDock is the backend your contact form has been missing. Drop in the endpoint, get a real inbox, webhooks, and spam protection. No SDK, no vendor lock-in, no server to babysit.
100 submissions a month, free forever. No card required.
curl -X POST https://api.formdock.dev/v1/submit \
-H "Authorization: Bearer fk_live_3xq7..." \
-d "email=ada@analytical.engine" \
-d "message=Want to chat about your engine?"Real endpoint. Real response time. No wrapper.
Used in production by indie teams shipping faster
What you get on day one
Single endpoint
FormsDock accepts multipart and JSON, validates payloads against your schema, stores a SHA-256 hashed copy, and forwards to whatever stack you already run.
POST /v1/submit
Content-Type: application/json
Authorization: Bearer fk_live_...
{
"form_id": "contact",
"fields": {
"email": "ada@analytical.engine",
"message": "Hi there"
}
}
200 OK
{ "id": "sub_01H...", "queued_at": "2026-08-12T18:14:02Z" }Webhooks
Every event signed with HMAC-SHA256. Exponential retry up to 24 hours. Dead-letter queue visible in the dashboard.
Spam
Honeypot, timing heuristics, disposable-email filter, and per-form allow/deny lists. Open the dashboard to see why a submission was blocked.
How it works
Drop-in endpoint
POST to a single URL. We parse, validate, store, and forward to your stack. No SDK lock-in, no auth dance. Bring your existing HTML form or wire one up in 30 seconds.
curl -X POST https://api.formdock.dev/v1/submit \
-H "Authorization: Bearer fk_live_3xq7..." \
-d "email=ada@analytical.engine" \
-d "message=Want to chat about your engine?"Inbox built in
Each submission lands in a threaded inbox with sender history, auto-tags, and reply-from-anywhere. Replace your support tool for low-volume contact forms.
# Inbox — last 5 minutes Ada Lovelace <ada@analytical.engine> "Want to chat about your engine?" -> Slack #leads ok 218ms -> Auto-reply ok 412ms Tim Berners-Lee <tim@w3.org> "Can we test the new endpoint?" -> Tagged: partner ok 89ms -> Auto-reply ok 401ms
Webhooks
Signed webhook delivery with retry, dead-letter queue, and replay. Forward to Slack, Discord, your CRM, or a Lambda. Average delivery under 250ms.
POST /webhook/forms/fk_3xq7
Content-Type: application/json
X-FormsDock-Signature: sha256=...
{
"event": "submission.created",
"form": "contact",
"data": {
"email": "ada@analytical.engine",
"message": "Want to chat?"
},
"received_at": "2026-08-12T18:14:02Z"
}Spam protection
Honeypot fields, time-on-page heuristics, disposable-email detection, and a per-form allowlist. Open the dashboard to see exactly what got blocked and why.
{
"verdict": "allow",
"score": 0.02,
"signals": {
"honeypot": "clean",
"timing_ms": 4200,
"geo": "EU",
"disposable_email": false
}
}120ms
P50 submission accept
99.99%
API uptime, last 90 days
0
data we sell or share
Questions
Free tier, no card, no time limit on the basics. Move up when you outgrow it.