## Update Zone Bot Management Config `client.BotManagement.Update(ctx, params) (*BotManagementUpdateResponse, error)` **put** `/zones/{zone_id}/bot_management` Updates the Bot Management configuration for a zone. This API is used to update: - **Bot Fight Mode** - **Super Bot Fight Mode** - **Bot Management for Enterprise** See [Bot Plans](https://developers.cloudflare.com/bots/plans/) for more information on the different plans \ If you recently upgraded or downgraded your plan, refer to the following examples to clean up old configurations. Copy and paste the example body to remove old zone configurations based on your current plan. #### Clean up configuration for Bot Fight Mode plan ```json { "sbfm_likely_automated": "allow", "sbfm_definitely_automated": "allow", "sbfm_verified_bots": "allow", "sbfm_static_resource_protection": false, "optimize_wordpress": false, "suppress_session_score": false } ``` #### Clean up configuration for SBFM Pro plan ```json { "sbfm_likely_automated": "allow", "fight_mode": false } ``` #### Clean up configuration for SBFM Biz plan ```json { "fight_mode": false } ``` #### Clean up configuration for BM Enterprise Subscription plan It is strongly recommended that you ensure you have [custom rules](https://developers.cloudflare.com/waf/custom-rules/) in place to protect your zone before disabling the SBFM rules. Without these protections, your zone is vulnerable to attacks. ```json { "sbfm_likely_automated": "allow", "sbfm_definitely_automated": "allow", "sbfm_verified_bots": "allow", "sbfm_static_resource_protection": false, "optimize_wordpress": false, "fight_mode": false } ``` ### Parameters - `params BotManagementUpdateParams` - `ZoneID param.Field[string]` Path param: Identifier. - `BotFightModeConfiguration param.Field[BotFightModeConfiguration]` Body param ### Returns - `type BotManagementUpdateResponse interface{…}` - `type BotFightModeConfiguration struct{…}` - `AIBotsProtection BotFightModeConfigurationAIBotsProtection` Enable rule to block AI Scrapers and Crawlers. Please note the value `only_on_ad_pages` is currently not available for Enterprise customers. - `const BotFightModeConfigurationAIBotsProtectionBlock BotFightModeConfigurationAIBotsProtection = "block"` - `const BotFightModeConfigurationAIBotsProtectionDisabled BotFightModeConfigurationAIBotsProtection = "disabled"` - `const BotFightModeConfigurationAIBotsProtectionOnlyOnADPages BotFightModeConfigurationAIBotsProtection = "only_on_ad_pages"` - `CfRobotsVariant BotFightModeConfigurationCfRobotsVariant` Specifies the Robots Access Control License variant to use. - `const BotFightModeConfigurationCfRobotsVariantOff BotFightModeConfigurationCfRobotsVariant = "off"` - `const BotFightModeConfigurationCfRobotsVariantPolicyOnly BotFightModeConfigurationCfRobotsVariant = "policy_only"` - `CrawlerProtection BotFightModeConfigurationCrawlerProtection` Enable rule to punish AI Scrapers and Crawlers via a link maze. - `const BotFightModeConfigurationCrawlerProtectionEnabled BotFightModeConfigurationCrawlerProtection = "enabled"` - `const BotFightModeConfigurationCrawlerProtectionDisabled BotFightModeConfigurationCrawlerProtection = "disabled"` - `EnableJS bool` Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). - `FightMode bool` Whether to enable Bot Fight Mode. - `IsRobotsTXTManaged bool` Enable cloudflare managed robots.txt. If an existing robots.txt is detected, then managed robots.txt will be prepended to the existing robots.txt. - `StaleZoneConfiguration BotFightModeConfigurationStaleZoneConfiguration` A read-only field that shows which unauthorized settings are currently active on the zone. These settings typically result from upgrades or downgrades. - `OptimizeWordpress bool` Indicates that the zone's wordpress optimization for SBFM is turned on. - `SBFMDefinitelyAutomated string` Indicates that the zone's definitely automated requests are being blocked or challenged. - `SBFMLikelyAutomated string` Indicates that the zone's likely automated requests are being blocked or challenged. - `SBFMStaticResourceProtection string` Indicates that the zone's static resource protection is turned on. - `SBFMVerifiedBots string` Indicates that the zone's verified bot requests are being blocked. - `SuppressSessionScore bool` Indicates that the zone's session score tracking is disabled. - `UsingLatestModel bool` A read-only field that indicates whether the zone currently is running the latest ML model. - `type SuperBotFightModeDefinitelyConfiguration struct{…}` - `AIBotsProtection SuperBotFightModeDefinitelyConfigurationAIBotsProtection` Enable rule to block AI Scrapers and Crawlers. Please note the value `only_on_ad_pages` is currently not available for Enterprise customers. - `const SuperBotFightModeDefinitelyConfigurationAIBotsProtectionBlock SuperBotFightModeDefinitelyConfigurationAIBotsProtection = "block"` - `const SuperBotFightModeDefinitelyConfigurationAIBotsProtectionDisabled SuperBotFightModeDefinitelyConfigurationAIBotsProtection = "disabled"` - `const SuperBotFightModeDefinitelyConfigurationAIBotsProtectionOnlyOnADPages SuperBotFightModeDefinitelyConfigurationAIBotsProtection = "only_on_ad_pages"` - `CfRobotsVariant SuperBotFightModeDefinitelyConfigurationCfRobotsVariant` Specifies the Robots Access Control License variant to use. - `const SuperBotFightModeDefinitelyConfigurationCfRobotsVariantOff SuperBotFightModeDefinitelyConfigurationCfRobotsVariant = "off"` - `const SuperBotFightModeDefinitelyConfigurationCfRobotsVariantPolicyOnly SuperBotFightModeDefinitelyConfigurationCfRobotsVariant = "policy_only"` - `CrawlerProtection SuperBotFightModeDefinitelyConfigurationCrawlerProtection` Enable rule to punish AI Scrapers and Crawlers via a link maze. - `const SuperBotFightModeDefinitelyConfigurationCrawlerProtectionEnabled SuperBotFightModeDefinitelyConfigurationCrawlerProtection = "enabled"` - `const SuperBotFightModeDefinitelyConfigurationCrawlerProtectionDisabled SuperBotFightModeDefinitelyConfigurationCrawlerProtection = "disabled"` - `EnableJS bool` Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). - `IsRobotsTXTManaged bool` Enable cloudflare managed robots.txt. If an existing robots.txt is detected, then managed robots.txt will be prepended to the existing robots.txt. - `OptimizeWordpress bool` Whether to optimize Super Bot Fight Mode protections for Wordpress. - `SBFMDefinitelyAutomated SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomated` Super Bot Fight Mode (SBFM) action to take on definitely automated requests. - `const SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomatedAllow SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomated = "allow"` - `const SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomatedBlock SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomated = "block"` - `const SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomatedManagedChallenge SuperBotFightModeDefinitelyConfigurationSBFMDefinitelyAutomated = "managed_challenge"` - `SBFMStaticResourceProtection bool` Super Bot Fight Mode (SBFM) to enable static resource protection. Enable if static resources on your application need bot protection. Note: Static resource protection can also result in legitimate traffic being blocked. - `SBFMVerifiedBots SuperBotFightModeDefinitelyConfigurationSBFMVerifiedBots` Super Bot Fight Mode (SBFM) action to take on verified bots requests. - `const SuperBotFightModeDefinitelyConfigurationSBFMVerifiedBotsAllow SuperBotFightModeDefinitelyConfigurationSBFMVerifiedBots = "allow"` - `const SuperBotFightModeDefinitelyConfigurationSBFMVerifiedBotsBlock SuperBotFightModeDefinitelyConfigurationSBFMVerifiedBots = "block"` - `StaleZoneConfiguration SuperBotFightModeDefinitelyConfigurationStaleZoneConfiguration` A read-only field that shows which unauthorized settings are currently active on the zone. These settings typically result from upgrades or downgrades. - `FightMode bool` Indicates that the zone's Bot Fight Mode is turned on. - `SBFMLikelyAutomated string` Indicates that the zone's likely automated requests are being blocked or challenged. - `UsingLatestModel bool` A read-only field that indicates whether the zone currently is running the latest ML model. - `type SuperBotFightModeLikelyConfiguration struct{…}` - `AIBotsProtection SuperBotFightModeLikelyConfigurationAIBotsProtection` Enable rule to block AI Scrapers and Crawlers. Please note the value `only_on_ad_pages` is currently not available for Enterprise customers. - `const SuperBotFightModeLikelyConfigurationAIBotsProtectionBlock SuperBotFightModeLikelyConfigurationAIBotsProtection = "block"` - `const SuperBotFightModeLikelyConfigurationAIBotsProtectionDisabled SuperBotFightModeLikelyConfigurationAIBotsProtection = "disabled"` - `const SuperBotFightModeLikelyConfigurationAIBotsProtectionOnlyOnADPages SuperBotFightModeLikelyConfigurationAIBotsProtection = "only_on_ad_pages"` - `CfRobotsVariant SuperBotFightModeLikelyConfigurationCfRobotsVariant` Specifies the Robots Access Control License variant to use. - `const SuperBotFightModeLikelyConfigurationCfRobotsVariantOff SuperBotFightModeLikelyConfigurationCfRobotsVariant = "off"` - `const SuperBotFightModeLikelyConfigurationCfRobotsVariantPolicyOnly SuperBotFightModeLikelyConfigurationCfRobotsVariant = "policy_only"` - `CrawlerProtection SuperBotFightModeLikelyConfigurationCrawlerProtection` Enable rule to punish AI Scrapers and Crawlers via a link maze. - `const SuperBotFightModeLikelyConfigurationCrawlerProtectionEnabled SuperBotFightModeLikelyConfigurationCrawlerProtection = "enabled"` - `const SuperBotFightModeLikelyConfigurationCrawlerProtectionDisabled SuperBotFightModeLikelyConfigurationCrawlerProtection = "disabled"` - `EnableJS bool` Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). - `IsRobotsTXTManaged bool` Enable cloudflare managed robots.txt. If an existing robots.txt is detected, then managed robots.txt will be prepended to the existing robots.txt. - `OptimizeWordpress bool` Whether to optimize Super Bot Fight Mode protections for Wordpress. - `SBFMDefinitelyAutomated SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomated` Super Bot Fight Mode (SBFM) action to take on definitely automated requests. - `const SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomatedAllow SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomated = "allow"` - `const SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomatedBlock SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomated = "block"` - `const SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomatedManagedChallenge SuperBotFightModeLikelyConfigurationSBFMDefinitelyAutomated = "managed_challenge"` - `SBFMLikelyAutomated SuperBotFightModeLikelyConfigurationSBFMLikelyAutomated` Super Bot Fight Mode (SBFM) action to take on likely automated requests. - `const SuperBotFightModeLikelyConfigurationSBFMLikelyAutomatedAllow SuperBotFightModeLikelyConfigurationSBFMLikelyAutomated = "allow"` - `const SuperBotFightModeLikelyConfigurationSBFMLikelyAutomatedBlock SuperBotFightModeLikelyConfigurationSBFMLikelyAutomated = "block"` - `const SuperBotFightModeLikelyConfigurationSBFMLikelyAutomatedManagedChallenge SuperBotFightModeLikelyConfigurationSBFMLikelyAutomated = "managed_challenge"` - `SBFMStaticResourceProtection bool` Super Bot Fight Mode (SBFM) to enable static resource protection. Enable if static resources on your application need bot protection. Note: Static resource protection can also result in legitimate traffic being blocked. - `SBFMVerifiedBots SuperBotFightModeLikelyConfigurationSBFMVerifiedBots` Super Bot Fight Mode (SBFM) action to take on verified bots requests. - `const SuperBotFightModeLikelyConfigurationSBFMVerifiedBotsAllow SuperBotFightModeLikelyConfigurationSBFMVerifiedBots = "allow"` - `const SuperBotFightModeLikelyConfigurationSBFMVerifiedBotsBlock SuperBotFightModeLikelyConfigurationSBFMVerifiedBots = "block"` - `StaleZoneConfiguration SuperBotFightModeLikelyConfigurationStaleZoneConfiguration` A read-only field that shows which unauthorized settings are currently active on the zone. These settings typically result from upgrades or downgrades. - `FightMode bool` Indicates that the zone's Bot Fight Mode is turned on. - `UsingLatestModel bool` A read-only field that indicates whether the zone currently is running the latest ML model. - `type SubscriptionConfiguration struct{…}` - `AIBotsProtection SubscriptionConfigurationAIBotsProtection` Enable rule to block AI Scrapers and Crawlers. Please note the value `only_on_ad_pages` is currently not available for Enterprise customers. - `const SubscriptionConfigurationAIBotsProtectionBlock SubscriptionConfigurationAIBotsProtection = "block"` - `const SubscriptionConfigurationAIBotsProtectionDisabled SubscriptionConfigurationAIBotsProtection = "disabled"` - `const SubscriptionConfigurationAIBotsProtectionOnlyOnADPages SubscriptionConfigurationAIBotsProtection = "only_on_ad_pages"` - `AutoUpdateModel bool` Automatically update to the newest bot detection models created by Cloudflare as they are released. [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes) - `BmCookieEnabled bool` Indicates that the bot management cookie can be placed on end user devices accessing the site. Defaults to true - `CfRobotsVariant SubscriptionConfigurationCfRobotsVariant` Specifies the Robots Access Control License variant to use. - `const SubscriptionConfigurationCfRobotsVariantOff SubscriptionConfigurationCfRobotsVariant = "off"` - `const SubscriptionConfigurationCfRobotsVariantPolicyOnly SubscriptionConfigurationCfRobotsVariant = "policy_only"` - `CrawlerProtection SubscriptionConfigurationCrawlerProtection` Enable rule to punish AI Scrapers and Crawlers via a link maze. - `const SubscriptionConfigurationCrawlerProtectionEnabled SubscriptionConfigurationCrawlerProtection = "enabled"` - `const SubscriptionConfigurationCrawlerProtectionDisabled SubscriptionConfigurationCrawlerProtection = "disabled"` - `EnableJS bool` Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). - `IsRobotsTXTManaged bool` Enable cloudflare managed robots.txt. If an existing robots.txt is detected, then managed robots.txt will be prepended to the existing robots.txt. - `StaleZoneConfiguration SubscriptionConfigurationStaleZoneConfiguration` A read-only field that shows which unauthorized settings are currently active on the zone. These settings typically result from upgrades or downgrades. - `FightMode bool` Indicates that the zone's Bot Fight Mode is turned on. - `OptimizeWordpress bool` Indicates that the zone's wordpress optimization for SBFM is turned on. - `SBFMDefinitelyAutomated string` Indicates that the zone's definitely automated requests are being blocked or challenged. - `SBFMLikelyAutomated string` Indicates that the zone's likely automated requests are being blocked or challenged. - `SBFMStaticResourceProtection string` Indicates that the zone's static resource protection is turned on. - `SBFMVerifiedBots string` Indicates that the zone's verified bot requests are being blocked. - `SuppressSessionScore bool` Whether to disable tracking the highest bot score for a session in the Bot Management cookie. - `UsingLatestModel bool` A read-only field that indicates whether the zone currently is running the latest ML model. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/bot_management" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) botManagement, err := client.BotManagement.Update(context.TODO(), bot_management.BotManagementUpdateParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Body: bot_management.BotFightModeConfigurationParam{ }, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", botManagement) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "ai_bots_protection": "block", "cf_robots_variant": "policy_only", "crawler_protection": "enabled", "enable_js": true, "fight_mode": true, "is_robots_txt_managed": false, "stale_zone_configuration": { "optimize_wordpress": true, "sbfm_definitely_automated": "sbfm_definitely_automated", "sbfm_likely_automated": "sbfm_likely_automated", "sbfm_static_resource_protection": "sbfm_static_resource_protection", "sbfm_verified_bots": "sbfm_verified_bots", "suppress_session_score": true }, "using_latest_model": true } } ```