Create an alert rule
Create an on-chain transfer alert or a Hyperliquid alert from a JSON body with the fields of the alerts_create tool.
POST https://data.vike.io/v1/alerts/rulesCreates one alert rule. The JSON body is the input of the MCP tool
alerts_create, field for field: label is required, alert_type picks a
transfer alert (the default: chain, token_symbol, min_value_usd, max_value_usd, address, address_role) or a
Hyperliquid alert, and channels lists email and webhook. The
answer is {"alert": {...}}, the new rule as GET /v1/alerts/rules lists it.
A token the chain does not have is refused before anything is stored, with the tokens it does have that are close:
BTC on eth answers 400 with No token BTC on eth: an alert on it could never fire. Did you mean WBTC?. A native
coin on its own chain (ETH on eth and base, BNB on bsc, HYPE on hyperevm) is accepted and matches the chain's
native transfers. If the token could not be checked the answer is 503 and nothing is stored: ask again.
# a USDC transfer of at least $1M on Ethereum, by e-mail
curl -X POST -H "X-API-Key: $VIKE_API_KEY" -H "Content-Type: application/json" \
"https://data.vike.io/v1/alerts/rules" \
-d '{"label": "Big USDC moves", "chain": "eth", "token_symbol": "USDC", "min_value_usd": 1000000, "channels": ["email"]}'
# every fill of one Hyperliquid wallet, read from the event feed (no channel)
curl -X POST -H "X-API-Key: $VIKE_API_KEY" -H "Content-Type: application/json" \
"https://data.vike.io/v1/alerts/rules" \
-d '{"label": "Whale fills", "alert_type": "hl_wallet", "wallet": "0x1111111111111111111111111111111111111111"}'