# Your first trader ranking.

> Source: https://implyra.com/docs/quickstart
> Implyra API docs · Get started · Quickstart

Fetch trader performance, read the result and open a portfolio from a returned address.

## 1. Set your connection

Request API access to receive your REST URL and access configuration. Set the URL in your server environment and apply any credentials supplied for your deployment.

> **Using a developer-console API key?.** Follow the Developer accounts guide for the authenticated REST gateway. The examples on this page describe a separately provisioned enterprise deployment; its URL and credentials are not interchangeable with a console key.

- [Open your developer console](https://implyra.com/developers): Sign in with Google or email and manage your workspace and API keys.
- [Developer account quickstart](https://implyra.com/docs/developer-accounts#first-request): Make an authenticated request through the staged developer gateway.
- [Connection & access](https://implyra.com/docs/authentication): Environment variables, credentials and stream access.

```sh
export IMPLYRA_API_URL="https://your-rest-endpoint.example"
```

## 2. Find traders to research

`GET /leaderboard/global`

This request returns 20 traders ranked by total P&L, with advanced metrics when available.

**Get trader rankings**

```sh
curl --fail-with-body \
  "${IMPLYRA_API_URL%/}/leaderboard/global?advanced=true&sortBy=pnl&sortOrder=DESC&limit=20"
```

```ts
const baseUrl = process.env.IMPLYRA_API_URL;
if (!baseUrl) throw new Error("Set IMPLYRA_API_URL");
const url = new URL("leaderboard/global", baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`);
url.search = new URLSearchParams({
  advanced: "true", sortBy: "pnl", sortOrder: "DESC", limit: "20"
}).toString();

const response = await fetch(url, { signal: AbortSignal.timeout(15_000) });
if (!response.ok) throw new Error(`Implyra HTTP ${response.status}`);
const { rows, updatedAt, nextCursor } = await response.json();
console.log(rows, updatedAt, nextCursor);
```

## 3. Read performance in context

| Name | Type | Description |
| --- | --- | --- |
| `rows[].address` | string | Use this wallet address for profile, position and trade requests. |
| `rows[].overallPnl` | USD | Realized plus unrealized profit and loss. It is not a return percentage. |
| `rows[].winRate` | 0–1 | Win rate from closed positions. For example, 0.63 is 63%. |
| `rows[].advanced` | object · optional | Risk-adjusted metrics and activity context. Individual metrics may be null. |
| `updatedAt / nextCursor` | string / string \| null | Show the snapshot timestamp. Use a returned cursor to request the next page. |

> **Keep missing values missing.** A null risk metric is unavailable, not zero. Present P&L, sample size and the reporting window together.

## 4. Open a trader’s positions

`GET /users/:address/positions`

Replace WALLET_ADDRESS with an address from the ranking. Position results use limit and offset pagination.

- [Trader analytics](https://implyra.com/docs/trader-analytics): Filters, risk metrics and typed response examples.
- [Profiles & positions](https://implyra.com/docs/wallets): Portfolio, trade and history endpoints.

```sh
: "${WALLET_ADDRESS:?Set an address returned by the ranking}"

curl --fail-with-body \
  "${IMPLYRA_API_URL%/}/users/$WALLET_ADDRESS/positions?limit=20&offset=0"
```
