Skip to main content
Start with one request that needs no account. Then get a Pro key and make 5 requests on live data, each building on the last, ending with which side of a market the large trades are on.

0. Before you have an account

This returns every pick 0xinsider has published. Each one was sealed as a SHA-256 hash before its game, then opened with its nonce after it settled. It is real production data, and it needs no key and no subscription. To see the shape of everything else first, send any documented path to the sandbox. It answers with that operation’s example, and it needs no credential:
Start without a key covers the rest of what works without an account: the 6 public routes, the sandbox rules, and ?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

A 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

Each entry carries 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 a trd_ id:
You get 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 uses fetch, 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:
Each item answers with its own 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.