Quickstart
Point any HTML form at Ikiform and receive your first submission in two minutes.
Ikiform is the backend for every form. You keep your own markup, framework and styles. Point the form at an Ikiform endpoint and Ikiform validates each post, filters spam, stores it in your workspace, emails you and delivers it to your systems by signed webhook.
Pick how you send
Every form gets one public endpoint, https://ikiform.com/f/<formId>. Anything that can send an HTTP POST can use it.
| You send from | Use | Guide |
|---|---|---|
| A plain HTML page or a site builder | <form action> | HTML forms |
| React, Next.js, Vue, Svelte, Astro | fetch or submit from the SDK | Guides |
| A backend, script or integration | JSON over HTTPS with a secret key | From a server |
| A shadcn/ui project | The registry component | shadcn/ui component |
Quickstart
Create a form
Sign in to the dashboard, create a workspace and add a form. Its overview shows the endpoint URL and ready-made snippets for HTML, JavaScript and React.
Point your form at the endpoint
Set the form's
actionto the endpoint andmethodtopost. Every input with anamebecomes a field of the submission.contact.html <form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post"> <input name="name" required /> <input name="email" type="email" required /> <textarea name="message"></textarea> <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden /> <button>Send</button> </form>The hidden
_gotchainput is a honeypot. People never see it; bots that fill it in are stored as spam. See Spam protection.Submit it
Open the page and send the form. The browser lands on Ikiform's thank-you page, or on your own page if you set a redirect. You can also post JSON from a terminal:
Terminal curl https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx \ -H "Content-Type: application/json" \ -d '{"name":"Ada","email":"ada@example.com","message":"Hello"}'A JSON request gets a JSON answer with status
201:201 Created { "ok": true, "id": "sub_01k7v2c9t3e8m5q4x6z0a1b2c3" }See it arrive
Try it
curl https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx \
-H "Content-Type: application/json" \
-d '{"name":"Ada Lovelace","email":"ada@example.com","message":"Hello from the Ikiform docs."}'Enter your own form ID to send this as a real request.
Next steps
- How it works walks through every check a post goes through.
- Define fields so Ikiform rejects bad data with clear field errors.
- Turn on a human check and restrict the form to your domains.
- Verify webhook signatures in your backend.