Build the form
27 field types, each with its own rules. Every form is an endpoint first, so you can post to it from your own site as well as use a hosted page.
Building the form is the easy part. Daakiya covers what comes after: where each response goes, whether it arrived, and who can change things.
27 field types, each with its own rules. Every form is an endpoint first, so you can post to it from your own site as well as use a hosted page.
Send each response to the tools and people that need it. Add checks that run before the reply and steps that run after it.
Decide who can see and change each form, limit it to certain email domains, and export your responses when you need them.
curl -X POST "https://api.daakiya.app/api/v1/forms/FORM_ID/submit" \ -H "Content-Type: application/json" \ -H "X-Daakiya-Key: YOUR_PUBLIC_KEY" \ -d '{ "name": "Maya Patel", "email": "maya@puzzlers-labs.com", "plan": "Growth" }'
const res = await fetch("https://api.daakiya.app/api/v1/forms/FORM_ID/submit", { method: "POST", headers: { "Content-Type": "application/json", "X-Daakiya-Key": "YOUR_PUBLIC_KEY", }, body: JSON.stringify({ name: "Maya Patel", email: "maya@puzzlers-labs.com", plan: "Growth" }), }); const data = await res.json(); // 201 → { responseId, submittedAt } // 400 → { errors: { email: ["Enter a valid email."] } }
<form method="POST" action="https://api.daakiya.app/api/v1/forms/FORM_ID/submit?key=YOUR_PUBLIC_KEY"> <input type="text" name="name" required /> <input type="email" name="email" required /> <input type="text" name="plan" /> <button type="submit">Send</button> </form> <!-- The server accepts application/x-www-form-urlencoded too. -->
import requests
res = requests.post(
"https://api.daakiya.app/api/v1/forms/FORM_ID/submit",
headers={"X-Daakiya-Key": "YOUR_PUBLIC_KEY"},
json={"name": "Maya Patel", "email": "maya@puzzlers-labs.com", "plan": "Growth"},
)
print(res.status_code) # 201
The free plan doesn’t need a card and never expires.