---
title: "Create conditional firewall bypass"
method: POST
path: "/v1/security/firewall/bypass/rules"
tags: ["security"]
---

# Create conditional firewall bypass

`POST /v1/security/firewall/bypass/rules`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v1/security/firewall/bypass/rules`
- Auth: HTTP bearer

Create a conditional firewall bypass rule for a project domain.

## Query parameters

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

## Request body

- object
  - `domain` string, required
  - `conditionGroup` object[], required
    - `conditions` union[], required
      - union
        - object
          - `type` 'user_agent', required
          - `op` 'eq' | 'pre' | 'suf' | 'sub', required
          - `value` string, required
          - `key` 'user-agent'
        - object
          - `type` 'path', required
          - `op` 'eq' | 'pre' | 'suf' | 'sub', required
          - `value` string, required
        - object
          - `type` 'header', required
          - `op` 'eq' | 'pre' | 'suf' | 'sub', required
          - `key` string, required
          - `value` string, required
        - object
          - `type` 'header', required
          - `op` 'ex', required
          - `key` string, required
  - `note` string

## Response `200`

- object
  - `condition` string, required
  - `conditionGroup` object[], required
    - `conditions` object[], required
      - `key` string
      - `neg` false | true
      - `op` 'eq' | 'ex' | 'gt' | 'gte' | 'inc' | 'list' | 'lt' | 'lte' | 'neq' | 'nex' | 'ninc' | 'pre' | 're' | 'sub' | 'suf', 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' | 'response_code' | 'route' | 'ruleset' | 'scheme' | 'server_action' | 'shared_condition' | 'target_path' | 'traffic_source' | 'trusted_source' | 'user_agent', required
      - `value` union
        - string
        - number
        - string[]
  - `createdAt` string, required
  - `domain` string, required
  - `id` string, required
  - `note` string
  - `projectId` string, required
  - `updatedAt` string, required

## 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.
- `403`: You do not have permission to access this resource.
- `404`
- `409`
- `410`

## Changes

- **2026-10-16** `ee46af89ccb0`: 1 breaking, 8 info
  - removed the required property `result` from the response with the `200` status
  - added the optional property `note` to the response with the `200` status
  - added the required property `condition` to the response with the `200` status
  - added the required property `conditionGroup` to the response with the `200` status
  - …5 more
- **2026-10-15** `e61cef7bf38d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/api/changes/v1/security/firewall/bypass/rules/post.md)

---

[API](https://skmtc.dev/vercel/apis/api.md) - [All operations](https://skmtc.dev/vercel/apis/api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/api/revisions/4a06e85c2848?raw)
