CrowdIntel
OpenAPI 3.1 · Bearer auth · snake_case JSON

CrowdIntel API

Build Polymarket bots and agents on the deepest data: 1.7B+ indexed on-chain fills, smart-money signals, whale alerts, funding clusters, and hosted backtests — read-only, so your bot keeps execution. Wallet signals, market sentiment, on-chain trades, and sybil clusters over REST, MCP, and webhooks. Mint a key in Settings → API — free, no credit card — then call the base URL https://crowdintel.xyz/api. Every endpoint answers on a free key; paid plans raise the rate limit, not the surface.

Free · $050 / hr · 500 / moEvery endpoint · 3 backtests/mo · 1 webhook
Terminal · $991k / hr · 50k / moUncapped backtests · 10 webhooks · 300 MCP/day
Terminal Pro · $2995k / hr · 250k / mo5x throughput · commercial license

Quickstart

Every request needs an Authorization: Bearer cint_api_… header. Responses are snake_case; errors use { error: { code, message, request_id } }; lists return { data, next_cursor }.

curl
curl https://crowdintel.xyz/api/v1/signals/wallet/0xYOUR_WALLET \
  -H "Authorization: Bearer cint_api_xxxxxxxxxxxxxxxxxxxxxxxx"
JavaScript (fetch)
const res = await fetch(
  "https://crowdintel.xyz/api/v1/signals/wallet/0xYOUR_WALLET",
  { headers: { Authorization: `Bearer ${process.env.CROWDINTEL_API_KEY}` } },
);

if (!res.ok) {
  const { error } = await res.json();
  throw new Error(`${error.code}: ${error.message} (${error.request_id})`);
}

const signal = await res.json();
console.log(signal.smart_money_score, signal.confidence);

// Cursor pagination
let cursor = null;
do {
  const url = new URL("https://crowdintel.xyz/api/v1/leaderboards/pnl");
  url.searchParams.set("limit", "100");
  if (cursor) url.searchParams.set("cursor", cursor);
  const page = await fetch(url, {
    headers: { Authorization: `Bearer ${process.env.CROWDINTEL_API_KEY}` },
  }).then((r) => r.json());
  for (const row of page.data) console.log(row.address, row.total_pnl);
  cursor = page.next_cursor;
} while (cursor);
Python (requests)
import os
import requests

API = "https://crowdintel.xyz/api"
HEADERS = {"Authorization": f"Bearer {os.environ['CROWDINTEL_API_KEY']}"}

# Single lookup
res = requests.get(f"{API}/v1/signals/wallet/0xYOUR_WALLET", headers=HEADERS)
res.raise_for_status()
signal = res.json()
print(signal["smart_money_score"], signal["confidence"])

# Cursor pagination
cursor = None
while True:
    params = {"limit": 100}
    if cursor:
        params["cursor"] = cursor
    page = requests.get(f"{API}/v1/leaderboards/pnl", headers=HEADERS, params=params).json()
    for row in page["data"]:
        print(row["address"], row["total_pnl"])
    cursor = page.get("next_cursor")
    if not cursor:
        break
CrowdIntel needs a newer browser

Your device is on iOS 15 or older. CrowdIntel uses features (color-mix, WebGL2, modern auth) that require iOS 16+ / Safari 16+.

iPhone 7 maxes out at iOS 15, so the site can't render here. Open CrowdIntel on a desktop browser or a newer phone.

crowdintel.xyz

◆ legacy browser fallback