---
title: "Get conditional firewall bypasses"
method: GET
path: "/v1/security/firewall/bypass/rules"
tags: ["security"]
---

# Get conditional firewall bypasses

`GET /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

Retrieve conditional firewall bypass rules for a project.

## Query parameters

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

## Response `200`

- union
  - 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
  - object
    - `rules` object[], required
      - `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 query is invalid.
- `401`: The request is not authorized.
- `403`: You do not have permission to access this resource.
- `404`
- `410`

## Changes

- **2026-10-16** `ee46af89ccb0`: 1 breaking, 2 warning, 1 info
  - added `subschema #1, subschema #2` to the response body `oneOf` list for the response status `200`
  - deleted the `query` request parameter `limit`
  - deleted the `query` request parameter `offset`
  - removed `subschema #1, subschema #2` from the response body `oneOf` list for the response status `200`
- **2026-10-15** `e61cef7bf38d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/api/changes/v1/security/firewall/bypass/rules/get.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)
