---
title: "Get Spike Alerts"
method: GET
path: "/api/v1/on-chain/exchange-flows/spike-alerts"
tags: ["On-Chain Intelligence"]
---

# Get Spike Alerts

`GET /api/v1/on-chain/exchange-flows/spike-alerts`

## Request

- Base URL: `https://cryptodataapi.com`
- URL: `https://cryptodataapi.com/api/v1/on-chain/exchange-flows/spike-alerts`
- Auth: API key in header `X-API-Key`

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.

## Query parameters

- `min_amount` number: Minimum transfer size in USD (applies to amount_usd; default $1M)
- `limit` integer
- `symbol` string, nullable: Only this token (e.g. ETH, USDT)
- `exchange` string, nullable: Only this exchange (e.g. binance)
- `chain` string, nullable: Only this chain (eth, btc, sol, tron, bsc, base, arb, op)
- `direction` string, nullable: inflow | outflow
- `source` string, nullable: transfer (decoded Transfer event) | balance_delta (inferred from a wallet balance change)

## Response `200`

Successful Response

- SpikeAlertsResponse
  - `as_of` integer, required
  - `count` integer, required
  - `min_amount` number, required
  - `alerts` SpikeAlert[], required
    - `ts` integer, required
    - `chain` string, required
    - `symbol` string, required
    - `exchange` string, required
    - `direction` string, required: inflow | outflow
    - `amount` number, required: Transfer size in TOKEN-NATIVE units (ETH in ETH, BTC in BTC, tokens in raw units) — not USD
    - `unit` string, nullable: Unit of `amount` (the token symbol)
    - `amount_usd` number, nullable: Transfer size in USD, converted at ingestion from the live price; the min_amount threshold applies to this
    - `counterparty` string, required
    - `source` string: How the row was observed. `transfer`: a decoded Transfer event with a real counterparty address. `balance_delta`: inferred from a change in a CEX wallet's balance between polls (native ETH/BTC, Solana) — exchange-internal hot/cold rebalancing is indistinguishable from a client deposit, so filter with `source=transfer` for whale-sized deposits only

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/cryptodataapi/apis/crypto-data-api.md) · [All operations](https://skmtc.dev/cryptodataapi/apis/crypto-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cryptodataapi/apis/crypto-data-api/revisions/8628b754ca81?raw)
