POST /api/forms).Copy-paste HTML
<form action="https://formcask.com/f/f_YOUR_FORM_ID" method="POST"> <input type="text" name="name" required> <input type="email" name="email" required> <textarea name="message"></textarea> <input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off"> <button type="submit">Send</button> </form>
application/x-www-form-urlencoded, application/json, and multipart/form-data (files on Pro and Agency, up to 5MB and 5 per request).
Spam: a filled _gotcha field is stored as spam and is not emailed or sent to your webhook. Each form is rate limited to 10 posts per minute per IP.
After submit: set a default redirect on the form, or pass _redirect (http or https only). JSON/AJAX clients get {"ok":true} instead.
Free includes email notifications and 250 submissions/month on one workspace. Webhooks, file uploads, and extra workspaces require Pro ($12/mo) or Agency ($29/mo).
We POST JSON with headers X-Webhook-Timestamp and X-Webhook-Signature: sha256=<hex>. The signature is HMAC-SHA256 of timestamp + "." + raw body using the form's webhook secret. Failed deliveries retry up to 5 times.
POST /api/signup and POST /api/login — JSON, returns apiKey and a session cookie.Authorization: Bearer <apiKey> on API routes.POST /api/workspaces, POST /api/forms, GET /api/forms/:id/submissions.POST /api/forgot and POST /api/reset for password reset.POST /api/billing/checkout with {"plan":"pro"} or "agency".