Developers

Build on the whale flow.

The Polywhaler API serves the whale trades, wallet scores and market signals behind the app, as JSON over REST, with webhooks and bulk exports.

Large, insider-flagged tradesOpenAPI spec
curl -G "https://polywhaler.com/api/v1/trades" \
  -d min_amount=50000 \
  -d min_insider_score=60 \
  -d limit=1 \
  -H "Authorization: Bearer pwhk_your_api_key"
Response
{
  "data": [
    {
      "venue": "polymarket",
      "title": "Fed Decision in October?",
      "outcome": "Yes",
      "side": "BUY",
      "amount": 72500,
      "price": 0.18,
      "timestamp": 1791418020,
      "proxyWallet": "0x93fb…3e4a",
      "category": "economy",
      "insiderScore": 74,
      "insiderBreakdown": { "conviction": 32, "timing": 10, … }
    }
  ],
  "pagination": { "limit": 1, "count": 1, "nextCursor": "1791418019" }
}

The data behind the app.

The same trades, scores and rankings as Polywhaler itself, so what you build matches what you see. Every endpoint is in the OpenAPI spec.

Whale trades

Polymarket and Kalshi whale trades, filtered by size, side, category and insider score, newest first.

Wallets

Any wallet's profile, rank, open positions, trade history and the clusters it trades in.

Leaderboard

The Smart Money ranking, with the score, win rate and P&L behind each wallet.

Insider signals

Insider scores and their factors on Polymarket buys, suspicious events and coordinated clusters.

Markets and flow

Whale volume by event, smart-money flow by category, and the positions your whales agree on.

Research

The Bitcoin forecast and its markets, The Prophet's editions and the black swan radar.

Webhooks

Push, don't poll.

Register an https endpoint and Polywhaler posts each event as it happens, signed with HMAC SHA-256 so you can check it came from us. Trade events can be narrowed by size, category and insider score, and failed deliveries are retried with backoff.

  • trade.high_insider
  • trade.followed_wallet
  • trade.vindicated
  • cluster.detected
  • consensus.detected
  • black_swan.changed
  • oracle.published
  • btc_forecast.updated
  • export.completed
Verify a delivery (Node)
import crypto from "node:crypto"

// X-Polywhaler-Signature: sha256=<hex HMAC of the raw body>
export function verify(rawBody, header, secret) {
  const expected = "sha256=" +
    crypto.createHmac("sha256", secret).update(rawBody).digest("hex")
  return header.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected))
}

Bulk exports

Export it for your backtests.

Ask for up to 100,000 Polymarket whale trades or resolved outcomes at a time, as CSV, JSON or Parquet. The file is usually ready within minutes, and an export.completed webhook tells you when it is.

Request an export
curl -X POST "https://polywhaler.com/api/v1/exports" \
  -H "Authorization: Bearer pwhk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "dataset": "outcomes", "format": "parquet" }'

Part of Quant.

The API comes with the Quant plan, $99 a month, or $599 a year, along with everything in Pro.

requests a day
10,000
requests a day
requests a minute per key
100
requests a minute per key
webhook events
9
webhook events

FAQs

Common questions about the Polywhaler API.

Which plan includes the API?

Quant. API keys, webhooks and bulk exports are part of the Quant plan, $99 a month, or $599 a year. Pro does not include API access.

How do I authenticate?

Create a key on the Developer page and send it as a Bearer token in the Authorization header. Keys start with pwhk_, are shown once, and you can have up to five.

What are the rate limits?

10,000 requests a day, reset at midnight UTC, and up to 100 requests a minute per key. Every response carries X-RateLimit headers, and a 429 says when to retry.

Does the API cover Kalshi?

The trades endpoint covers Polymarket and Kalshi (venue=kalshi or venue=all). The other endpoints, webhooks and exports cover Polymarket.

Is there an SDK?

Not yet. The API is JSON over HTTPS with an OpenAPI 3.1 spec, so any HTTP client works, and you can generate a typed client from the spec.

How fresh is the data?

Whale trades sync every minute. The leaderboard refreshes every 15 minutes and the Bitcoin forecast every hour.