/api/v1/ranges/nl/v2freeDiscovery — covered stack depths and positions plus manifest metadata. Free, no key. Call this first.
The GTO preflop ranges behind our sims, as a clean HTTP API — no-limit hold’em and pot-limit Omaha (6- & 9-max), every stack depth, every position, every action line. JSON, CORS-open, read-only. $100/month.
Loading…
Send your key as a Bearer header. Discovery endpoints are free; the example links on this page also run keyless in your browser, so you can explore everything before subscribing.
curl "https://pokerdata.io/api/v1/ranges/nl/v2/range?stack=100&spot=UTG_60%25_HJ_Call" \ -H "Authorization: Bearer pdk_YOUR_KEY"
Unauthenticated calls get a JSON 401 pointing back here. Responses are privately cacheable; the underlying solves are effectively immutable.
Ranges are keyed by an action path: a chain of POSITION_ACTION pairs describing the preflop line. A path ending in an action (Fold / Call / AI / a raise size like 60%) names a single range; a path ending in a position names a whole decision. Encode % in raise sizes as %25. Weights are on the 169-grid (AA, AKs, AKo…), each in [0, 1]; v2 responses carry per-hand EV in small blinds.
/api/v1/ranges/nl/v2freeDiscovery — covered stack depths and positions plus manifest metadata. Free, no key. Call this first.
/api/v1/ranges/nl/v2/rangeThe range for one spot. `spot` is an action path ending in the action whose range you want. Add `hand` for that class's frequency and EV.
stackrequired— Stack depth in bb, e.g. 100spotrequired— Action path ending in an action, e.g. UTG_60%_HJ_Call (encode % as %25)handoptional— 169-grid class, e.g. AKs/api/v1/ranges/nl/v2/nodeThe whole decision at a node — every available action with its range. `history` ends in the position about to act. Add `hand` for its mixed strategy.
stackrequired— Stack depth in bbhistoryrequired— Action path ending in a position, e.g. UTG_60%_HJhandoptional— 169-grid class — returns action → freq/api/v1/ranges/nl/v2/spotsEvery valid decision node for a stack depth, tagged by depth (1 = RFI, 2 = vs open, 3 = 3-bet pots, …). Build a spot picker without 404 probing.
stackrequired— Stack depth in bbcombos is the weighted concrete-combo count (pair 6, suited 4, offsuit 12)./api/v1/ranges/nl, /nl/range, /nl/node, /nl/spots) serve the same trees without EV data.400 malformed path, 404 spot not in the dataset.Same action-path grammar, but raises are labelled by betting depth: Open, 3B, 4B, … Hands use MonkerSolver's suit-grouping notation over the 16,432 PLO starting hands: AAKK, (2A)AA, (KA)(KA) — encode ( ) as %28 %29.
/api/v1/ranges/plofreeDiscovery — stacks and positions for 6-max PLO. Free, no key.
/api/v1/ranges/plo/rangeThe range for one spot. Add `hand` for its frequency, `minFreq` to trim low-weight hands (PLO ranges are large).
stackrequired— Stack depth in bbspotrequired— Action path ending in an action, e.g. UTG_Open_HJ_3Bhandoptional— MonkerSolver hand stringminFreqoptional— Drop hands at or below this weight (default 0)/api/v1/ranges/plo/nodeThe whole decision at a node. Add `hand` for its mixed strategy, `minFreq` to trim.
stackrequired— Stack depth in bbhistoryrequired— Action path ending in a positionhandoptional— MonkerSolver hand stringminFreqoptional— Trim per-action ranges/api/v1/ranges/plo/spotsEvery valid decision node for a stack depth, tagged by depth.
stackrequired— Stack depth in bb/api/v1/ranges/plo for the live list.Open-40100) — always read exact action tokens from /node or /spots.The full-ring sibling — identical grammar and hand notation, nine seats: UTG, UTG1, UTG2, LJ, HJ, CO, BTN, SB, BB.
/api/v1/ranges/plo9freeDiscovery — stacks (60, 100bb) and positions. Free, no key.
/api/v1/ranges/plo9/rangeThe range for one spot.
stackrequired— 60 or 100spotrequired— Action path ending in an actionhandoptional— MonkerSolver hand stringminFreqoptional— Trim low-weight hands/api/v1/ranges/plo9/nodeThe whole decision at a node.
stackrequired— 60 or 100historyrequired— Action path ending in a positionhandoptional— MonkerSolver hand stringminFreqoptional— Trim per-action ranges/api/v1/ranges/plo9/spotsEvery valid decision node for a stack depth.
stackrequired— 60 or 100UTG_Fold_UTG1_Fold_…_BTN_Open) — pass minFreq to keep responses small.Want the raw solver exports instead? The sims library sells full game bundles for offline study.