---
title: "Put Firewall Configuration"
method: PUT
path: "/v1/security/firewall/config"
tags: ["security"]
---

# Put Firewall Configuration

`PUT /v1/security/firewall/config`

Set the firewall configuration to provided rules and settings. Creates or overwrite the existing firewall configuration.

## Query parameters

- `projectId` string, required
- `teamId` string
- `slug` string

## Request body

- object
  - `firewallEnabled` boolean, required
  - `managedRules` object
  - `crs` object — Custom Ruleset
    - `sd` object — Scanner Detection - Detect and prevent reconnaissance activities from network scanning tools.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `ma` object — Multipart Attack - Block attempts to bypass security controls using multipart/form-data encoding.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `lfi` object — Local File Inclusion Attack - Prevent unauthorized access to local files through web applications.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `rfi` object — Remote File Inclusion Attack - Prohibit unauthorized upload or execution of remote files.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `rce` object — Remote Execution Attack - Prevent unauthorized execution of remote scripts or commands.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `php` object — PHP Attack - Safeguard against vulnerability exploits in PHP-based applications.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `gen` object — Generic Attack - Provide broad protection from various undefined or novel attack vectors.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `xss` object — XSS Attack - Prevent injection of malicious scripts into trusted webpages.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `sqli` object — SQL Injection Attack - Prohibit unauthorized use of SQL commands to manipulate databases.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `sf` object — Session Fixation Attack - Prevent unauthorized takeover of user sessions by enforcing unique session IDs.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
    - `java` object — Java Attack - Mitigate risks of exploitation targeting Java-based applications or components.
      - `active` boolean, required
      - `action` 'deny' | 'log', required
  - `rules` object[]
    - `id` string
    - `name` string, required
    - `description` string
    - `active` boolean, required
    - `conditionGroup` object[], required
      - `conditions` object[], required
        - `type` 'host' | 'path' | 'method' | 'header' | 'query' | 'cookie' | 'target_path' | 'route' | 'raw_path' | 'ip_address' | 'region' | 'protocol' | 'scheme' | 'environment' | 'domain_environment' | 'user_agent' | 'geo_continent' | 'geo_country' | 'geo_country_region' | 'geo_city' | 'geo_as_number' | 'ja4_digest' | 'ja3_digest' | 'rate_limit_api_id' | 'server_action' | 'bot_name' | 'bot_category' | 'bot_status' | 'bot_protection' | 'ruleset', required — [Parameter](https://vercel.com/docs/security/vercel-waf/rule-configuration#parameters) from the incoming traffic.
        - `op` 're' | 'eq' | 'neq' | 'ex' | 'nex' | 'inc' | 'ninc' | 'pre' | 'suf' | 'sub' | 'gt' | 'gte' | 'lt' | 'lte' | 'list', required
        - `neg` boolean
        - `key` string
        - `value` union
          - string
          - string[]
          - number
    - `action` object, required
      - `mitigate` object
        - `action` 'log' | 'challenge' | 'deny' | 'bypass' | 'rate_limit' | 'redirect', required
        - `rateLimit` union
          - object
            - `algo` 'fixed_window' | 'token_bucket', required
            - `window` number, required
            - `limit` number, required
            - `keys` string[], required
            - `action` union
              - …
          - unknown
        - `redirect` union
          - object
            - `location` string, required
            - `permanent` boolean, required
          - unknown
        - `actionDuration` string, nullable
        - `bypassSystem` boolean, nullable
        - `logHeaders` union
          - string
          - string[]
    - `valid` boolean
    - `validationErrors` union
      - string[]
      - string
  - `rulesets` union
    - object[]
      - `id` string
      - `name` string, required
      - `description` string
      - `active` boolean, required
      - `conditionGroup` object[], required
        - `conditions` object[], required
          - `type` 'host' | 'path' | 'method' | 'header' | 'query' | 'cookie' | 'target_path' | 'route' | 'raw_path' | 'ip_address' | 'region' | 'protocol' | 'scheme' | 'environment' | 'domain_environment' | 'user_agent' | 'geo_continent' | 'geo_country' | 'geo_country_region' | 'geo_city' | 'geo_as_number' | 'ja4_digest' | 'ja3_digest' | 'rate_limit_api_id' | 'server_action' | 'bot_name' | 'bot_category' | 'bot_status' | 'bot_protection' | 'ruleset', required
          - `op` 're' | 'eq' | 'neq' | 'ex' | 'nex' | 'inc' | 'ninc' | 'pre' | 'suf' | 'sub' | 'gt' | 'gte' | 'lt' | 'lte' | 'list', required
          - `neg` boolean
          - `key` string
          - `value` union
            - string
            - string[]
            - number
      - `action` object
        - `mitigate` object
          - `action` 'deny' | 'challenge' | 'log', required
      - `valid` boolean
      - `validationErrors` union
        - string[]
        - string
    - object
  - `ips` object[]
    - `id` string
    - `hostname` string, required
    - `ip` string, required
    - `notes` string
    - `action` 'deny' | 'challenge' | 'log' | 'bypass', required
  - `botIdEnabled` boolean
  - `logHeaders` union
    - string
    - string[]

## Response `200`

- object
  - `active` object, required
    - `ownerId` string, required
    - `projectKey` string, required
    - `id` string, required
    - `version` number, required
    - `updatedAt` string, required
    - `firewallEnabled` false | true, required
    - `crs` object — Custom Ruleset
      - `sd` object, required — Scanner Detection - Detect and prevent reconnaissance activities from network scanning tools.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `ma` object, required — Multipart Attack - Block attempts to bypass security controls using multipart/form-data encoding.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `lfi` object, required — Local File Inclusion Attack - Prevent unauthorized access to local files through web applications.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `rfi` object, required — Remote File Inclusion Attack - Prohibit unauthorized upload or execution of remote files.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `rce` object, required — Remote Execution Attack - Prevent unauthorized execution of remote scripts or commands.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `php` object, required — PHP Attack - Safeguard against vulnerability exploits in PHP-based applications.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `gen` object, required — Generic Attack - Provide broad protection from various undefined or novel attack vectors.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `xss` object, required — XSS Attack - Prevent injection of malicious scripts into trusted webpages.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `sqli` object, required — SQL Injection Attack - Prohibit unauthorized use of SQL commands to manipulate databases.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `sf` object, required — Session Fixation Attack - Prevent unauthorized takeover of user sessions by enforcing unique session IDs.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
      - `java` object, required — Java Attack - Mitigate risks of exploitation targeting Java-based applications or components.
        - `active` false | true, required
        - `action` 'deny' | 'log', required
    - `rules` union[], required
      - union
        - object
          - `id` string, required
          - `name` string, required
          - `description` string
          - `active` false | true, required
          - `conditionGroup` object[], required
            - `conditions` object[], required
              - …
          - `action` object, required
            - `mitigate` object
              - …
          - `valid` true, required
          - `validationErrors` unknown, required
        - object
          - `id` string, required
          - `name` string, required
          - `description` string
          - `active` false | true, required
          - `conditionGroup` object[], required
            - `conditions` object[], required
              - …
          - `action` object, required
            - `mitigate` object
              - …
          - `valid` false, required
          - `validationErrors` string[], required
    - `ips` object[], required
      - `id` string, required
      - `hostname` string, required
      - `ip` string, required
      - `notes` string
      - `action` 'bypass' | 'challenge' | 'deny' | 'log', required
    - `rulesets` union
      - object[]
        - `description` string
        - `id` string, required
        - `name` string, required
        - `active` false | true, required
        - `conditionGroup` object[], required
          - `conditions` object[], required
            - `type` 'bot_category' | 'bot_name' | 'bot_protection' | 'bot_status' | 'cookie' | 'domain_environment' | 'environment' | 'geo_as_number' | 'geo_city' | 'geo_continent' | 'geo_country' | 'geo_country_region' | 'header' | 'host' | 'ip_address' | 'ja3_digest' | 'ja4_digest' | 'method' | 'path' | 'protocol' | 'query' | 'rate_limit_api_id' | 'raw_path' | 'region' | 'route' | 'ruleset' | 'scheme' | 'server_action' | 'target_path' | 'trusted_source' | 'user_agent', required
            - `op` 'eq' | 'ex' | 'gt' | 'gte' | 'inc' | 'list' | 'lt' | 'lte' | 'neq' | 'nex' | 'ninc' | 'pre' | 're' | 'sub' | 'suf', required
            - `neg` false | true
            - `key` string
            - `value` union
              - …
        - `action` object
          - `mitigate` object
            - `action` 'allow' | 'bypass' | 'challenge' | 'deny' | 'log' | 'rate_limit' | 'redirect', required
            - `rateLimit` object, nullable
              - …
            - `redirect` object, nullable
              - …
            - `actionDuration` string, nullable
            - `bypassSystem` false | true | null, nullable
            - `logHeaders` union
              - …
      - object
    - `changes` object[], required
    - `managedRules` object
      - `bot_protection` object
        - `active` false | true, required
        - `action` 'challenge' | 'deny' | 'log'
        - `updatedAt` string
        - `userId` string
        - `username` string
      - `ai_bots` object
        - `active` false | true, required
        - `action` 'challenge' | 'deny' | 'log'
        - `updatedAt` string
        - `userId` string
        - `username` string
      - `owasp` object
        - `active` false | true, required
        - `action` 'challenge' | 'deny' | 'log'
        - `updatedAt` string
        - `userId` string
        - `username` string
      - `vercel_ruleset` object
        - `active` false | true, required
        - `action` 'challenge' | 'deny' | 'log'
        - `updatedAt` string
        - `userId` string
        - `username` string
      - `traffic_sources` object
        - `active` false | true, required
        - `action` 'challenge' | 'deny' | 'log'
        - `updatedAt` string
        - `userId` string
        - `username` string
    - `botIdEnabled` false | true
    - `logHeaders` union
      - string[]
      - '*'

## Other responses

- `400` — One of the provided values in the request body is invalid. One of the provided values in the request query is invalid.
- `401` — The request is not authorized.
- `402`
- `403` — You do not have permission to access this resource.
- `404`
- `410`
- `500`

---

[API](https://skmtc.net/vercel/apis/api.md) · [All operations](https://skmtc.net/vercel/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vercel/api/versions/61d1ba3f6dac/schema)
