---
title: "Create Alert"
method: POST
path: "/v1/account/{accountSlug}/project/{projectSlug}/alert"
tags: ["Alerts"]
---

# Create Alert

`POST /v1/account/{accountSlug}/project/{projectSlug}/alert`

Create an Alert in a Tenderly project. 

Learn more about the different [types of Alert triggers](https://docs.tenderly.co/alerts/alert-types-targets-and-parameters).

## Path parameters

- `accountSlug` string, required
- `projectSlug` string, required

## Request body

- CreateAlertPayload
  - `name` string, required — A name of the alert.
  - `description` string — Alert description.
  - `color` '#eeeeee' | '#34ace0' | '#ffda79' | '#ff5252' | '#33d9b2' — Hex color indicating the severity of the alert. It can be one of the following severity types: - Default: #eeeeee - Info: #34ace0 - Warning: #ffda79 - Danger: #ff5252 - Success: #33d9b2
  - `simple_type` 'successful_tx' | 'failed_tx' | 'allowlisted_callers' | 'blocklisted_callers' | 'log_emitted' | 'erc20_transfer_log_emitted' | 'emitted_log_parameter' | 'function_called' | 'called_function_parameter' | 'state_change' | 'eth_balance' | 'tx_value' | 'view_function', required — Alert type.
  - `enabled` boolean — Whether the alert is currently active and monitoring
  - `expressions` AlertExpression[], required — List of conditions that trigger the alert when met
    - `type` 'method_call' | 'whitelisted_caller_addresses' | 'blacklisted_caller_addresses' | 'contract_address' | 'network' | 'tag' | 'tx_status' | 'function_params' | 'tx_value' | 'emitted_log' | 'state_change' | 'view_function' | 'eth_balance' | 'erc20_transfer_matcher' | 'tx_error' | 'tx_internal_error' | 'no_action' | 'sandwich_transaction', required — Type of blockchain event or condition to monitor. Different types require different expression structures.
    - `expression` union, required
      - MethodCallExpression — Monitors specific function calls in smart contracts
        - `line_number` integer, required — Line number in the source code where the monitored function is defined
        - `call_position` 'first' | 'last' | 'any', required — Position of the method call in the transaction execution: * first - Must be the first call in the transaction * last - Must be the last call in the transaction * any - Can occur anywhere in the transaction
      - WhitelistedCallerExpression — Monitors transactions from specific allowed addresses
        - `addresses` string[], required — List of Ethereum addresses that are allowed to trigger the alert
      - BlacklistedCallerExpression — Monitors transactions from specific blocked addresses
        - `addresses` string[], required — List of Ethereum addresses that will trigger the alert when they interact
      - ContractAddressExpression — Monitors interactions with specific contract addresses
        - `address` string, required — Ethereum address of the contract to monitor
        - `transaction_type` 'direct' | 'source' | 'internal' — Type of transaction interaction to monitor: * direct - Direct calls to the contract * source - Transactions originating from the contract * internal - Internal transactions involving the contract
      - NetworkExpression — Monitors events on specific blockchain networks
        - `network_id` string, required — Chain ID of the network to monitor
      - TagExpression — Monitors contracts or transactions with specific tags
        - `tag` string, required — Tag identifier to monitor
        - `transaction_type` 'direct' | 'source' | 'internal' — Type of transaction to monitor: * direct - Direct interactions * source - Source transactions * internal - Internal transactions
      - TxStatusExpression — Monitors transaction status (success/failure)
        - `transaction_success` boolean — When true, monitors successful transactions; when false, monitors failed transactions
      - FunctionParamsExpression — Monitors specific parameters of function calls
        - `address` string, required — Contract address containing the function
        - `function_line_number` integer, required — Line number where the function is defined in the source code
        - `parameter_conditions` ParameterCondition[], required — List of conditions to monitor on function parameters
          - `parameter_name` string, required — Name of the parameter to monitor
          - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=' | 'contains' | 'notContains', required — Comparison operator: * `>` - Greater than * `>=` - Greater than or equal * `<` - Less than * `<=` - Less than or equal * `==` - Equal to * `!=` - Not equal to * `contains` - Array contains value * `notContains` - Array does not contain value
          - `parameter_type` 'uint' | 'int' | 'bool' | 'address' | 'string' | 'byte', required — Solidity type of the parameter
          - `nested_parameter_type` string — For array types, the type of elements in the array
          - `comparison_value` string, required — Value to compare against. Format depends on parameter_type: * uint/int - String representation of number * bool - "true" or "false" * address - Ethereum address * string/byte - String value
      - TxValueExpression — Monitors transaction value amounts
        - `transaction_value` string, required — Amount of native currency (in wei) to compare against
        - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required — Comparison operator for the transaction value
      - EmittedLogExpression — Monitors event logs emitted by contracts
        - `address` string, required — Contract address emitting the event
        - `event_name` string, required — Name of the event to monitor
        - `event_id` string, required — Keccak-256 hash of the event signature
        - `match_any` boolean — If true, matches events from any contract in the project
        - `decode_events` boolean — If true, decodes bytes fields as UTF-8 strings
        - `match_non_project_contracts` boolean — If true, matches events from contracts outside the project
        - `parameter_conditions` ParameterCondition[] — Conditions to check on event parameters
          - `parameter_name` string, required — Name of the parameter to monitor
          - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=' | 'contains' | 'notContains', required — Comparison operator: * `>` - Greater than * `>=` - Greater than or equal * `<` - Less than * `<=` - Less than or equal * `==` - Equal to * `!=` - Not equal to * `contains` - Array contains value * `notContains` - Array does not contain value
          - `parameter_type` 'uint' | 'int' | 'bool' | 'address' | 'string' | 'byte', required — Solidity type of the parameter
          - `nested_parameter_type` string — For array types, the type of elements in the array
          - `comparison_value` string, required — Value to compare against. Format depends on parameter_type: * uint/int - String representation of number * bool - "true" or "false" * address - Ethereum address * string/byte - String value
      - StateChangeExpression — Monitors changes in contract state variables
        - `address` string, required — Contract address to monitor for state changes
        - `parameter_conditions` object[], required — List of conditions to monitor on state variables
          - `parameter_name` string, required — Name of the state variable to monitor
          - `parameter_type` string, required — Solidity type of the state variable
          - `compare_change` boolean — If true, alerts when the value changes
          - `compare_threshold` boolean — If true, compares value against a threshold
          - `compare_percentage` boolean — If true, monitors percentage changes in value
          - `comparison_value` string — Value to compare against (required for threshold and percentage comparisons)
          - `operator` '>' | '<' | '==' | '>=' | '<=' — Comparison operator: * > - Alerts when value goes over threshold * < - Alerts when value goes under threshold * == - Alerts when value equals threshold * >= - Alerts when value increases by percentage * <= - Alerts when value decreases by percentage
      - ViewFunctionExpression — Monitors return values of view functions
        - `address` string, required — Contract address containing the view function
        - `input` string, required — ABI-encoded function call data
        - `network_id` string, required — Chain ID where the contract is deployed
        - `parameter_condition` object — Condition to check on the function return value
          - `compare_threshold` boolean — If true, compares return value against a threshold
          - `comparison_value` string — Value to compare against
          - `operator` '>' | '<' | '==' | '>=' | '<=' — Comparison operator for the return value
          - `parameter_type` string — Solidity type of the return value
      - EthBalanceExpression — Monitors ETH balance of addresses
        - `address` string, required — Address to monitor balance for
        - `threshold` string, required — Balance threshold in wei below which to trigger alert
      - ERC20TransferMatcherExpression — Monitors ERC20 token transfer consistency
        - `address` string, required — Token contract address
        - `log_name` string, required — Name of the transfer event (usually "Transfer")
        - `balances` string, required — Name of the balances mapping in the contract
      - TxErrorExpression — Monitors transaction failures (excluding require/assert failures)
        - `addresses_to_ignore` string[] — List of contract addresses to ignore errors from
      - TxInternalErrorExpression — Monitors internal transaction failures in successful transactions
        - `addresses_to_match` string[] — List of contract addresses to monitor for internal failures
      - NoActionExpression — Monitors for absence of specific blockchain activities
        - `no_log` object — Configuration for monitoring missing logs
          - `address` string — Contract address to monitor
          - `network_id` string — Chain ID to monitor
          - `event_id` string — Event signature hash
          - `event_name` string — Name of the event for display purposes
        - `no_transaction` object — Configuration for monitoring missing transactions
          - `address` string — Address to monitor
          - `is_from_address` boolean — If true, monitors outgoing transactions; if false, monitors incoming
          - `network_id` string — Chain ID to monitor
          - `transaction_success` boolean — If set, only monitors successful/failed transactions
        - `check_after_seconds` integer, required — Number of seconds after which to trigger alert if no activity is detected
      - SandwichTransactionExpression — Monitors for sandwich attack patterns
        - `address` string, required — Contract address to monitor
        - `transaction_type` 'direct' | 'source' | 'internal' — Type of transaction to monitor: * direct - Direct interactions with contract * source - Transactions from contract * internal - Internal transactions
  - `delivery_channels` object[], required — List of notification channels where alerts will be sent
    - `enabled` boolean — Set delivery channel to be enabled or disabled for the alert.
    - `id` string — The delivery channel unique identifier.

## Response `200`

A successful response.

- CreateAlertResponse — Extended alert information returned by the API
  - `alert` object, required — Alert object containing all details of the created alert
    - `id` string, uuid, required — Unique identifier of the alert
    - `project_id` string, uuid, required — ID of the project the alert belongs to
    - `name` string, required — Human-readable name of the alert
    - `description` string — Optional description of the alert
    - `enabled` boolean, required — Whether the alert is currently active
    - `color` '#eeeeee' | '#34ace0' | '#ffda79' | '#ff5252' | '#33d9b2', required — Hex color indicating the severity of the alert. It can be one of the following severity types: - Default: #eeeeee - Info: #34ace0 - Warning: #ffda79 - Danger: #ff5252 - Success: #33d9b2
    - `severity` 'default' | 'info' | 'warning' | 'danger' | 'success', required — Severity level of the alert
    - `created_at` string, date-time, required — Timestamp when the alert was created
    - `updated_at` string, date-time, required — Timestamp when the alert was last updated
    - `is_editable` boolean, required — Whether the alert can be modified
    - `delivery_channels` object[] — List of delivery channels that receive this alert
      - `delivery_channel_id` string, uuid — ID of the delivery channel
      - `enabled` boolean — Whether this channel is enabled for the alert
      - `created_at` string, date-time — When this channel was added to the alert
    - `expressions` AlertExpression[], required — Conditions that trigger the alert when met
      - `type` 'method_call' | 'whitelisted_caller_addresses' | 'blacklisted_caller_addresses' | 'contract_address' | 'network' | 'tag' | 'tx_status' | 'function_params' | 'tx_value' | 'emitted_log' | 'state_change' | 'view_function' | 'eth_balance' | 'erc20_transfer_matcher' | 'tx_error' | 'tx_internal_error' | 'no_action' | 'sandwich_transaction', required — Type of blockchain event or condition to monitor. Different types require different expression structures.
      - `expression` union, required
        - MethodCallExpression — Monitors specific function calls in smart contracts
          - `line_number` integer, required — Line number in the source code where the monitored function is defined
          - `call_position` 'first' | 'last' | 'any', required — Position of the method call in the transaction execution: * first - Must be the first call in the transaction * last - Must be the last call in the transaction * any - Can occur anywhere in the transaction
        - WhitelistedCallerExpression — Monitors transactions from specific allowed addresses
          - `addresses` string[], required — List of Ethereum addresses that are allowed to trigger the alert
        - BlacklistedCallerExpression — Monitors transactions from specific blocked addresses
          - `addresses` string[], required — List of Ethereum addresses that will trigger the alert when they interact
        - ContractAddressExpression — Monitors interactions with specific contract addresses
          - `address` string, required — Ethereum address of the contract to monitor
          - `transaction_type` 'direct' | 'source' | 'internal' — Type of transaction interaction to monitor: * direct - Direct calls to the contract * source - Transactions originating from the contract * internal - Internal transactions involving the contract
        - NetworkExpression — Monitors events on specific blockchain networks
          - `network_id` string, required — Chain ID of the network to monitor
        - TagExpression — Monitors contracts or transactions with specific tags
          - `tag` string, required — Tag identifier to monitor
          - `transaction_type` 'direct' | 'source' | 'internal' — Type of transaction to monitor: * direct - Direct interactions * source - Source transactions * internal - Internal transactions
        - TxStatusExpression — Monitors transaction status (success/failure)
          - `transaction_success` boolean — When true, monitors successful transactions; when false, monitors failed transactions
        - FunctionParamsExpression — Monitors specific parameters of function calls
          - `address` string, required — Contract address containing the function
          - `function_line_number` integer, required — Line number where the function is defined in the source code
          - `parameter_conditions` ParameterCondition[], required — List of conditions to monitor on function parameters
            - `parameter_name` string, required — Name of the parameter to monitor
            - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=' | 'contains' | 'notContains', required — Comparison operator: * `>` - Greater than * `>=` - Greater than or equal * `<` - Less than * `<=` - Less than or equal * `==` - Equal to * `!=` - Not equal to * `contains` - Array contains value * `notContains` - Array does not contain value
            - `parameter_type` 'uint' | 'int' | 'bool' | 'address' | 'string' | 'byte', required — Solidity type of the parameter
            - `nested_parameter_type` string — For array types, the type of elements in the array
            - `comparison_value` string, required — Value to compare against. Format depends on parameter_type: * uint/int - String representation of number * bool - "true" or "false" * address - Ethereum address * string/byte - String value
        - TxValueExpression — Monitors transaction value amounts
          - `transaction_value` string, required — Amount of native currency (in wei) to compare against
          - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=', required — Comparison operator for the transaction value
        - EmittedLogExpression — Monitors event logs emitted by contracts
          - `address` string, required — Contract address emitting the event
          - `event_name` string, required — Name of the event to monitor
          - `event_id` string, required — Keccak-256 hash of the event signature
          - `match_any` boolean — If true, matches events from any contract in the project
          - `decode_events` boolean — If true, decodes bytes fields as UTF-8 strings
          - `match_non_project_contracts` boolean — If true, matches events from contracts outside the project
          - `parameter_conditions` ParameterCondition[] — Conditions to check on event parameters
            - `parameter_name` string, required — Name of the parameter to monitor
            - `operator` '>' | '>=' | '<' | '<=' | '==' | '!=' | 'contains' | 'notContains', required — Comparison operator: * `>` - Greater than * `>=` - Greater than or equal * `<` - Less than * `<=` - Less than or equal * `==` - Equal to * `!=` - Not equal to * `contains` - Array contains value * `notContains` - Array does not contain value
            - `parameter_type` 'uint' | 'int' | 'bool' | 'address' | 'string' | 'byte', required — Solidity type of the parameter
            - `nested_parameter_type` string — For array types, the type of elements in the array
            - `comparison_value` string, required — Value to compare against. Format depends on parameter_type: * uint/int - String representation of number * bool - "true" or "false" * address - Ethereum address * string/byte - String value
        - StateChangeExpression — Monitors changes in contract state variables
          - `address` string, required — Contract address to monitor for state changes
          - `parameter_conditions` object[], required — List of conditions to monitor on state variables
            - `parameter_name` string, required — Name of the state variable to monitor
            - `parameter_type` string, required — Solidity type of the state variable
            - `compare_change` boolean — If true, alerts when the value changes
            - `compare_threshold` boolean — If true, compares value against a threshold
            - `compare_percentage` boolean — If true, monitors percentage changes in value
            - `comparison_value` string — Value to compare against (required for threshold and percentage comparisons)
            - `operator` '>' | '<' | '==' | '>=' | '<=' — Comparison operator: * > - Alerts when value goes over threshold * < - Alerts when value goes under threshold * == - Alerts when value equals threshold * >= - Alerts when value increases by percentage * <= - Alerts when value decreases by percentage
        - ViewFunctionExpression — Monitors return values of view functions
          - `address` string, required — Contract address containing the view function
          - `input` string, required — ABI-encoded function call data
          - `network_id` string, required — Chain ID where the contract is deployed
          - `parameter_condition` object — Condition to check on the function return value
            - `compare_threshold` boolean — If true, compares return value against a threshold
            - `comparison_value` string — Value to compare against
            - `operator` '>' | '<' | '==' | '>=' | '<=' — Comparison operator for the return value
            - `parameter_type` string — Solidity type of the return value
        - EthBalanceExpression — Monitors ETH balance of addresses
          - `address` string, required — Address to monitor balance for
          - `threshold` string, required — Balance threshold in wei below which to trigger alert
        - ERC20TransferMatcherExpression — Monitors ERC20 token transfer consistency
          - `address` string, required — Token contract address
          - `log_name` string, required — Name of the transfer event (usually "Transfer")
          - `balances` string, required — Name of the balances mapping in the contract
        - TxErrorExpression — Monitors transaction failures (excluding require/assert failures)
          - `addresses_to_ignore` string[] — List of contract addresses to ignore errors from
        - TxInternalErrorExpression — Monitors internal transaction failures in successful transactions
          - `addresses_to_match` string[] — List of contract addresses to monitor for internal failures
        - NoActionExpression — Monitors for absence of specific blockchain activities
          - `no_log` object — Configuration for monitoring missing logs
            - `address` string — Contract address to monitor
            - `network_id` string — Chain ID to monitor
            - `event_id` string — Event signature hash
            - `event_name` string — Name of the event for display purposes
          - `no_transaction` object — Configuration for monitoring missing transactions
            - `address` string — Address to monitor
            - `is_from_address` boolean — If true, monitors outgoing transactions; if false, monitors incoming
            - `network_id` string — Chain ID to monitor
            - `transaction_success` boolean — If set, only monitors successful/failed transactions
          - `check_after_seconds` integer, required — Number of seconds after which to trigger alert if no activity is detected
        - SandwichTransactionExpression — Monitors for sandwich attack patterns
          - `address` string, required — Contract address to monitor
          - `transaction_type` 'direct' | 'source' | 'internal' — Type of transaction to monitor: * direct - Direct interactions with contract * source - Transactions from contract * internal - Internal transactions

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — The resource was not found.
- `429` — The request was rate limited. See the [rate limits](#section/Introduction/Rate-limits) section for the current limits and how request counts expire.
- `500` — Server error.

---

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