vike
Alerts API

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/rules

Creates 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.

cURL
# 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"}'