> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tracecat.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vercel Security

> Reference for the Tracecat Vercel Security integration: registered actions, required secrets, expected inputs, and example workflow usage.

## Create system bypass rule

Action ID: `tools.vercel_security.create_system_bypass_rule`

Create new system bypass rules. Calls POST /v1/security/firewall/bypass directly.

Reference: [https://vercel.com/docs/rest-api/security/create-system-bypass-rule](https://vercel.com/docs/rest-api/security/create-system-bypass-rule)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="payload" type="object" required>
  API-native request body. Documented fields: domain or projectScope (one required), sourceIp, allSources, ttl (time to live in milliseconds), note (max 500 characters).
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Put firewall configuration

Action ID: `tools.vercel_security.put_firewall_configuration`

Set the firewall configuration to provided rules and settings. Creates or overwrites the existing firewall configuration. Calls PUT /v1/security/firewall/config directly.

Reference: [https://vercel.com/docs/rest-api/security/put-firewall-configuration](https://vercel.com/docs/rest-api/security/put-firewall-configuration)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="payload" type="object" required>
  API-native request body. Documented fields for PUT /v1/security/firewall/config: firewallEnabled (required), managedRules, crs, rules, rulesets, ips, botIdEnabled, logHeaders.
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Read active attack data

Action ID: `tools.vercel_security.read_active_attack_data`

Retrieve active attack data within the last N days (default: 1 day). Calls GET /v1/security/firewall/attack-status directly.

Reference: [https://vercel.com/docs/rest-api/security/read-active-attack-data](https://vercel.com/docs/rest-api/security/read-active-attack-data)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="since" type="number | null">
  Number of days to look back.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Read firewall actions by project

Action ID: `tools.vercel_security.read_firewall_actions_by_project`

Retrieve firewall actions for a project. Calls GET /v1/security/firewall/events directly.

Reference: [https://vercel.com/docs/rest-api/security/read-firewall-actions-by-project](https://vercel.com/docs/rest-api/security/read-firewall-actions-by-project)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="endTimestamp" type="number | null">
  End timestamp of the time range to retrieve firewall actions for.

  Default: `null`.
</ParamField>

<ParamField path="hosts" type="string | null">
  Hosts to filter firewall actions by.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="startTimestamp" type="number | null">
  Start timestamp of the time range to retrieve firewall actions for.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Read firewall configuration

Action ID: `tools.vercel_security.read_firewall_configuration`

Retrieve the specified firewall configuration for a project. The deployed configVersion will be `active`. Calls GET /v1/security/firewall/config/\{configVersion} directly.

Reference: [https://vercel.com/docs/rest-api/security/read-firewall-configuration](https://vercel.com/docs/rest-api/security/read-firewall-configuration)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="configVersion" type="string">
  The deployed configVersion for the firewall configuration. Use `active` for the deployed configuration.

  Default: `"active"`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Read system bypass

Action ID: `tools.vercel_security.read_system_bypass`

Retrieve the system bypass rules configured for the specified project. Calls GET /v1/security/firewall/bypass directly.

Reference: [https://vercel.com/docs/rest-api/security/read-system-bypass](https://vercel.com/docs/rest-api/security/read-system-bypass)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="domain" type="string | null">
  Filter by domain.

  Default: `null`.
</ParamField>

<ParamField path="limit" type="number | null">
  Maximum number of bypass rules to return.

  Default: `null`.
</ParamField>

<ParamField path="offset" type="string | null">
  Used for pagination. Retrieves results after the provided id.

  Default: `null`.
</ParamField>

<ParamField path="projectScope" type="boolean | null">
  Filter by project scoped rules.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="sourceIp" type="string | null">
  Filter by source IP.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Remove system bypass rule

Action ID: `tools.vercel_security.remove_system_bypass_rule`

Remove system bypass rules. Calls DELETE /v1/security/firewall/bypass directly.

Reference: [https://vercel.com/docs/rest-api/security/remove-system-bypass-rule](https://vercel.com/docs/rest-api/security/remove-system-bypass-rule)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="payload" type="object" required>
  API-native request body. Documented fields: domain or projectScope (one required), sourceIp, allSources, note (max 500 characters).
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Update attack challenge mode

Action ID: `tools.vercel_security.update_attack_challenge_mode`

Update the setting for determining if the project has Attack Challenge mode enabled. Calls POST /v1/security/attack-mode directly.

Reference: [https://vercel.com/docs/rest-api/security/update-attack-challenge-mode](https://vercel.com/docs/rest-api/security/update-attack-challenge-mode)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="payload" type="object" required>
  API-native request body. Documented fields: projectId (required), attackModeEnabled (required), attackModeActiveUntil (timestamp; omit to leave the mode active until it is disabled).
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>

## Update firewall configuration

Action ID: `tools.vercel_security.update_firewall_configuration`

Process updates to modify the existing firewall config for a project. Calls PATCH /v1/security/firewall/config directly.

Reference: [https://vercel.com/docs/rest-api/security/update-firewall-configuration](https://vercel.com/docs/rest-api/security/update-firewall-configuration)

### Secrets

Required secrets:

* `vercel`: required values `VERCEL_API_TOKEN`.

### Input fields

<ParamField path="payload" type="object" required>
  API-native request body with fields action, id, value. Documented actions include firewallEnabled, rules.insert, rules.update, rules.remove, rules.priority, crs.update, crs.disable, ip.insert, ip.update, ip.remove, managedRules.update, and named-condition, ruleset, bot ID and log-header updates; the shape of `value` depends on the action.
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  Vercel REST API base URL.

  Default: `null`.
</ParamField>

<ParamField path="slug" type="string | null">
  The Team slug to perform the request on behalf of.

  Default: `null`.
</ParamField>

<ParamField path="teamId" type="string | null">
  The Team identifier to perform the request on behalf of.

  Default: `null`.
</ParamField>
