For developers
Build whale-tracking bots on clean Polymarket data
Clean data, farmer-filtered, NegRisk-corrected. Public REST API for builders. Free tier for community bots, Premium $19.99/mo for production loads.
Free tier on public endpoints · Premium $19.99/mo for 600 req/min · Time to first request: 60 seconds
Live API example (copy-paste, returns real data):
$ curl -s https://orcalayer.com/api/v2/whales/recent-trades \
| jq '.[0]'
{
"whale_wallet": "0x7f3c8979d0afa00007bae4747d5347122af05613",
"whale_name": "Theo4",
"side": "YES",
"price": 0.74,
"size_usd": 142000,
"question": "Will the Fed cut rates by July?",
"category": "Economics",
"timestamp": 1718045182
}What you can build
Trading bot
Auto-execute trades when smart-money consensus crosses your threshold. Poll the recent-trades endpoint, react to position shifts. Premium tier provides 600 req/min for real-time strategies. NegRisk correction built into wallet responses.
Community alerts bot
Notify your Discord or Telegram community when whales move $50K+ on Polymarket. Filter by category, wallet, or threshold. The free public stream covers most community-sized bots; Premium handles high-frequency setups.
Custom dashboard
Embed Polymarket whale data on your site with a handful of fetches. Track specific wallets, markets, or categories. JSON responses, CORS-friendly for browser clients. Works with React, Vue, plain HTML.
Research notebook
Jupyter or Colab analysis: fetch resolved markets, calculate true returns minus hedge offsets, identify patterns in whale entry timing. Public methodology, reproducible by anyone — academic researchers welcome.
Start building
Three Python snippets — each runs against the live API. Replace the wallet/condition_id with your target.
Track a specific whale (full profile + smart-money flag)
import requests
WALLET = "0x7f3c8979d0afa00007bae4747d5347122af05613"
API_KEY = "your_premium_key" # Premium tier; public endpoints don't need auth
r = requests.get(
f"https://orcalayer.com/api/v2/wallet/{WALLET}",
headers={"Authorization": f"Bearer {API_KEY}"},
)
data = r.json()
# Response is composed: profile / overview / stats / categories
profile = data["profile"]
stats = data["stats"]
overview = data["overview"]
print(f"Name: {profile['name'] or profile['pseudonym']}")
print(f"Total PnL: ${stats['total_pnl']:,.0f}")
print(f"Win rate: {stats['win_rate']:.1%}")
print(f"Smart Money flag: {stats['is_smart']}")
print(f"Markets traded: {overview['total_markets']}")
print(f"Median hold: {overview['median_hold_days']} days")List hot markets with whale skew
import requests
# Hot markets ranked by volume + whale activity
r = requests.get("https://orcalayer.com/api/v2/markets/hot")
markets = r.json()
for m in markets[:10]:
skew = m["whales_yes"] - m["whales_no"]
print(
f"{m['question'][:60]:60s} "
f"YES={m['price_yes']:.2f} "
f"Σwhales={m['unique_whales']:3d} "
f"skew={skew:+d}"
)Poll whale trades — bot loop
import requests
import time
API_KEY = "your_premium_key"
SEEN = set()
while True:
r = requests.get(
"https://orcalayer.com/api/v2/whales/recent-trades",
headers={"Authorization": f"Bearer {API_KEY}"},
)
for trade in r.json():
key = trade["tx_hash"]
if key in SEEN:
continue
SEEN.add(key)
# Filter: $50K+ trades from named whales
if trade["size_usd"] >= 50_000 and trade.get("whale_name"):
print(
f"WHALE: {trade['whale_name']} "
f"${trade['size_usd']:,.0f} {trade['side']} "
f"@ {trade['price']:.2f} on '{trade['question'][:50]}'"
)
# → forward to Discord / Telegram / Slack webhook
time.sleep(30) # Premium tier — well under 600 req/min budgetAuthentication
Public endpoints under /api/public/v1/* require no authentication — make GET requests directly. Premium endpoints under /api/v2/* require Bearer token authentication:
Authorization: Bearer YOUR_API_KEYGet your key after upgrading at /pricing. Keys can be rotated anytime; they expire only if you request rotation.
Rate limits
| Tier | Requests/minute | Endpoint scope |
|---|---|---|
| Free | Cloudflare-throttled | /api/public/v1/* |
| Premium | 600 / min default | /api/v2/* + public |
Rate limit response: HTTP 429. Higher per-minute caps available for heavy production usage — contact support.
Choose your tier
Free
$0/month
- • Public endpoints (live trades, ISW)
- • No authentication, no card
- • Cloudflare-throttled burst-friendly
- • Full public methodology
Best for developers
Premium
$19.99/month
- • 600 requests/minute default
- • All /api/v2/* endpoints
- • Bearer token auth (stable)
- • Higher caps on request
- • Priority support <24h
Looking for the full dashboard without API? See /pricing for the Pro tier ($9.99/mo).
OrcaLayer API vs Polymarket native API
We use Polymarket as our source. We add: methodology, filtering, classifications, aggregations. Use both — we layer, we do not replace.
| Feature | OrcaLayer API | Polymarket native |
|---|---|---|
| Farmer detection | Built-in is_smart flag (farmers excluded from Smart classification) | — |
| NegRisk correction | Auto-applied to wallet PnL | — |
| Smart-money aggregation | Whale head-count, conviction clusters, whale flips | — |
| ISW Ukraine overlay | Live frontline distance per market | Not in scope |
| Wallet PnL | Single endpoint, NegRisk-corrected | Multiple calls + manual reconciliation |
| OpenAPI spec | /api/openapi.json (auto-synced) | Sparse, read client SDK |
| Authentication | Bearer token (Premium) or open public | Polygon wallet sign or none |
| Methodology | Public, full disclosure at /methodology | Proprietary |
Developer FAQ
What languages can I use to query the OrcaLayer API?
Any language with HTTP client support. We provide Python examples; cURL, JavaScript/Node.js, Go, Rust, Ruby, PHP, and Java all work the same way. Responses are plain JSON, no SDK required.
How fresh is the OrcaLayer API data?
Whale trades and live markets refresh under 30 seconds end-to-end from Polygon block to API response. Wallet stats refresh within minutes after each trade. ISW Ukraine territory data refreshes daily after ISW publishes (typically 21:00 UTC).
Can I use OrcaLayer API for commercial trading bots?
Yes. Both Free (public endpoints) and Premium tiers allow commercial use. We do not take a cut of trades, do not require disclosure, and do not restrict use case. The only limit is rate.
What rate limits apply on Free tier?
Public endpoints under /api/public/v1/* are open to anonymous requests subject to Cloudflare anti-abuse rate limits (sustained burst-friendly for community bots). For predictable production quota, Premium tier provides 600 requests/minute against all /api/v2/* endpoints.
Does the API include farmer-filtered data by default?
Wallet responses include the is_smart flag (and exclude wallets that fail the farmer test from Smart Money classification). Leaderboard endpoints return the farmer-filtered ranking. Raw wallet data is available too if you want to apply your own filter. Methodology documented at orcalayer.com/methodology.
How do I authenticate API requests?
Public endpoints at /api/public/v1/* require no authentication. Premium endpoints at /api/v2/* require a Bearer token: include 'Authorization: Bearer YOUR_API_KEY' header. Get your key after upgrading at orcalayer.com/pricing.
Are there official client libraries?
Not yet. The API is straightforward REST plus JSON; use any HTTP library (Python requests, Node.js fetch, Go net/http). A Python helper library is on the roadmap when there is sustained demand from paid customers.
What happens if Polymarket changes their data model?
We adapt and ship updated endpoints under /api/v3/ when needed. Within v2, we promise no breaking changes — only additive fields. Customers on Premium tier get advance notice via email; everyone sees the changelog at orcalayer.com/docs/api.
Built with OrcaLayer
Coming soon: showcase of bots, dashboards, and research projects built on the OrcaLayer API.
Built something? Reach out at @orcalayer.
Coming next
- More aggregation endpoints — sector-level smart-money flow, multi-wallet correlation
- WebSocket streaming — push trade events instead of polling (Premium)
- Official Python helper — typed client + retries (when paid demand justifies)
Subscribe to our Telegram channel @orcalayer for API changes and new endpoint announcements.
Start building today
Get your API key →60 seconds from sign-up to first API call. No credit card required for Free tier.