Create a Custom Alert
alerts_create_customCreates a Custom Alert in the signed-in member's account from an indicator's condition on one market and timeframe: either a Vela built-in indicator (indicator: RSI crosses above 70, MACD crosses above its signal line, price crosses below the lower Bollinger Band…) or an open-source LuxAlgo Library indicator (library: its slug, from library_search, firing on one of its alert conditions or on its alerts). It first replays the alert over recent history and says how often it would have fired ("12 times, about 0.4 per day"); with preview_only it stops there and creates nothing, which is the way to try a condition before the member decides. Paid Library indicators cannot run as alerts. It notifies the member in-app when the account has that channel; the result says plainly which channel it notifies, or that it notifies no one. Previews are limited to about 10 a minute. Use alerts_create_price for a plain price level. How many alerts the member may have on comes from their LuxAlgo plan: at a limit the call answers with the limit and where to upgrade, and nothing is created. It changes the member's account, so the chat app may ask the user to confirm first. Requires signing in with a LuxAlgo account (OAuth).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"symbol": "<symbol>",
"context": "<context>"
},
"name": "alerts_create_custom"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | The alert's name; default describes the condition. | |
| symbol | Yes | The market, a market as source:TICKER, e.g. "binance:BTCUSDT", "hyperliquid:BTC", "coinbase:BTC-USD", "edgx:AAPL" (US stocks and ETFs; "NASDAQ:AAPL" works too), "fx:EURUSD", "commodities:XAUUSD", "cme:ES1!". A bare stablecoin pair ("BTCUSDT") is read as Binance and a bare "ES1!" as CME. | |
| context | Yes | Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution." | |
| library | No | ||
| frequency | No | How often it fires: once (then it stops), once_per_bar (at most once per bar of `timeframe`), once_per_bar_close (when a bar of `timeframe` closes with the condition met), every_time (each time, spaced by min_interval_seconds). | once_per_bar_close |
| indicator | No | ||
| timeframe | No | The bars the indicator runs on. | 1h |
| preview_only | No | Only replay it over history and say how often it would have fired; create nothing. | |
| min_interval_seconds | No | every_time only: the least time between two fires, in seconds (default 60). |