{
  "generated": "2026-03-08T00:27:31.259Z",
  "product": {
    "id": "gravity-forms-zero-spam",
    "label": "Zero Spam",
    "repo": "GravityKit/gravity-forms-zero-spam",
    "version": "1.7.1",
    "actions": [
      "gf_zero_spam_email_rule_match"
    ],
    "filters": [
      "gf_zero_spam_add_key_field",
      "gf_zero_spam_check_key_field",
      "gf_zero_spam_client_ip",
      "gf_zero_spam_email_rules",
      "gf_zero_spam_rate_limit",
      "gf_zero_spam_token_fetch_timeout"
    ]
  },
  "hooks": [
    {
      "id": "gf_zero_spam_email_rule_match",
      "name": "gf_zero_spam_email_rule_match",
      "type": "action",
      "product": "gravity-forms-zero-spam",
      "description": "Fires when an email matches a rejection rule.",
      "parameters": [
        {
          "name": "rule",
          "type": "array",
          "description": "The matched rule."
        },
        {
          "name": "email",
          "type": "string",
          "description": "The email that matched."
        }
      ],
      "categories": [
        "notifications"
      ],
      "example": "add_action( 'gf_zero_spam_email_rule_match', function($rule, $email) {\n    // Your code here\n}, 10, 2 );",
      "since": "[1.5.0](../../since/1-5-0/)",
      "source": {
        "file": "includes/class-email-rejection.php",
        "line": 267
      },
      "url": "/docs/gravity-forms-zero-spam/actions/gf_zero_spam_email_rule_match/",
      "related": []
    },
    {
      "id": "gf_zero_spam_add_key_field",
      "name": "gf_zero_spam_add_key_field",
      "type": "filter",
      "product": "gravity-forms-zero-spam",
      "description": "Allows the zero spam key field to be disabled by returning false.",
      "parameters": [
        {
          "name": "add_key_field",
          "type": "bool",
          "description": "Whether to add the key field to the form. Default true."
        }
      ],
      "categories": [
        "fields"
      ],
      "example": "add_filter( 'gf_zero_spam_add_key_field', function($add_key_field) {\n    // Modify $add_key_field as needed\n    return $add_key_field;\n}, 10, 1 );",
      "since": "[1.4](../../since/1-4/)",
      "source": {
        "file": "includes/class-gf-zero-spam.php",
        "line": 188
      },
      "url": "/docs/gravity-forms-zero-spam/filters/gf_zero_spam_add_key_field/",
      "related": []
    },
    {
      "id": "gf_zero_spam_check_key_field",
      "name": "gf_zero_spam_check_key_field",
      "type": "filter",
      "product": "gravity-forms-zero-spam",
      "description": "Modifies whether to process this entry submission for spam.",
      "parameters": [
        {
          "name": "should_check_key_field",
          "type": "bool",
          "description": "Whether the Zero Spam plugin should check for the existence and validity of the key field. Default: true."
        },
        {
          "name": "form",
          "type": "array",
          "description": "The form currently being processed."
        },
        {
          "name": "entry",
          "type": "array",
          "description": "The entry currently being processed."
        }
      ],
      "categories": [
        "fields"
      ],
      "example": "add_filter( 'gf_zero_spam_check_key_field', function($should_check_key_field, $form, $entry) {\n    // Modify $should_check_key_field as needed\n    return $should_check_key_field;\n}, 10, 3 );",
      "since": "[1.2](../../since/1-2/)",
      "source": {
        "file": "includes/class-gf-zero-spam.php",
        "line": 376
      },
      "url": "/docs/gravity-forms-zero-spam/filters/gf_zero_spam_check_key_field/",
      "related": []
    },
    {
      "id": "gf_zero_spam_client_ip",
      "name": "gf_zero_spam_client_ip",
      "type": "filter",
      "product": "gravity-forms-zero-spam",
      "description": "Filters the client IP address used for rate limiting.",
      "parameters": [
        {
          "name": "ip",
          "type": "string",
          "description": "The client IP address. Default: $_SERVER['REMOTE_ADDR']."
        }
      ],
      "categories": [
        "general"
      ],
      "example": "add_filter( 'gf_zero_spam_client_ip', function($ip) {\n    // Modify $ip as needed\n    return $ip;\n}, 10, 1 );",
      "since": "[1.7.0](../../since/1-7-0/)",
      "source": {
        "file": "includes/class-gf-zero-spam-token-endpoint.php",
        "line": 178
      },
      "url": "/docs/gravity-forms-zero-spam/filters/gf_zero_spam_client_ip/",
      "related": []
    },
    {
      "id": "gf_zero_spam_email_rules",
      "name": "gf_zero_spam_email_rules",
      "type": "filter",
      "product": "gravity-forms-zero-spam",
      "description": "Modifies the email rejection rules before evaluation.",
      "parameters": [
        {
          "name": "rules",
          "type": "array",
          "description": "The merged rules array."
        },
        {
          "name": "field",
          "type": "\\GF_Field_Email\\",
          "description": "\\GF_Field`"
        },
        {
          "name": "form",
          "type": "array",
          "description": "The form object."
        }
      ],
      "categories": [
        "notifications"
      ],
      "example": "add_filter( 'gf_zero_spam_email_rules', function($rules, $field, $form) {\n    // Modify $rules as needed\n    return $rules;\n}, 10, 3 );",
      "since": "[1.5.0](../../since/1-5-0/)",
      "source": {
        "file": "includes/class-email-rejection.php",
        "line": 203
      },
      "url": "/docs/gravity-forms-zero-spam/filters/gf_zero_spam_email_rules/",
      "related": []
    },
    {
      "id": "gf_zero_spam_rate_limit",
      "name": "gf_zero_spam_rate_limit",
      "type": "filter",
      "product": "gravity-forms-zero-spam",
      "description": "Filters the maximum number of token requests allowed per IP per minute.",
      "parameters": [
        {
          "name": "limit",
          "type": "int",
          "description": "The maximum request count per minute. Default: 30."
        }
      ],
      "categories": [
        "general"
      ],
      "example": "add_filter( 'gf_zero_spam_rate_limit', function($limit) {\n    // Modify $limit as needed\n    return $limit;\n}, 10, 1 );",
      "since": "[1.7.0](../../since/1-7-0/)",
      "source": {
        "file": "includes/class-gf-zero-spam-token-endpoint.php",
        "line": 194
      },
      "url": "/docs/gravity-forms-zero-spam/filters/gf_zero_spam_rate_limit/",
      "related": []
    },
    {
      "id": "gf_zero_spam_token_fetch_timeout",
      "name": "gf_zero_spam_token_fetch_timeout",
      "type": "filter",
      "product": "gravity-forms-zero-spam",
      "description": "Filters the timeout (in milliseconds) for AJAX token fetch attempts.",
      "parameters": [
        {
          "name": "timeout",
          "type": "int",
          "description": "Timeout in milliseconds. Default 3000."
        }
      ],
      "categories": [
        "general"
      ],
      "example": "add_filter( 'gf_zero_spam_token_fetch_timeout', function($timeout) {\n    // Modify $timeout as needed\n    return $timeout;\n}, 10, 1 );",
      "since": "[1.7.0](../../since/1-7-0/)",
      "source": {
        "file": "includes/class-gf-zero-spam.php",
        "line": 214
      },
      "url": "/docs/gravity-forms-zero-spam/filters/gf_zero_spam_token_fetch_timeout/",
      "related": []
    }
  ],
  "stats": {
    "total": 7,
    "actions": 1,
    "filters": 6
  }
}