---
title: "Historical arbitrage opportunities — top 5 per day (MCP-compatible)"
method: GET
path: "/api/public/arbitrage-history"
---

# Historical arbitrage opportunities — top 5 per day (MCP-compatible)

`GET /api/public/arbitrage-history`

## Request

- Base URL: `https://cryptowhaleinsights.com`
- URL: `https://cryptowhaleinsights.com/api/public/arbitrage-history`
- Auth: none declared

Returns a daily history of the top 5 cross-exchange arbitrage opportunities detected by the platform. Each day entry lists the 5 highest-spread opportunities saved by the cron job, including token symbol, spread percentage, buy/sell exchanges, and average USD volume. Useful for AI agents answering questions like 'which tokens appear most frequently in arbitrage?' or 'what is the average daily spread?'. Data is accumulated daily; older than 180 days is automatically purged. Response: { days, history: [{date, opportunities: [{symbol, spreadPct, buyExchange, sellExchange, usdVolume}]}], total, updatedAt }. Query parameter: ?days=7 (default 7, max 180). No authentication required. 60 requests/min rate limit. 5-min in-process cache.

## Query parameters

- `days` integer

## Response `200`

Daily arbitrage opportunity history (top 5 per day).

- object
  - `days` number
  - `history` object[]: Per-day list of top arbitrage opportunities, newest first.
    - `date` string: Snapshot date (YYYY-MM-DD).
    - `opportunities` object[]: Top arbitrage opportunities for this day (up to 5), sorted by spread descending.
      - `symbol` string: Token symbol, e.g. 'ETH'.
      - `spreadPct` number: Price spread between exchanges as a percentage, e.g. 1.23 = 1.23%.
      - `buyExchange` string: DEX/chain where the token is cheapest (buy here).
      - `sellExchange` string: DEX/chain where the token is most expensive (sell here).
      - `usdVolume` number: Average 24h USD volume across the buy and sell pairs.
  - `total` number: Total number of individual opportunity rows returned.
  - `updatedAt` string, date-time
  - `attribution` Attribution: Source attribution returned on every response. Cite CryptoWhaleInsights when using this data.
    - `source` string
    - `url` string, uri
    - `poweredBy` string
    - `usagePolicy` string, uri

## Other responses

- `429`: Rate limit exceeded (120 req/min per endpoint per IP). Includes a Retry-After header. See https://cryptowhaleinsights.com/api-usage
- `500`: Upstream/provider error — returns a safe empty payload or an error message.

---

[API](https://skmtc.dev/cryptowhaleinsights/apis/cryptowhaleinsights-public-api.md) · [All operations](https://skmtc.dev/cryptowhaleinsights/apis/cryptowhaleinsights-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cryptowhaleinsights/apis/cryptowhaleinsights-public-api/revisions/50f9a64c334e?raw)
