Get Spike Alerts
GET/v1/cryptodata/on-chain/exchange-flows/spike-alerts
Recent large transfers (≥ `min_amount` USD) to/from tracked CEX wallets. Useful for catching whale-sized deposits in real time. Each alert carries `amount` in TOKEN-NATIVE units (with `unit`) plus `amount_usd` converted at ingestion from the live price — the `min_amount` threshold applies to `amount_usd`, so meme-token unit counts can't masquerade as dollar spikes. Rows whose USD value can't be verified (no live price) are excluded. This is a LIVE feed of the last 500 large transfers (roughly the last 10h). The full history — every row, from 2026-10-08 — is the `exchange_flow_spikes` type on `/api/v1/backtesting/snapshots`; each snapshot is the batch of rows first seen in that 5-minute tick, so concatenating a range lists each transfer once.
Price
$0.01/ callEdge cache
Off
Uptime 24h
100.00%
p95
228ms
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| min_amount | query | number = 1000000 | Minimum transfer size in USD (applies to amount_usd; default $1M) |
| limit | query | integer = 50 | |
| symbol | query | string | Only this token (e.g. ETH, USDT) |
| exchange | query | string | Only this exchange (e.g. binance) |
| chain | query | string | Only this chain (eth, btc, sol, tron, bsc, base, arb, op) |
| direction | query | string | inflow | outflow |
| source | query | string | transfer (decoded Transfer event) | balance_delta (inferred from a wallet balance change) |
Code
# 1. No key, no payment: the gateway answers 402 with the price
curl -i "https://api.realtimeapi.ai/v1/cryptodata/on-chain/exchange-flows/spike-alerts"
# 2. Pay: retry with a signed x402 payment (any x402 client builds this header)
curl "https://api.realtimeapi.ai/v1/cryptodata/on-chain/exchange-flows/spike-alerts" -H "PAYMENT-SIGNATURE: $X402_PAYMENT"// npm i @x402/fetch @x402/core @x402/evm viem
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = x402Client.fromConfig({ schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(PRIVATE_KEY)) }] });
const pay = wrapFetchWithPayment(fetch, client);
const data = await (await pay("https://api.realtimeapi.ai/v1/cryptodata/on-chain/exchange-flows/spike-alerts")).json();
console.log(data);# pip install x402 eth-account requests
from eth_account import Account
from x402.clients.requests import x402_requests
session = x402_requests(Account.from_key(PRIVATE_KEY))
print(session.get("https://api.realtimeapi.ai/v1/cryptodata/on-chain/exchange-flows/spike-alerts").json())curl "https://api.realtimeapi.ai/v1/cryptodata/on-chain/exchange-flows/spike-alerts" -H "X-API-Key: $RTAPI_KEY"Frequently asked questions
How do I get get spike alerts from CryptoDataAPI?
Send GET https://api.realtimeapi.ai/v1/cryptodata/on-chain/exchange-flows/spike-alerts. Pay $0.01 per request with x402, or send an X-API-Key header.
What does GET /on-chain/exchange-flows/spike-alerts cost?
$0.01 per successful request in USDC on Base. Failed requests are never charged.
Can I call this endpoint from an MCP client?
Yes. Connect any MCP client to the RealtimeAPI server and use call_feed with this endpoint's URL, or get_quote to check the price first.