{"id":6387,"date":"2021-06-23T10:00:03","date_gmt":"2021-06-23T14:00:03","guid":{"rendered":"http:\/\/localhost\/documentation\/"},"modified":"2026-04-16T13:16:06","modified_gmt":"2026-04-16T17:16:06","slug":"spam","status":"publish","type":"post","link":"https:\/\/docs.gravityforms.com\/spam\/","title":{"rendered":"Spam Detection and Protection"},"content":{"rendered":"\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;Add a section about save and continue. With 2.9, the honeypot is validated, and the email address entered in the send link form is validated using the WordPress is_email function, so it does support WP plugins that use the is_email filter. Captchas (e.g. reCAPTCHA (all versions) and Turnstile) are not validated. With 3.0, the email field on the send link form will also support the gform_email_field_rejectable_values and gform_field_validation filters.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduction\">Introduction<\/h2>\n\n\n\n<p>Publicly accessible forms are vulnerable to spam, and combating it is difficult due to the ever-evolving tactics of spammers and bots. However, there are various solutions available to minimize the submission of spam or to mark entries as spam. It\u2019s important to note that no single method can catch 100% of spam, and as a result, there are numerous anti-spam techniques and services. For optimal results, it\u2019s recommended to <strong>use multiple solutions simultaneously<\/strong>.<\/p>\n\n\n\n<p>See also: <a href=\"https:\/\/docs.gravityforms.com\/moderating-entries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Moderating Entries<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"first-steps\">First Steps<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"form-status\">Form Status<\/h3>\n\n\n\n<p>If a form is no longer needed or not currently in use, switch its Status toggle on the <a href=\"https:\/\/docs.gravityforms.com\/edit-forms\/\" target=\"_blank\" rel=\"noreferrer noopener\">Forms List page<\/a> to &#8220;Inactive&#8221;, or move it to the &#8220;Trash&#8221;. Inactive and trashed forms will not accept or process submissions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"honeypot\">Honeypot<\/h3>\n\n\n\n<p>Gravity Forms includes a built-in honeypot feature available in the Spam Detection section of each form\u2019s <a href=\"https:\/\/docs.gravityforms.com\/form-settings\/#h-spam-detection\" target=\"_blank\" rel=\"noreferrer noopener\">Form Settings<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;Add honeypot &amp; submission speed check video here.<\/pre>\n\n\n\n<p>When enabled, the honeypot detects spam using multiple techniques:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A hidden honeypot field. The submission is spam if the field contains a value.<\/li>\n\n\n\n<li>A JavaScript-inserted site-specific version hash. The submission is spam if the value is missing or fails validation. Since version 2.7.<\/li>\n\n\n\n<li>An optional <a href=\"https:\/\/docs.gravityforms.com\/form-settings\/#h-spam-detection\" target=\"_blank\" rel=\"noreferrer noopener\">Submission Speed Check<\/a> that measures the time between page load and user actions such as clicking submit, next, or previous. The submission is considered spam if the timing data is missing, invalid, or below the configured threshold. Since version 2.9.21.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;For 3.0: add a 4th bullet to cover how state validation is also checked.<\/pre>\n\n\n\n<p>Depending on your form settings, detected spam will either be blocked (not saved, no entry is created) or saved as an entry marked as spam.<\/p>\n\n\n\n<p>If <a href=\"https:\/\/docs.gravityforms.com\/logging-and-debugging\/\" target=\"_blank\" rel=\"noreferrer noopener\">logging is enabled<\/a>, the result of the honeypot checks will be recorded in the <a href=\"#h-core-log\">Gravity Forms core log<\/a>.<\/p>\n\n\n\n<p>The <a href=\"https:\/\/docs.gravityforms.com\/gform_honeypot_labels_pre_render\/\" target=\"_blank\" rel=\"noreferrer noopener\">gform_honeypot_labels_pre_render<\/a> filter can be used to change the labels used by the honeypot field.<\/p>\n\n\n\n<p>If you think a bot has discovered the name attribute of your form\u2019s hidden honeypot field, the <a href=\"https:\/\/docs.gravityforms.com\/gform_honeypot_input_name\/\" target=\"_blank\" rel=\"noreferrer noopener\">gform_honeypot_input_name<\/a> filter can be used to customize it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"form-design\">Form Design<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"fields\">Fields<\/h4>\n\n\n\n<p>Out of the box, Gravity Forms automatically blocks spam submissions that send random or unexpected values to supported form fields as part of its built-in form validation feature. Refer to the <a href=\"https:\/\/docs.gravityforms.com\/state-validation\/\" target=\"_blank\" rel=\"noreferrer noopener\">State Validation<\/a> article for more details.<\/p>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;Add a bit about using the correct field types e.g. email fields for email addresses, website fields for URLs, because of the type-specific validation those fields perform.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"multi-page-forms\">Multi-Page Forms<\/h4>\n\n\n\n<p>The <a href=\"https:\/\/docs.gravityforms.com\/page-break\/\" target=\"_blank\" rel=\"noreferrer noopener\">Page field<\/a> can be used to split a long form into multiple pages (a multipage or paginated form). While its main purpose is improving usability, it also has the benefit of making it harder for bots to submit spam.<\/p>\n\n\n\n<p>Configuring Next Button <a href=\"https:\/\/docs.gravityforms.com\/category\/user-guides\/conditional-logic\/\" target=\"_blank\" rel=\"noreferrer noopener\">Conditional Logic<\/a> on <a href=\"https:\/\/docs.gravityforms.com\/page-break\/#h-conditional-logic-settings\" target=\"_blank\" rel=\"noreferrer noopener\">Page fields<\/a> can prevent some bots reaching later pages of the form. If the submission is forced while the button is hidden or disabled, the form will fail validation.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"payment-forms\">Payment Forms<\/h4>\n\n\n\n<p>If you will be accepting payments using a card or payment add-on field, make your form multi-page (see above), and position the card\/payment field on the last page of the form.<\/p>\n\n\n\n<p>Using conditional logic on next buttons and enabling the required setting on fields on earlier pages will limit the use of the card\/payment field to those who have successfully completed the earlier pages, reducing the risk of fraudulent carding activity.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"submit-button-conditional-logic\">Submit Button Conditional Logic<\/h4>\n\n\n\n<p>Add a <a href=\"https:\/\/docs.gravityforms.com\/single-line-text\/\">single-line text<\/a>, <a href=\"https:\/\/docs.gravityforms.com\/number\/\" target=\"_blank\" rel=\"noreferrer noopener\">number<\/a>, or <a href=\"https:\/\/docs.gravityforms.com\/multiple-choice-field\/\" target=\"_blank\" rel=\"noreferrer noopener\">multiple choice<\/a> field to your form which asks a simple question. A real person should be able to answer the question correctly, whereas most bots won&#8217;t.<\/p>\n\n\n\n<p>Here are some examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A panda is black and _____<\/li>\n\n\n\n<li>4 + 7 = _____<\/li>\n\n\n\n<li>What goes up, must come _____<\/li>\n\n\n\n<li>A cow has how many legs? _____<\/li>\n\n\n\n<li>The sky is typically what colour? _____<\/li>\n\n\n\n<li>What sound does a cat make? _____<\/li>\n\n\n\n<li>What do you call water when it is frozen? _____<\/li>\n\n\n\n<li>What is 10 minus 4? _____<\/li>\n<\/ul>\n\n\n\n<p>In the settings panel of the <a href=\"https:\/\/docs.gravityforms.com\/submit-button\/\" target=\"_blank\" rel=\"noreferrer noopener\">Submit Button field<\/a>, in the <a href=\"https:\/\/docs.gravityforms.com\/form-editor\/\" target=\"_blank\" rel=\"noreferrer noopener\">Form Editor<\/a>, you would <a href=\"https:\/\/docs.gravityforms.com\/submit-button\/#h-conditional-logic\" target=\"_blank\" rel=\"noreferrer noopener\">enable button conditional logic<\/a> based on this question field. If the submitter doesn\u2019t input the correct answer, the form can&#8217;t submit. If the submission is forced while the button is hidden or disabled, the form will fail validation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"additional-solutions\">Additional Solutions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-search-indexing\">Block Search Indexing<\/h3>\n\n\n\n<p>Preventing search engines from indexing the page containing the form can help prevent your form being targeted by bots and spammers.<\/p>\n\n\n\n<p>Google recommends using the <a href=\"https:\/\/support.google.com\/webmasters\/answer\/93710\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">noindex directive<\/a>, but if the page is already indexed, you&#8217;ll also need to remove it via <a href=\"https:\/\/www.google.com\/webmasters\/tools\/url-removal\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">webmaster tools<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cloudflare\">Cloudflare<\/h3>\n\n\n\n<p>Cloudflare provides various services, including <a href=\"https:\/\/support.cloudflare.com\/hc\/en-us\/articles\/217074967-Configuring-IP-Access-Rules\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">IP Access Rules<\/a>, <a href=\"https:\/\/www.cloudflare.com\/ddos\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">DDoS Protection<\/a>, <a href=\"https:\/\/www.cloudflare.com\/waf\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WAF<\/a>, <a href=\"https:\/\/www.cloudflare.com\/products\/bot-management\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Bot Management<\/a>, <a href=\"https:\/\/www.cloudflare.com\/rate-limiting\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Rate Limiting<\/a>, <a href=\"https:\/\/www.cloudflare.com\/ssl\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">SSL\/TLS<\/a>, and <a href=\"https:\/\/www.cloudflare.com\/dns\/dnssec\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">DNSSEC<\/a>, that can safeguard your site and forms. With IP Access Rules, you can easily block entire countries.<\/p>\n\n\n\n<p>Our <a href=\"https:\/\/docs.gravityforms.com\/category\/add-ons-gravity-forms\/cloudflare-turnstile-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudflare Turnstile Add-On<\/a> enables integration with the <a href=\"https:\/\/www.cloudflare.com\/products\/turnstile\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Cloudflare Turnstile<\/a> service.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f5955221\"><strong>Note<\/strong>: If you decide to use Cloudflare services, please make sure to keep <strong><a href=\"https:\/\/developers.cloudflare.com\/speed\/optimization\/content\/rocket-loader\/enable\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Rocket Loader<\/a> disabled<\/strong>, and <strong>exclude pages that include forms from <a href=\"https:\/\/developers.cloudflare.com\/cache\/how-to\/cache-rules\/create-dashboard\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Cloudflare&#8217;s caching<\/a><\/strong> to prevent potential issues.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"integrations-plugins\">Integrations &amp; Plugins<\/h3>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;Add AbuseIPDB Add-On here.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"akismet-add-on\">Akismet Add-On<\/h4>\n\n\n\n<p>The <a href=\"https:\/\/docs.gravityforms.com\/category\/add-ons-gravity-forms\/akismet-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener\">Akismet Add-On<\/a> sends form submissions to the <a href=\"https:\/\/akismet.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Akismet<\/a> service for analysis. As of version 1.1, the <a href=\"https:\/\/wordpress.org\/plugins\/akismet\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Akismet plugin by Automattic<\/a> no longer needs to be active. Submissions identified as spam are saved, with the entry marked as spam.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"cloudflare-turnstile-add-on\">Cloudflare Turnstile Add-On<\/h4>\n\n\n\n<p>The <a href=\"https:\/\/docs.gravityforms.com\/category\/add-ons-gravity-forms\/cloudflare-turnstile-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudflare Turnstile Add-On<\/a> offers a captcha with a focus on privacy and user experience. It automatically chooses from a rotating suite of non-intrusive browser challenges based on telemetry and client behavior exhibited during a session, without the use of cookies. Submissions are blocked or fail validation.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"recaptcha-add-on\">reCAPTCHA Add-On<\/h4>\n\n\n\n<p>The <a href=\"https:\/\/docs.gravityforms.com\/category\/add-ons-gravity-forms\/recaptcha-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener\">reCAPTCHA Add-On<\/a> adds support for the score-based Google reCAPTCHA v3 or Enterprise functionality, without using a form field. If the reCAPTCHA script doesn&#8217;t run or the response is invalid, the form will fail validation without any-field specific errors. Entries are marked as spam when their score from the reCAPTCHA response is less than or equal to the configured threshold.<\/p>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;We'll need to update this when Enterprise checkbox support is added.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"captcha-field\">Captcha Field (legacy)<\/h4>\n\n\n\n<p>The built-in <a href=\"https:\/\/docs.gravityforms.com\/captcha\/\" target=\"_blank\" rel=\"noreferrer noopener\">Captcha field<\/a> can reduce spam from bots, but it&#8217;s no longer recommended because it can <a href=\"https:\/\/docs.gravityforms.com\/accessibility-for-content-providers\/#h-recaptchas\" target=\"_blank\" rel=\"noreferrer noopener\">introduce accessibility issues<\/a>. It integrates with Google&#8217;s legacy reCAPTCHA version 2 (checkbox or invisible) or the third party <a href=\"https:\/\/wordpress.org\/plugins\/really-simple-captcha\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Really Simple CAPTCHA<\/a> plugin, which is image-based. Submissions are blocked or fail validation.<\/p>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;For 3.0: this field won't be available when the new optimize for accessibility setting is enabled.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"certified-developer-add-ons\">Certified Developer Add-Ons<\/h4>\n\n\n\n<p>The following add-ons are from <a href=\"https:\/\/www.gravityforms.com\/certified-developers-and-add-ons\/\" target=\"_blank\" rel=\"noreferrer noopener\">certified developers<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Add-On<\/th><th>Developer<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/gravitywiz.com\/documentation\/gravity-forms-advanced-phone-field\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Advanced Phone Field<\/a><\/td><td>Gravity Wiz<\/td><td>Enhances the Phone field with automatic phone number validation.<\/td><\/tr><tr><td><a href=\"https:\/\/gravitywiz.com\/documentation\/gravity-forms-blocklist\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Blocklist<\/a><\/td><td>Gravity Wiz<\/td><td>Validates submissions against the WordPress Disallowed Comment Keys (formerly Comment Blocklist \/ Comment Blacklist).<\/td><\/tr><tr><td><a href=\"https:\/\/gravitywiz.com\/documentation\/gravity-forms-email-validator\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Email Validator<\/a><\/td><td>Gravity Wiz<\/td><td>Enhances the Email field with automatic email and email domain validation.<\/td><\/tr><tr><td><a href=\"https:\/\/gravitywiz.com\/documentation\/gravity-connect-openai\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">GC OpenAI<\/a><\/td><td>Gravity Wiz<\/td><td>Checks if content from the form submission complies with <a href=\"https:\/\/beta.openai.com\/docs\/usage-policies\/content-policy\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">OpenAI&#8217;s usage policies<\/a>. See <a href=\"https:\/\/gravitywiz.com\/gravity-forms-moderation-gc-openai\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">How to Use AI to Boost Gravity Forms Moderation (with GC OpenAI)<\/a> for more details.<\/td><\/tr><tr><td><a href=\"https:\/\/gravitywiz.com\/documentation\/gravity-forms-limit-submissions\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Limit Submissions<\/a><\/td><td>Gravity Wiz<\/td><td>Limits submissions by user, role, IP, URL, or field value for specified time periods.<\/td><\/tr><tr><td><a href=\"https:\/\/cosmicgiant.com\/plugins\/one-time-password\/\" target=\"_blank\" rel=\"noreferrer noopener\">One-Time Password<\/a><\/td><td>CosmicGiant<\/td><td>Protects forms by adding a simple verification field. Before a user can submit the form, they\u2019ll click a button to send a verification code via email or SMS. Once verified, the form can be submitted.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/gravity-forms-zero-spam\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Zero Spam<\/a><\/td><td>GravityKit<\/td><td>Uses JavaScript to inject a time-limited token into the form submission or save progress (Save and Continue) request. If the token is missing, or it doesn&#8217;t match the expected token, the entry is marked as spam, or the progress is not saved. Validates email fields with Email rejection rules and takes action based on matching addresses, domains, or patterns.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"third-party-plugins\">Third-party Plugins<\/h4>\n\n\n\n<p>The following solutions are from third-party developers:<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"plugins-blocklist\">Blocklist<\/h5>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Plugin<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/wc-blacklist-manager\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Blacklist Manager<\/a><\/td><td>Blocks submissions that match your blocklists (IP addresses, email addresses, phone numbers or domains).<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/gf-block-ips\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Block IPs for Gravity Forms<\/a><\/td><td>Blocks submissions from specified IP addresses.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/bsk-gravityforms-blacklist\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">BSK Forms Blacklist<\/a><\/td><td>Blocks submissions that match your blocklists (emails, IPs, or other values).<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/disposable-email-blocker-gravityforms\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Disposable Email Blocker<\/a><\/td><td>Enhances email field validation to reject disposable or temporary email addresses.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/gravity-forms-email-blacklist\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Gravity Forms Email Blacklist<\/a><\/td><td>Enhances email field validation to reject specified email addresses and\/or domains.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"plugins-captchas\">Captchas<\/h5>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Plugin<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/altcha-spam-protection\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">ALTCHA<\/a><\/td><td>Includes the ALTCHA field, which uses ALTCHA\u2019s real-time spam-protection (heuristic and behavioural signals) to block bots, repeat offenders, and low-quality submissions.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/captcha-eu\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Captcha.eu<\/a><\/td><td>Protects forms from bots using advanced, invisible behavioral analysis \u2013 no puzzles, no image selection, no user friction.<\/td><\/tr><tr><td><a href=\"https:\/\/captcha4wp.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Captcha 4WP<\/a><\/td><td>Includes the Captcha 4WP field, which supports multiple CAPTCHA service providers, including reCAPTCHA, hCaptcha, and Cloudflare Turnstile.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/captchafox-for-forms\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">CaptchaFox<\/a><\/td><td>Includes the CaptchaFox field, which utilizes various data signals and challenges to verify the authenticity of the user without the use of cookies or trackers.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/friendly-captcha\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Friendly Captcha for WordPress<\/a><\/td><td>Includes the FriendlyCaptcha field, a proof-of-work based solution in which the user\u2019s device solves a unique crypto puzzle.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/hcaptcha-for-forms-and-more\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">hCaptcha for WP<\/a><\/td><td>Includes the hCaptcha field, a privacy-focused alternative to reCAPTCHA.<\/td><\/tr><tr><td><a href=\"https:\/\/pluginbrewery.com\/wordpress-plugins\/multiform-anti-spam-image-captcha-pro\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">MultiForm Anti-Spam Image CAPTCHA Pro<\/a><\/td><td>Includes a fully customizable image-based CAPTCHA field.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/captcha-for-contact-form-7\/\" target=\"_blank\" rel=\"noreferrer noopener\">SilentShield<\/a><\/td><td>Adds invisible CAPTCHA and anti-spam protection using challenge checks and bot-detection heuristics to block automated submissions and reduce spam without impacting legitimate users.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/trustcaptcha\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">TrustCaptcha<\/a><\/td><td>Includes the Trustcaptcha field, a multi-layered security concept with proof-of-work and intelligent bot score for reliable bot detection.<\/td><\/tr><tr><td><a href=\"https:\/\/bestwebsoft.com\/products\/wordpress\/plugins\/captcha\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WordPress Captcha Plugin Pro<\/a><\/td><td>Includes the BWS Captcha field, which works without external services. No API keys, no tracking, and full privacy control \u2014 everything is processed locally on your site.<\/td><\/tr><tr><td><a href=\"https:\/\/wpimagecaptcha.com\/downloads\/pro-plugin\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WP Image CAPTCHA Pro<\/a><\/td><td>Includes the Image CAPTCHA field, that requires users to identify or interact with images to prove they are human.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"plugins-field-validation\">Field Validation<\/h5>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Plugin<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/email-validator-by-byteplant\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Byteplant Email Validator<\/a><\/td><td>Enhances email field validation using Byteplant\u2019s validation service \u2014 detecting invalid, mistyped, disposable, or non-existent addresses.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/byteplant-phone-validator\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Byteplant Phone Validator<\/a><\/td><td>Enhances phone field validation using Byteplant\u2019s phone-validation service to check format, existence, and carrier\/region data, helping block invalid, mistyped, or potentially fraudulent numbers.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/clearout-email-validator\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Clearout Email Validator<\/a><\/td><td>Enhances email field validation using Clearout&#8217;s service, performing 20+ refined real-time validation checks to determine the current status of the email address.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/debounce-io-email-validator\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">DeBounce Email Validator<\/a><\/td><td>Enhances email field validation using DeBounce\u2019s validation service to detect invalid, disposable, role-based, or non-existent addresses.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/dilli-email-validator\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Dilli Email Validator<\/a><\/td><td>Enhances email field validation using Dilli\u2019s validation service to detect invalid, disposable, or non-existent addresses.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/gf-no-duplicates\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">GF No Duplicates<\/a><\/td><td>Uses a unique token to prevent identical POST requests from creating duplicate entries \u2014 for example, requests some browsers resend when users click back\/refresh or when mobile tabs are restored.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/regex-textfield-gravityforms-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Regex Textfield<\/a><\/td><td>Includes a new field type, allowing form editors to specify a regex string to be used when validating the submitted value.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"plugins-opt-in-otp\">Opt-In\/OTP<\/h5>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Plugin<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/albertbrueckmann.de\/produkte\/addon-double-opt-in-for-gravity-forms-en\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Double Opt In for Gravity Forms<\/a><\/td><td>Adds a double opt-in step by sending an email with a verification link after form submission and only accepting the entry once the user clicks to confirm, reducing fake sign-ups, spam, and unverified or low-quality leads.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/gravity-otp-verification\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Gravity Forms \u2013 OTP Verification (SMS\/EMAIL)<\/a><\/td><td>Adds one-time password (OTP) verification via SMS or email, requiring users to enter a time-limited code before the form is accepted to block fake submissions, automated bots and unauthorised or fraudulent entries.<\/td><\/tr><tr><td><a href=\"https:\/\/plugins.miniorange.com\/otp-verification-addon-for-gravity-forms\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">miniorange OTP Verification Addon<\/a><\/td><td>Adds OTP (one-time password) verification via SMS or email, requiring users to enter a time-limited code before the form is accepted to block automated bots, fake submissions and unauthorised or fraudulent entries.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"plugins-spam-detection\">Spam Detection<\/h5>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Plugin<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/cleantalk-spam-protect\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">CleanTalk<\/a><\/td><td>Uses the CleanTalk anti-spam service to check submissions against a cloud-based spam database and behavioural heuristics, blocking spam bots, automated scripts and known spammers in real time to keep form entries clean and reduce unwanted or malicious submissions.<\/td><\/tr><tr><td><a href=\"https:\/\/fullworksplugins.com\/products\/anti-spam\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Fullworks<\/a><\/td><td>Detects and block spam submissions using server-side checks, heuristics and configurable rules\u2014preventing automated bots, spammy entries and abusive submissions from being accepted.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/highpots-spam-protection\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">HighPots Spam Protection<\/a><\/td><td>Adds honeypot-style fields and other hidden-field checks to trap and block automated bots \u2014 submissions that fill the hidden fields are rejected, reducing spam and abusive automated entries.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/contact-forms-anti-spam\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Maspik<\/a><\/td><td>Adds honeypot and other anti-spam techniques to silently trap and block automated bots; submissions that trigger the hidden-field checks are rejected, reducing spam and abusive automated entries.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/no-spam-ai\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">No Spam AI<\/a><\/td><td>Uses AI-powered analysis to evaluate submissions for spammy content and patterns, marking the entry as spam.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/oopspam-anti-spam\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">OOPSpam<\/a><\/td><td>Uses the OOPSpam service to validate submissions against a cloud-based spam detection API, blocking or flagging entries that match known spam patterns, abusive content, or bot behaviour.<\/td><\/tr><tr><td><a href=\"https:\/\/getshieldsecurity.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Shield Security Pro<\/a><\/td><td>Adds Shield\u2019s anti-spam and security checks, using behaviour analysis, blacklists and blocking rules to detect and stop automated bots, suspicious submissions and known malicious actors.<\/td><\/tr><tr><td><a href=\"https:\/\/wordpress.org\/plugins\/honeypot\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WP Armour<\/a><\/td><td>Adds honeypot fields and optional time-based submission checks to silently trap automated bots\u2014submissions that fill hidden fields or submit too quickly are blocked, reducing spam and abusive automated entries.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"code-snippets\">Code Snippets<\/h3>\n\n\n\n<p>Code snippets can be used in the theme functions.php file or custom functionality plugins.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"snippets-field-validation\">Field Validation<\/h4>\n\n\n\n<p>Since version 2.9.15, the Email field has a dedicated filter, <a href=\"https:\/\/docs.gravityforms.com\/gform_email_field_rejectable_values\/\" target=\"_blank\" rel=\"noreferrer noopener\">gform_email_field_rejectable_values<\/a>, which can be used to reject partial (e.g. domains) or complete email addresses. When a rejectable value is found, the field fails validation and the form is re-displayed with a validation error.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_email_field_rejectable_values\/#h-reject-disposable-domains\" target=\"_blank\" rel=\"noreferrer noopener\">Reject disposable domains<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/automatically-block-unwanted-emails-using-code\/\" target=\"_blank\" rel=\"noreferrer noopener\">Automatically Block Unwanted Emails Using Code<\/a><\/li>\n<\/ul>\n\n\n\n<p>The <a href=\"\/gform_field_validation\" target=\"_blank\" rel=\"noreferrer noopener\">gform_field_validation<\/a> and\/or <a href=\"\/gform_validation\" target=\"_blank\" rel=\"noreferrer noopener\">gform_validation<\/a> filters can be used to perform custom validation of field values.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_field_validation\/#h-email-validation-by-third-party-api\" target=\"_blank\" rel=\"noreferrer noopener\">Integrate with QuickEmailVerification API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_field_validation\/#h-prevent-submission-based-on-a-word-list\" target=\"_blank\" rel=\"noreferrer noopener\">Prevent submission based on a word list<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_field_validation\/#h-prevent-submission-if-a-url-is-entered-into-text-or-paragraph-fields\" target=\"_blank\" rel=\"noreferrer noopener\">Prevent submission if a URL is entered into Text or Paragraph fields<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_field_validation\/#h-prevent-submission-of-cyrillic-characters\" target=\"_blank\" rel=\"noreferrer noopener\">Prevent submission of Cyrillic characters<\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"snippets-spam-filter\">Spam Filter<\/h4>\n\n\n\n<p>The <a href=\"\/gform_entry_is_spam\" target=\"_blank\" rel=\"noreferrer noopener\">gform_entry_is_spam<\/a> filter can be used to mark submissions as spam.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_entry_is_spam\/#h-integrate-with-zerobounce\" target=\"_blank\" rel=\"noreferrer noopener\">Integrate with the ZeroBounce Email Validation API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_entry_is_spam\/#h-check-field-values-for-urls\" target=\"_blank\" rel=\"noreferrer noopener\">Check field values for URLs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_entry_is_spam\/#h-ip-rate-limit\" target=\"_blank\" rel=\"noreferrer noopener\">Rate limit submissions based on the IP address<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_entry_is_spam\/#h-check-name-field-values\" target=\"_blank\" rel=\"noreferrer noopener\">Check that first and last name inputs contain different values<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gravityforms.com\/gform_entry_is_spam\/#h-integrate-with-ipapi-co\" target=\"_blank\" rel=\"noreferrer noopener\">Use ipapi.co to check country code for IP address<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/halfelf.org\/2021\/gravity-forms-and-disallowed-keys\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Gravity Forms and Disallowed Keys by Ipstenu (Mika Epstein)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/halfelf.org\/2023\/stoping-jerks-in-gravity-forms\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Stopping Jerks in Gravity Forms by Ipstenu (Mika Epstein)<\/a><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading\" id=\"h-what-happens-when-a-submission-is-marked-as-spam\">What Happens When a Submission Is Marked as Spam<\/h2>\n\n\n\n<p>Submissions that pass validation but are flagged and saved as spam appear in the form&#8217;s Entries section under the spam filter. Configured notifications and add-on feeds are not processed.<\/p>\n\n\n\n<p>By default, the default text used by new forms will be displayed as the confirmation for spam submissions. A custom confirmation can be enabled using the spam confirmation setting in the <a href=\"https:\/\/docs.gravityforms.com\/form-settings\/#h-spam-detection\" type=\"link\" id=\"https:\/\/docs.gravityforms.com\/form-settings\/#h-spam-detection\">form settings<\/a>. Enabling the setting and saving automatically adds a new confirmation called <a href=\"https:\/\/docs.gravityforms.com\/?p=49086\" type=\"link\" id=\"https:\/\/docs.gravityforms.com\/?p=49086\">Spam Confirmation<\/a>, which can be edited in the form <a href=\"https:\/\/docs.gravityforms.com\/category\/user-guides\/confirmations\/\" type=\"category\" id=\"19480\">Confirmations<\/a> settings. It defaults to the same text as the default confirmation used by new forms. Disabling the setting and saving will automatically delete the confirmation.<\/p>\n\n\n\n<p>The confirmation can also be customised using the <code><a href=\"https:\/\/docs.gravityforms.com\/gform_confirmation\/#h-5-customize-the-message-for-spam-submissions\" target=\"_blank\" rel=\"noreferrer noopener\">gform_confirmation<\/a><\/code> filter.<\/p>\n\n\n\n<p>When viewing an entry in the spam filter, a note often indicates which system or rule flagged it as spam. For more information, refer to <a href=\"https:\/\/docs.gravityforms.com\/reviewing-spam-submissions\/\" target=\"_blank\" rel=\"noreferrer noopener\">Reviewing Spam Submissions<\/a>.<\/p>\n<\/div><\/div>\n\n\n\n<pre class=\"wp-block-rocketgenius-editor-comments\"><span class=\"dashicons dashicons-admin-comments\"><\/span><b>richardW8k:<\/b>&nbsp;Add a troubleshooting section. List some common issues like entries marked as spam that aren't spam. Suggest checking entry note for clues. Cover common causes such as caching\/optimization and link to other relevant pages.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-logging\">Logging<\/h2>\n\n\n\n<p>If <a href=\"https:\/\/docs.gravityforms.com\/logging-and-debugging\/\" target=\"_blank\" rel=\"noreferrer noopener\">logging is enabled<\/a>, the result of some spam checks will be recorded in the logs. Here are some possible logging statements, not all of them will be recorded for every submission.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-core-log\">Core Log<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; auto-links: false; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::validate_honeypot(): Is honeypot input (name: &#x5B;input name]) empty? &#x5B;Yes or No].\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::validate_honeypot(): Submission initiated by GFAPI. version_hash validation and speed check bypassed.\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::validate_honeypot(): Is submission valid? No; version_hash input is empty.\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::validate_honeypot(): Is version_hash input valid? &#x5B;Yes or No].\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::is_valid_submission_speed(): Submission speed check is disabled.\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::is_valid_submission_speed(): Is speed check valid? No; gform_submission_speeds input is empty or invalid.\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::is_valid_submission_speed(): Is speed check valid? &#x5B;Yes or No]; &#x5B;count] of &#x5B;total] submissions met the threshold (&#x5B;threshold] ms). Min required: &#x5B;number]. All speeds: &#x5B;JSON containing all the recorded timings]\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::validate_honeypot(): Is submission valid? &#x5B;Yes or No].\n&#x5B;date and time] - DEBUG --&gt; Gravity_Forms\\Gravity_Forms\\Honeypot\\GF_Honeypot_Handler::handle_abort_submission(): Result from Honeypot: &#x5B;true or false]\n&#x5B;date and time] - DEBUG --&gt; GFFormDisplay::process_form(): Aborting early via gform_abort_submission_with_confirmation filter.\n&#x5B;date and time] - DEBUG --&gt; GFCommon::is_spam_entry(): Result from gform_entry_is_spam filter: &#x5B;true or false] \n&#x5B;date and time] - DEBUG --&gt; GFCommon::is_spam_entry(): Spam checks completed in &#x5B;number] seconds. Is submission considered spam? &#x5B;Yes or No].\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-akismet-add-on-log\">Akismet Add-On Log<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; auto-links: false; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): Entry #&#x5B;ID] has already been marked as spam by another anti-spam solution.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): Not evaluating entry #&#x5B;ID]; integration disabled for form #&#x5B;ID].\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): No values to evaluate for entry #&#x5B;ID].\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): Spam check failed for entry #&#x5B;ID]; &#x5B;error message]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): Entry #&#x5B;ID] IS spam; &#x5B;API response]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): Entry #&#x5B;ID] is NOT spam; &#x5B;API response]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_Akismet\\GF_Akismet::is_entry_spam(): Spam check failed for entry #&#x5B;ID]; &#x5B;API response]\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-recaptcha-add-on-log\">reCAPTCHA Add-On Log<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; auto-links: false; gutter: false; title: ; quick-code: false; notranslate\" title=\"\">\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::validate_submission(): Validating form (#&#x5B;ID]; Page #&#x5B;Number]) submission.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::validate_submission(): Form is already invalid. Validation skipped.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::should_skip_validation(): Yes! Form preview page.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::should_skip_validation(): Yes! API not initialized.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::should_skip_validation(): Yes! Enterprise has not been fully configured.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::should_skip_validation(): Yes! Disabled by form setting.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::should_skip_validation(): Yes! REST request without input.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::should_skip_validation(): Yes! Older Stripe validation.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::validate_submission(): Validation skipped.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::validate_submission(): Not the first or last page. Validation skipped.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::validate_submission(): Honeypot validation failed. Validation skipped.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::validate_submission(): Validating reCAPTCHA v3.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_Field_RECAPTCHA::is_valid_field_data(): Input &#x5B;input name] empty.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Using cached reCAPTCHA result: &#x5B;result]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Verifying reCAPTCHA submission.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Could not verify the submission because no token was found.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Validating the reCAPTCHA response has failed due to the following: &#x5B;error message]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Validation bypassed due to reCAPTCHA quota limit.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Could not validate the token request from the reCAPTCHA service. &#x5B;token] &#x5B;response]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\Token_Verifier::verify_submission(): Validated reCAPTCHA: &#x5B;response]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::check_for_spam_entry(): Skipping, entry has already been identified as spam by another anti-spam solution.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::is_spam_submission(): Score check skipped.\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::get_spam_score_threshold(): &#x5B;number]\n&#x5B;date and time] - DEBUG --&gt; \\Gravity_Forms\\Gravity_Forms_RECAPTCHA\\GF_RECAPTCHA::check_for_spam_entry(): Is submission considered spam? &#x5B;Yes or No]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"related-articles-from-the-blog\">Related Articles From The Blog<\/h2>\n\n\n<ul class=\"wp-block-rss\"><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/gravity-forms-anti-spam-wordpress\/'>Ultimate guide: Gravity Forms anti-spam protection for WordPress in 2026<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/cloudflare-turnstile-1-5\/'>Brand new release: Cloudflare Turnstile 1.5<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/recaptcha-add-on-2-1\/'>Brand new release: reCAPTCHA Add-On 2.1<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/recaptcha-add-on-2-0\/'>Brand new release: reCAPTCHA Add-On 2.0<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/filter-spam-with-akismet\/'>How to Filter Spam Form Entries with Akismet<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/akismet-add-on-1-1\/'>Brand new release: Akismet Add-On 1.1<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/how-to-enable-anti-spam-honeypot-for-wordpress-forms\/'>How to Enable Anti-Spam Honeypot for WordPress Forms<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/add-recaptcha-to-your-forms\/'>How to Add Google reCAPTCHA v2 and v3 to Your Forms<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/how-to-prevent-spam-form-entries\/'>How to\u2026 Prevent Spam Form Entries<\/a><\/div><\/li><li class='wp-block-rss__item'><div class='wp-block-rss__item-title'><a href='https:\/\/www.gravityforms.com\/blog\/6-tips-to-reduce-spam-form-entries\/'>6 Tips to Reduce Spam Form Entries<\/a><\/div><\/li><\/ul>\n\n\n<script>\n    document.addEventListener('DOMContentLoaded', function () {\n        var rssBlocks = document.querySelectorAll('.wp-block-rss');\n        rssBlocks.forEach(function (block) {\n            block.querySelectorAll('a').forEach(function (a) {\n                a.setAttribute('target', '_blank');\n            });\n        });\n    });\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"related-tutorials-from-the-video-library\">Related Tutorials From The Video Library<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.gravityforms.com\/video\/using-the-akismet-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener\">Using the Akismet Add-On<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.gravityforms.com\/video\/recaptcha\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Invisibly Block Spam on Your Site with Google reCAPTCHA v3<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.gravityforms.com\/video\/fighting-spam-with-honeypot\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fighting Spam with Honeypot<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.gravityforms.com\/video\/five-tools-to-fight-spam\/\" target=\"_blank\" rel=\"noreferrer noopener\">Five Tools to Fight Spam<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>\u200b<strong>Disclaimer<\/strong>: Third-party se<\/em>rvices, <em>plugins, or code snippets that are referenced by our Support documentation or in Support Team communications are provided as suggestions only. We do not evaluate, test or officially support third-party solutions. You are wholly responsible for determining if any suggestion given is sufficient to meet the functional, security, legal, ongoing cost and support needs of your project.<\/em><br><br><em><em><em>Feedback, feature, and integration requests, and other functionality ideas can be submitted at <\/em><\/em><\/em><a href=\"http:\/\/forms.roadmap.gravity.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/forms.roadmap.gravity.com\/<\/a><em><em><em>.<\/em><\/em><\/em><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_autodraft_ids":[],"jetpack_post_was_ever_published":false,"_sb_is_suggestion_mode":false,"_sb_show_suggestion_boards":false,"_sb_show_comment_boards":false,"_sb_suggestion_history":"","_sb_update_block_changes":"","_is_real_time_mode":false,"_realtime_collaborators":"","footnotes":"","cf_checklist_status":["Internal Links","External Links","Alt Text for All Images","Tags Assigned","Category Assigned","SEO Title Length"]},"categories":[6188],"tags":[18785,19115,19116,19117,19118,19119,19120,19121,19374,19375,19491,19493,19494,19537],"class_list":["post-6387","post","type-post","status-publish","format-standard","hentry","category-form-entries","tag-spam","tag-anti-spam","tag-honeypot","tag-captcha","tag-recaptcha","tag-validation","tag-akismet","tag-blacklist","tag-blocklist","tag-disallowed-comment-keys","tag-spam-detection","tag-cloudflare-turnstile","tag-minimum-time-to-submit","tag-fighting-spam","wpautop"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Spam Detection and Protection - Gravity Forms Documentation<\/title>\n<meta name=\"description\" content=\"Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/docs.gravityforms.com\/spam\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spam Detection and Protection\" \/>\n<meta property=\"og:description\" content=\"Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/docs.gravityforms.com\/spam\/\" \/>\n<meta property=\"og:site_name\" content=\"Gravity Forms Documentation\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-23T14:00:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-16T17:16:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/docs.gravityforms.com\/wp-content\/uploads\/2023\/08\/gf-docs-default-v3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"544\" \/>\n\t<meta property=\"og:image:height\" content=\"288\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Justin Pakes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@gravityforms\" \/>\n<meta name=\"twitter:site\" content=\"@gravityforms\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Justin Pakes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/\"},\"author\":{\"name\":\"Justin Pakes\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#\\\/schema\\\/person\\\/8a88745ec2ee5bc1bb24eea8634bf376\"},\"headline\":\"Spam Detection and Protection\",\"datePublished\":\"2021-06-23T14:00:03+00:00\",\"dateModified\":\"2026-04-16T17:16:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/\"},\"wordCount\":2475,\"publisher\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#organization\"},\"keywords\":[\"spam\",\"anti-spam\",\"honeypot\",\"captcha\",\"recaptcha\",\"validation\",\"akismet\",\"blacklist\",\"blocklist\",\"Disallowed Comment Keys\",\"spam detection\",\"cloudflare turnstile\",\"Minimum time to submit\",\"fighting spam\"],\"articleSection\":[\"Entries\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/\",\"url\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/\",\"name\":\"Spam Detection and Protection - Gravity Forms Documentation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#website\"},\"datePublished\":\"2021-06-23T14:00:03+00:00\",\"dateModified\":\"2026-04-16T17:16:06+00:00\",\"description\":\"Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/spam\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/docs.gravityforms.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spam Detection and Protection\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#website\",\"url\":\"https:\\\/\\\/docs.gravityforms.com\\\/\",\"name\":\"Gravity Forms Documentation\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/docs.gravityforms.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#organization\",\"name\":\"Gravity Forms\",\"url\":\"https:\\\/\\\/docs.gravityforms.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/docs.gravityforms.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/gravity-forms-2020-logo-stacked.png\",\"contentUrl\":\"https:\\\/\\\/docs.gravityforms.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/gravity-forms-2020-logo-stacked.png\",\"width\":392,\"height\":515,\"caption\":\"Gravity Forms\"},\"image\":{\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/gravityforms\",\"http:\\\/\\\/@gravityforms.com\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/docs.gravityforms.com\\\/#\\\/schema\\\/person\\\/8a88745ec2ee5bc1bb24eea8634bf376\",\"name\":\"Justin Pakes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/791cb5bec00c6dd4bec2e80cf4df9638297207d8f77890c96b6b483be434ecea?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/791cb5bec00c6dd4bec2e80cf4df9638297207d8f77890c96b6b483be434ecea?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/791cb5bec00c6dd4bec2e80cf4df9638297207d8f77890c96b6b483be434ecea?s=96&d=mm&r=g\",\"caption\":\"Justin Pakes\"},\"url\":\"https:\\\/\\\/docs.gravityforms.com\\\/author\\\/pakes\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Spam Detection and Protection - Gravity Forms Documentation","description":"Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/docs.gravityforms.com\/spam\/","og_locale":"en_US","og_type":"article","og_title":"Spam Detection and Protection","og_description":"Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.","og_url":"https:\/\/docs.gravityforms.com\/spam\/","og_site_name":"Gravity Forms Documentation","article_published_time":"2021-06-23T14:00:03+00:00","article_modified_time":"2026-04-16T17:16:06+00:00","og_image":[{"width":544,"height":288,"url":"https:\/\/docs.gravityforms.com\/wp-content\/uploads\/2023\/08\/gf-docs-default-v3.png","type":"image\/png"}],"author":"Justin Pakes","twitter_card":"summary_large_image","twitter_creator":"@gravityforms","twitter_site":"@gravityforms","twitter_misc":{"Written by":"Justin Pakes","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/docs.gravityforms.com\/spam\/#article","isPartOf":{"@id":"https:\/\/docs.gravityforms.com\/spam\/"},"author":{"name":"Justin Pakes","@id":"https:\/\/docs.gravityforms.com\/#\/schema\/person\/8a88745ec2ee5bc1bb24eea8634bf376"},"headline":"Spam Detection and Protection","datePublished":"2021-06-23T14:00:03+00:00","dateModified":"2026-04-16T17:16:06+00:00","mainEntityOfPage":{"@id":"https:\/\/docs.gravityforms.com\/spam\/"},"wordCount":2475,"publisher":{"@id":"https:\/\/docs.gravityforms.com\/#organization"},"keywords":["spam","anti-spam","honeypot","captcha","recaptcha","validation","akismet","blacklist","blocklist","Disallowed Comment Keys","spam detection","cloudflare turnstile","Minimum time to submit","fighting spam"],"articleSection":["Entries"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/docs.gravityforms.com\/spam\/","url":"https:\/\/docs.gravityforms.com\/spam\/","name":"Spam Detection and Protection - Gravity Forms Documentation","isPartOf":{"@id":"https:\/\/docs.gravityforms.com\/#website"},"datePublished":"2021-06-23T14:00:03+00:00","dateModified":"2026-04-16T17:16:06+00:00","description":"Spam is a problem which impacts all publicly accessible forms eventually but there are steps you can take to reduce the amount of spam which is successfully submitted.","breadcrumb":{"@id":"https:\/\/docs.gravityforms.com\/spam\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/docs.gravityforms.com\/spam\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/docs.gravityforms.com\/spam\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/docs.gravityforms.com\/"},{"@type":"ListItem","position":2,"name":"Spam Detection and Protection"}]},{"@type":"WebSite","@id":"https:\/\/docs.gravityforms.com\/#website","url":"https:\/\/docs.gravityforms.com\/","name":"Gravity Forms Documentation","description":"","publisher":{"@id":"https:\/\/docs.gravityforms.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/docs.gravityforms.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/docs.gravityforms.com\/#organization","name":"Gravity Forms","url":"https:\/\/docs.gravityforms.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/docs.gravityforms.com\/#\/schema\/logo\/image\/","url":"https:\/\/docs.gravityforms.com\/wp-content\/uploads\/2020\/01\/gravity-forms-2020-logo-stacked.png","contentUrl":"https:\/\/docs.gravityforms.com\/wp-content\/uploads\/2020\/01\/gravity-forms-2020-logo-stacked.png","width":392,"height":515,"caption":"Gravity Forms"},"image":{"@id":"https:\/\/docs.gravityforms.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/gravityforms","http:\/\/@gravityforms.com"]},{"@type":"Person","@id":"https:\/\/docs.gravityforms.com\/#\/schema\/person\/8a88745ec2ee5bc1bb24eea8634bf376","name":"Justin Pakes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/791cb5bec00c6dd4bec2e80cf4df9638297207d8f77890c96b6b483be434ecea?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/791cb5bec00c6dd4bec2e80cf4df9638297207d8f77890c96b6b483be434ecea?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/791cb5bec00c6dd4bec2e80cf4df9638297207d8f77890c96b6b483be434ecea?s=96&d=mm&r=g","caption":"Justin Pakes"},"url":"https:\/\/docs.gravityforms.com\/author\/pakes\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/sdGaEa-spam","_links":{"self":[{"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/posts\/6387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/comments?post=6387"}],"version-history":[{"count":175,"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/posts\/6387\/revisions"}],"predecessor-version":[{"id":49090,"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/posts\/6387\/revisions\/49090"}],"wp:attachment":[{"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/media?parent=6387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/categories?post=6387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.gravityforms.com\/wp-json\/wp\/v2\/tags?post=6387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}