---
title: "Rankings: top gaps, recent form, sample strength (tiered)"
method: GET
path: "/api/v1/leaders"
tags: ["Props"]
---

# Rankings: top gaps, recent form, sample strength (tiered)

`GET /api/v1/leaders`

## Request

- Base URL: `https://api.flashodds.live`
- URL: `https://api.flashodds.live/api/v1/leaders`
- Auth: HTTP bearer

Ranked boards for a sport with a Flash pack: metric=gap (widest Flash-vs-book edges on the live board), form (recent mean vs the Flash Line), or sample (biggest baselines). TIERED, never locked: free sees the top 3 teaser, Builder the top 10, Pro the full board (with totalAvailable + paywall metadata on a capped view). Works for any sport with a registered provider (see /sports contextCapability); the raw ingredients are in the free /props + /context surfaces, this is the convenience ranking on top. No picks.

## Query parameters

- `metric` 'gap' | 'form' | 'sample': gap = widest Flash-vs-book edges (live board); form = recent mean vs Flash Line; sample = biggest baselines.
- `sport` string: Sport with a registered Flash provider (see /sports contextCapability).
- `stat` string: Restrict the gap board to one market.
- `limit` integer

## Response `200`

Ranked leaders

- LeadersResponse
  - `sport` string, required
  - `metric` 'gap' | 'form' | 'sample', required
  - `stat` string, nullable, required
  - `count` integer, required
  - `leaders` LeaderRow[], required
    - `player` string, required
    - `team` string, nullable, required
    - `stat` string, nullable, required
    - `market` string, required
    - `marketKey` string, nullable, required
    - `value` number, required: The ranking value for the chosen metric (higher ranks first).
    - `bookLine` number
    - `flashLine` number
    - `gap` number
    - `gapPct` number, nullable
    - `recentMean` number
    - `delta` number: recentMean - flashLine (form metric).
    - `sampleN` integer
    - `sampleStrength` 'thin' | 'solid' | 'deep'
    - `event` string
  - `note` string, nullable, required
  - `totalAvailable` integer: Total ranked rows available before your tier row cap.
  - `gated` boolean, required: True when data was withheld for your tier.
  - `preview` boolean, required: True when this is a reduced/preview view.
  - `requiredTier` 'starter' | 'pro' | 'enterprise' | 'null', nullable, required: Lowest tier that unlocks the first locked field. Null when nothing is gated.
  - `lockedFields` string[], required: Dot-paths of the fields withheld for your tier.
  - `upgradeMessage` string, nullable, required: Human upgrade prompt, or null when nothing is gated.

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key
- `403`: Not permitted on your tier
- `429`: Rate limit or daily quota exceeded

---

[API](https://skmtc.dev/flashodds/apis/flash-props-api.md) · [All operations](https://skmtc.dev/flashodds/apis/flash-props-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flashodds/apis/flash-props-api/revisions/044161ffbfd8?raw)
