PokerDataGet an API key
Menu

No-limit hold'em (6-max)

The NLHE preflop ranges — v2 endpoints with per-hand EV, plus the legacy v1 tree.

Six-handed no-limit hold'em ranges at stack depths 20, 30, 40, 50, 70, 100, 150, and 200bb, positions UTG, HJ, CO, BTN, SB, BB. Weights are on the 169-grid (AA, AKs, AKo, …), each in [0, 1].

The v2 endpoints additionally return evs — per-hand expected value in small blinds. EV is emitted for every hand the bundle scores, including hands the action is never taken with; that zero-weight EV is what makes "folding AKs here costs 3.2sb" computable.

Operations are published through the GitBook OpenAPI plugin from openapi.yaml.

GET/api/v1/ranges/nl/v2free · no key

Covered stacks and positions plus manifest metadata. Free, no key.

Requestbash
curl "https://pokerdata.io/api/v1/ranges/nl/v2"
Responsejson
{
  "game": "nl",
  "version": 2,
  "generatedAt": "2026-06-08T12:00:00.000Z",
  "bundleCount": 48,
  "stacks": [
    20,
    30,
    40,
    50,
    70,
    100,
    150,
    200
  ],
  "positions": [
    "BB",
    "BTN",
    "CO",
    "HJ",
    "SB",
    "UTG"
  ]
}
GET/api/v1/ranges/nl/v2/range

The range for one spot. Path must end in an action. Only nonzero weights are returned.

Query parameters
stackintegerrequired
Stack depth in bb.
spotstringrequired
Action path ending in an action.
handstringoptional
169-grid class.
Requestbash
curl "https://pokerdata.io/api/v1/ranges/nl/v2/range" \
  -H "Authorization: Bearer pdk_YOUR_KEY"
Responsejson
{
  "game": "nl",
  "version": 2,
  "stack": 100,
  "spot": "UTG_60%_HJ_Call",
  "actor": "HJ",
  "hand": "AKs",
  "freq": 0.35,
  "ev": 1.84,
  "combos": 61.9,
  "weights": {
    "AKs": 0.35,
    "QQ": 0.62,
    "JJ": 1
  },
  "evs": {
    "AKs": 1.84,
    "QQ": 2.31
  }
}
GET/api/v1/ranges/nl/v2/node

Every available action at a node, with ranges. Path must end in a position.

Query parameters
stackintegerrequired
Stack depth in bb.
historystringrequired
Action path ending in the position about to act.
handstringoptional
169-grid class.
Requestbash
curl "https://pokerdata.io/api/v1/ranges/nl/v2/node" \
  -H "Authorization: Bearer pdk_YOUR_KEY"
GET/api/v1/ranges/nl/v2/spots

Every valid decision node for a stack, tagged by depth (1 = RFI, 2 = vs open, …).

Query parameters
stackintegerrequired
Stack depth in bb.
Requestbash
curl "https://pokerdata.io/api/v1/ranges/nl/v2/spots" \
  -H "Authorization: Bearer pdk_YOUR_KEY"