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. Spots use the preflop action tree. 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.
/api/v1/ranges/nl/v2free · no keyCovered stacks and positions plus manifest metadata. Free, no key.
curl "https://pokerdata.io/api/v1/ranges/nl/v2"{
"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"
]
}/api/v1/ranges/nl/v2/rangeThe range for one spot. Path must end in an action. Only nonzero weights are returned. Security is optional. Without a key, 200 calls a day per IP. A Bearer key uses that key's plan meter instead.
stackintegerrequired- Stack depth in bb.
spotstringrequired- Action path ending in an action.
handstringoptional- 169-grid class.
curl "https://pokerdata.io/api/v1/ranges/nl/v2/range" \
-H "Authorization: Bearer pdk_YOUR_KEY"{
"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
}
}/api/v1/ranges/nl/v2/nodeEvery available action at a node, with ranges. Path must end in a position. Security is optional. Without a key, 200 calls a day per IP.
stackintegerrequired- Stack depth in bb.
historystringrequired- Action path ending in the position about to act.
handstringoptional- 169-grid class.
curl "https://pokerdata.io/api/v1/ranges/nl/v2/node" \
-H "Authorization: Bearer pdk_YOUR_KEY"/api/v1/ranges/nl/v2/spotsEvery valid decision node for a stack, tagged by depth (1 = RFI, 2 = vs open, …).
stackintegerrequired- Stack depth in bb.
curl "https://pokerdata.io/api/v1/ranges/nl/v2/spots" \
-H "Authorization: Bearer pdk_YOUR_KEY"