Create an alert recipe (writes to your account)
create_alert_recipeSaves an alert recipe that fires when specified metric conditions hold, delivering via Telegram or email and enforcing a cooldown before repeat alerts.
Instructions
Call this when the user asks to be alerted when a metric crosses a threshold and has agreed to the exact condition (parse_alert_text turns their words into one). Saves an alert recipe on the account: it fires when every condition holds, delivers by Telegram first with email as fallback unless channels says otherwise, and waits cooldown_hours before it fires again for the same symbol. field is one of: mark_price, pressure_score, funding_rate_pct, oi24h_pct, basis_pct, price_change_24h_pct, liq_cluster_distance_pct, usdt_peg_min_usd, usdc_peg_min_usd, liq_1h_usd, rsi_4h, ls_ratio_global, book_imbalance_2pct_pct, withdrawal_paused_venues, max_leverage_min, borrow_apr_pct, hl_whale_long_share_pct; op is one of >= > <= < ==; percent fields take percent values (0.05 means 0.05%). Pass field, op and threshold for one condition, or conditions for up to 6. scope: watchlist (default), any, or symbols with symbols. The plan sets how many recipes an account keeps; past it the tool answers with the limit. Writes are rate limited per key and each one is recorded on the account.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | string, one condition's comparison: >= | > | <= | < | == | |
| name | No | string, optional name; default describes the condition | |
| field | No | string, one condition's metric, e.g. funding_rate_pct | |
| scope | No | string, optional: watchlist (default), any, symbols | |
| symbols | No | array, optional up to 20 symbols, e.g. ["BTCUSDT", "ETH"]; implies scope symbols | |
| channels | No | array, optional delivery channels: telegram | email | push | webhook; empty means Telegram first, email as fallback | |
| threshold | No | number, one condition's threshold, e.g. 0.05 | |
| conditions | No | array, optional up to 6 conditions {field, op, value}, all must hold (instead of field, op, threshold) | |
| cooldown_hours | No | number, optional 1..168 hours before it fires again (default 24) |