Skip to main content
Use curl in your terminal to try the API. Start with sample data, then use a Pro or Max API key to read live data.

1. Try a request without a key

You receive an example leaderboard response. The sandbox uses sample data, so you can learn the format without an account or subscription. If you want to try real public data, read the pick ledger:
The ledger includes published picks and their commitment states. It does not reveal the side of a live sealed pick; the ledger reference explains how to check the proof.

2. Get an API key

  1. Subscribe to Pro or Max for protected live data.
  2. Open Developers and choose Create key.
  3. Save the key when it appears. The full value is shown once.
  4. Store it in an environment variable:
Replace the placeholder with your own key. Keep it out of source code, browser code, logs, and screenshots. See Authentication for OAuth and integration keys.

3. Check the key and account

A 200 response means the credential is valid. Check data.entitlement to confirm the account can read paid data; a valid key can still belong to an account whose paid access has expired. If you receive an error: Errors covers the error body and recovery steps. Account identity explains the diagnostic fields.

4. Read the leaderboard

The response’s data array contains tracked S, A, and B wallets. Each row includes an id, grade, score, and P&L information. Copy one id for the next request. An empty array is a valid response; do not assume a first row exists.

5. Open a trader profile

Replace <trader_id> with the id you copied:
The path also accepts a wallet address or known Polymarket username. The response includes sync_status, P&L, statistics, and a grade when one is available. Check sync_status before using the numbers. An untracked wallet address returns 200 with sync_status: "unknown" and missing analytics; an unknown username or trader ID returns 404. expand=strategy adds strategy details. Other optional groups include category_strengths, quant_metrics, and trust; Expand explains how to request them.

6. Find a large trade and its market

This requests large trades of at least $10,000 from S or A wallets. Copy a row’s market.condition_id, then replace <condition_id> below:
sharp_money.net_flow_usd describes signed flow from tracked large trades in the selected time window. sharp_money.top_positions lists the largest positions held by graded S, A, and B wallets. These fields describe observed activity. They do not predict the next price move. See Market flow for parameters and response details.

Use a client in your application

The Python, Go, TypeScript, and Rust pages show installation and complete examples. For a terminal workflow, use the CLI. Here is the leaderboard request in JavaScript without an SDK:
Run authenticated requests on a server or in a local script. Never send your API key to a public browser bundle.

Look up several wallets at once

Use batch trader lookup to read up to 25 profiles in one request. Each item returns its own status, so an unknown wallet or username does not fail every other item. Each item uses one unit of the batch budget.

Continue from here

Pagination explains how to read more than one page. Rate limits explains budgets and response headers. The API reference lists every operation and the rules they share.