[{"data":1,"prerenderedAt":286},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fspam-protection":121,"\u002Fdocs\u002Fspam-protection-surround":281},[4,15,34,41,48,95,107,114],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","1.docs\u002F1.getting-started\u002F2.quickstart",{"title":16,"path":17,"stem":18,"children":19,"icon":33},"Forms & Fields","\u002Fdocs\u002Fforms","1.docs\u002F2.forms\u002F1.index",[20,21,25,29],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24},"Form Settings","\u002Fdocs\u002Fforms\u002Fsettings","1.docs\u002F2.forms\u002F2.settings",{"title":26,"path":27,"stem":28},"Notifications & Auto-responses","\u002Fdocs\u002Fforms\u002Fnotifications","1.docs\u002F2.forms\u002F3.notifications",{"title":30,"path":31,"stem":32},"After Submission","\u002Fdocs\u002Fforms\u002Fafter-submission","1.docs\u002F2.forms\u002F4.after-submission","i-lucide-file-text",{"title":35,"path":36,"stem":37,"children":38,"icon":40},"Submissions","\u002Fdocs\u002Fsubmissions","1.docs\u002F3.submissions\u002F1.index",[39],{"title":35,"path":36,"stem":37},"i-lucide-inbox",{"title":42,"path":43,"stem":44,"children":45,"icon":47},"Spam Protection","\u002Fdocs\u002Fspam-protection","1.docs\u002F4.spam-protection\u002F1.index",[46],{"title":42,"path":43,"stem":44},"i-lucide-shield-check",{"title":49,"path":50,"stem":51,"children":52,"icon":94},"Integrations","\u002Fdocs\u002Fintegrations","1.docs\u002F5.integrations\u002F1.index",[53,54,58,62,66,70,74,78,82,86,90],{"title":49,"path":50,"stem":51},{"title":55,"path":56,"stem":57},"Pipedrive","\u002Fdocs\u002Fintegrations\u002Fpipedrive","1.docs\u002F5.integrations\u002F10.pipedrive",{"title":59,"path":60,"stem":61},"Attio","\u002Fdocs\u002Fintegrations\u002Fattio","1.docs\u002F5.integrations\u002F11.attio",{"title":63,"path":64,"stem":65},"Webhooks","\u002Fdocs\u002Fintegrations\u002Fwebhooks","1.docs\u002F5.integrations\u002F2.webhooks",{"title":67,"path":68,"stem":69},"Slack","\u002Fdocs\u002Fintegrations\u002Fslack","1.docs\u002F5.integrations\u002F3.slack",{"title":71,"path":72,"stem":73},"Zapier","\u002Fdocs\u002Fintegrations\u002Fzapier","1.docs\u002F5.integrations\u002F4.zapier",{"title":75,"path":76,"stem":77},"Microsoft Teams","\u002Fdocs\u002Fintegrations\u002Fteams","1.docs\u002F5.integrations\u002F5.teams",{"title":79,"path":80,"stem":81},"Discord","\u002Fdocs\u002Fintegrations\u002Fdiscord","1.docs\u002F5.integrations\u002F6.discord",{"title":83,"path":84,"stem":85},"Make","\u002Fdocs\u002Fintegrations\u002Fmake","1.docs\u002F5.integrations\u002F7.make",{"title":87,"path":88,"stem":89},"n8n","\u002Fdocs\u002Fintegrations\u002Fn8n","1.docs\u002F5.integrations\u002F8.n8n",{"title":91,"path":92,"stem":93},"Airtable","\u002Fdocs\u002Fintegrations\u002Fairtable","1.docs\u002F5.integrations\u002F9.airtable","i-lucide-webhook",{"title":96,"path":97,"stem":98,"children":99,"icon":106},"Domains","\u002Fdocs\u002Fdomains","1.docs\u002F6.domains\u002F1.index",[100,102],{"title":101,"path":97,"stem":98},"Custom Domains",{"title":103,"path":104,"stem":105},"Import forms from your website","\u002Fdocs\u002Fdomains\u002Fimport-forms","1.docs\u002F6.domains\u002F2.import-forms","i-lucide-globe",{"title":108,"path":109,"stem":110,"children":111,"icon":113},"Teams & Members","\u002Fdocs\u002Fteams","1.docs\u002F7.teams\u002F1.index",[112],{"title":108,"path":109,"stem":110},"i-lucide-users",{"title":115,"path":116,"stem":117,"children":118,"icon":120},"Billing & Plans","\u002Fdocs\u002Fbilling","1.docs\u002F8.billing\u002F1.index",[119],{"title":115,"path":116,"stem":117},"i-lucide-credit-card",{"id":122,"title":42,"body":123,"dateModified":273,"datePublished":273,"description":274,"extension":275,"meta":276,"navigation":277,"path":43,"seo":278,"sitemap":279,"stem":44,"__hash__":280},"docs\u002F1.docs\u002F4.spam-protection\u002F1.index.md",{"type":124,"value":125,"toc":265},"minimark",[126,139,151,156,159,185,189,196,199,203,210,255,258,262],[127,128,129,130,134,135,138],"p",{},"Because your form lives on your own site, Formiary only sees the submissions\nthat reach its endpoint. It gives you a few layers of protection you can combine\nto keep junk out of your data. Configure these from a form's ",[131,132,133],"strong",{},"Settings"," tab\n(under ",[131,136,137],{},"Submission Rules",") and on individual fields.",[127,140,141,142,145,146,150],{},"A submission caught by any of these mechanisms is flagged as ",[131,143,144],{},"spam"," rather than\nsilently dropped, so you can review anything that was caught by mistake from the\n",[147,148,35],"a",{"href":149},"\u002Fdocs\u002Fsubmissions#spam"," view.",[152,153,155],"h2",{"id":154},"honeypot-fields","Honeypot fields",[127,157,158],{},"A honeypot is a hidden field that real users never see or fill in, but automated\nbots often do. If any value arrives in a honeypot field, the submission is\nflagged as spam.",[160,161,162,175,182],"ol",{},[163,164,165,166,170,171,174],"li",{},"Add a field (a ",[167,168,169],"code",{},"hidden"," type works well) and mark it as a ",[131,172,173],{},"honeypot",".",[163,176,177,178,181],{},"Include a matching input in your HTML, hidden from users with CSS (avoid\n",[167,179,180],{},"type=\"hidden\""," alone if you want to catch more bots — visually hiding a\nnormal input tends to work better).",[163,183,184],{},"Leave it empty for real users; anything that fills it gets flagged.",[152,186,188],{"id":187},"link-detection","Link detection",[127,190,191,192,195],{},"Spam submissions frequently contain links. You can flag a text field so that\nvalues containing several links are marked as spam. A field with link detection\nenabled flags the submission when its value contains ",[131,193,194],{},"three or more"," links.",[127,197,198],{},"Enable this per field when you edit or create a field.",[152,200,202],{"id":201},"rate-limits","Rate limits",[127,204,205,206,209],{},"Rate-limit rules cap how often a form can be submitted. Add them under\n",[131,207,208],{},"Submission Rules → Rate Limits",". Each rule defines:",[211,212,213,231,241],"ul",{},[163,214,215,218,219,222,223,226,227,230],{},[131,216,217],{},"Scope"," — count submissions ",[131,220,221],{},"per IP address",", ",[131,224,225],{},"per form",", or ",[131,228,229],{},"per\nfield"," value.",[163,232,233,236,237,174],{},[131,234,235],{},"Limit & window"," — e.g. ",[238,239,240],"em",{},"5 submissions every 10 minutes",[163,242,243,246,247,250,251,254],{},[131,244,245],{},"Action"," — ",[131,248,249],{},"Reject"," the submission outright, or ",[131,252,253],{},"Mark as spam"," so it's\nstill captured but flagged.",[127,256,257],{},"Rules can be toggled active\u002Finactive and given a name and description so their\nintent is clear.",[152,259,261],{"id":260},"combining-protections","Combining protections",[127,263,264],{},"These layers are complementary. A common setup is a honeypot field to catch\nobvious bots, link detection on free-text fields, and a per-IP rate limit to stop\nfloods. The form's Settings tab shows a summary of how many of each protection\nyou have configured.",{"title":266,"searchDepth":267,"depth":267,"links":268},"",2,[269,270,271,272],{"id":154,"depth":267,"text":155},{"id":187,"depth":267,"text":188},{"id":201,"depth":267,"text":202},{"id":260,"depth":267,"text":261},"2026-07-02","Flag or reject junk submissions with honeypots, link detection, and rate limits.","md",{},true,{"title":42,"description":274},{"loc":43},"A0wXqTl9gFBZZ28Bc5h1NEygedjgpSPJ9AECh03ku0k",[282,284],{"title":35,"path":36,"stem":37,"description":283,"children":-1},"View, search, filter, and export the data your forms collect.",{"title":49,"path":50,"stem":51,"description":285,"children":-1},"Forward submissions from your forms to Slack, Zapier, Teams, Discord, and more.",1785813502517]