0. Before you have an account
?sandbox_status=<code>, which lets you write your error handling before you meet a real error.
Get a key
1
Subscribe to Pro
Pick a plan on Pricing. Every data route answers
402 without one.2
Generate the key
Open Developers, then click Generate token. The full key is shown once.
3
Keep it in the environment
1. Check the key
200 means the key and the subscription are both live. This route does not spend any of your 100 requests a minute. It draws on a separate budget of 100 reads a minute, which it shares with Account identity.
daily_usage.limit is null because there is no daily cap. The month’s cap is monthly_quota.limit, and Rate limits explains the rest of that object.
2. Read the leaderboard
id, grade, score, pnl, and strategy_type. Only S, A, and B wallets appear on the leaderboard. Keep one id for the next request.
3. Open one wallet
The path takes a wallet address, a Polymarket username, or atrd_ id:
grade, pnl.realized, and stats.win_rate. The heavier fields strategy, category_strengths, quant_metrics, and trust come back only when you ask for them with expand.
For a wallet 0xinsider does not track, the route still answers 200. You get sync_status set to unknown, with pnl and stats empty, so check sync_status before you read a number. Try the wallet again later.
404 with error.reason trader_not_tracked comes only from the two position timeline routes, never from this one. Errors lists where each reason comes from.4. List the A-grade large trades
min_grade=A returns trades from S and A wallets. Add category=Basketball to narrow it to one sport. Each row carries market.condition_id, which the next request needs.
5. Read one market
sharp_money.net_flow_usd is the signed USD total of every tracked large trade in the window, which the timeframe parameter sets. sharp_money.direction is NO when that total is negative, and YES otherwise. sharp_money.top_positions lists the largest positions held by S, A, and B wallets.
All three describe where the money sits now, not where the price is going. Market intel has the full field list.
The same requests in code
Python and Go have official clients, so steps 2 to 4 are 3 method calls, with typed errors and cursor pagination handled for you. The JavaScript example usesfetch, because @0xinsider/sdk is not on npm yet. The Rust client makes the same calls as typed async methods.
Look up several wallets at once
Read up to 25 profiles in one request:status, either ok or error, so one bad address does not fail the rest. Each item costs one unit of the batch budget.
What this does not give you
- It does not place an order for you. The API reads, and your Polymarket account trades. potd-trader is the one open-source program that buys, on your machine, with your keys.
- It does not predict. A grade ranks the profit a wallet has already realized against every other tracked wallet.
- It does not cover another exchange. Every row comes from Polymarket.
Go next
Python client
pip install 0xinsider, and the sandbox in 3 lines.Go client
A typed method per operation, and the deadline you have to set.
Rust client
A typed async method per operation, with retries and a bounded stream reader.
TypeScript client
Typed calls, cursor pagination, and the resumable stream, built from source.
Local MCP server
The same 37 tools inside Claude Code, Cursor, or Codex.
Errors
11 codes, 24 reasons, and the 4 that carry Retry-After.