Form Koi
documentation.
Everything you need to connect a form, handle submissions and wire up routing, auto-replies, webhooks and the API.
Start here
Create a form, choose a verified recipient and copy the code from its connect page. Then submit from your website and watch the message arrive in your inbox.
Read the quickstartA successful submission confirms receipt. Email delivery happens afterward, with its own status and attempt history. In staging, those emails stay in the test inbox.
Guides
Quickstart
Connect an HTML, React, Next.js or Astro form in minutes.
WordPress
Add a contact form using a Custom HTML block.
Submission API
Request format, responses, validation, redirects and retries.
Spam protection
Turnstile, honeypot, rate limits, allowed origins and the spam folder.
File uploads
Accept private attachments with size limits and expiry.
Recipient routing
Notify different people based on a field value.
Auto-replies
Send visitors a confirmation email when they opt in.
Webhooks
Receive signed submission events with retries and history.
Management API
Read messages and manage forms with scoped API tokens.
Payloads & OpenAPI
Complete example requests and the OpenAPI specification.
Troubleshooting: a submission didn’t show up
- Check the network response. A failed request has an error message and usually a request ID. Find the next step for that response.
- Check that your public endpoint belongs to the form and environment you are viewing. Each environment has its own data.
- Look in Spam and Archive as well as the Inbox. Spam acknowledgements deliberately look the same to the visitor.
- Open the message and inspect its notification recipients and delivery history. Receipt and email delivery are separate steps.
Keep request IDs, timestamps and delivery IDs when investigating. Leave private message content and credentials out of public reports.