Updated March 2026
Use uniqueBy. When you create or update a form, set uniqueBy to the field name that should be unique.
Most common: uniqueBy: "email". Now if someone submits with the same email twice, the second submission gets a 409 Conflict response. Your frontend catches the 409 and shows something like "You already submitted."
You can also use uniqueBy on any field — a user ID, a phone number, whatever makes sense. One field per form.
What about the same person using different emails? That is harder. You could use a hidden field with a browser fingerprint or a logged-in user ID. But honestly, for most use cases, email dedup is enough.
The 409 response includes a message explaining the duplicate. Parse it in your frontend for a good user experience.
Note: uniqueBy is enforced at the API level, not the frontend level. Even if someone bypasses your form and POSTs directly, the dedup still works.
# Create a form with email dedup
curl -X POST https://sutrena.com/api/forms \
-H "Authorization: Bearer st_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Waitlist",
"fields": [
{ "name": "email", "label": "Email", "type": "email", "required": true }
],
"uniqueBy": "email"
}'
# Second submission with same email → 409 Conflict
# { "error": "Duplicate submission", "field": "email" }