PokerDataGet an API key
Menu

No-limit hold'em tournament (8-max)

The nlmtt8 chip-EV preflop ranges — eight seats, a big-blind ante, ante-inclusive stacks, listed open sizes, and the keyless config endpoint.

Eight-handed no-limit hold'em tournament ranges, chip EV, at stack depths 10, 15, 20, 30, 40, 50, 75, 100, 200, and 300bb. Spots use the preflop action tree with raises by betting depth (Open, 3B, 4B, 5B); the chip raise-to is sizeBb on the action, not the token. Units, the shared endpoints and the raise-size codes are in the ranges contract.

ICM, PKO, satellites and other ante structures are not published. nlmtt8 is the only tournament dataset, and it is chip EV.

Stacks, seats, and the ante

nlmtt8 is 8-max. Seats, in acting order: UTG, UTG1, LJ, HJ, CO, BTN, SB, BB.

Blinds are sb 0.5 and bb 1. The ante is 1bb, posted by the BB. stackIncludesAnte is true: the named depth is the starting stack, and the 1bb BB ante is posted from that stack. 10bb is all-in/fold versus 50bb stacks, so per-seat stacks at 10bb are null.

Config endpoint

GET /api/v1/ranges/nlmtt8/config?stack= — seats, stacks, blinds, ante, openSizes, importedAt. Keyless. Unknowns are null and listed in unverified.

openSizes is the pack listing (the labeled multiple). At 40bb, openSizes.open is { "label": "2.2x", "sizeBb": 2.2 } and openSizes.sb is { "label": "2.8x", "sizeBb": 2.8 }. The node decodes that 2.2x open to 2.19bb.

Open sizes (pack listing)

Stack (bb)OpenSB open
10all-inall-in
152x2.5x
202x2.5x
302x2.8x
402.2x2.8x
502.2x2.8x
752.5x2.8x
1002.25x3x
2002.5x3x
3002.5x3x

Exact open raise-to

Each raise on GET /api/v1/ranges/nlmtt8/node carries sizeBb and sizePctPot. Checked sizes:

  • 40bb (blinds 0.5/1, 1bb BB ante), open 40034 → sizeBb 2.19, sizePctPot 34 (the pack lists this as 2.2x)
  • same stack, SB 40060 → sizeBb 2.8, sizePctPot 60 (listed as 2.8x)

Example

GET /api/v1/ranges/nlmtt8/config?stack=40

ante is 1, antePostedBy is BB, stackIncludesAnte is true, evUnit is sb, evBaseline is fold.

GET /api/v1/ranges/nlmtt8/node?stack=40&history=UTG_Fold_UTG1_Fold_LJ_Fold_HJ_Fold_CO_Fold_BTN

Actor BTN. Fold EVs are 0. Open is code 40034, sizeBb 2.19, sizePctPot 34. Open AA is frequency 1 at 23.27sb.

Operations

GET/api/v1/ranges/nlmtt8free · no key

Covered stacks (10–300bb) and the 8-max ring. Free, no key. Seats are UTG, UTG1, LJ, HJ, CO, BTN, SB, BB. The named stack includes the 1bb BB ante (stackIncludesAnte). Blinds are sb 0.5 and bb 1.

Requestbash
curl "https://pokerdata.io/api/v1/ranges/nlmtt8"
Responsejson
{
  "game": "nlmtt8",
  "stacks": [
    10,
    15,
    20,
    30,
    40,
    50,
    75,
    100,
    200,
    300
  ],
  "positions": [
    "BB",
    "BTN",
    "CO",
    "HJ",
    "LJ",
    "SB",
    "UTG",
    "UTG1"
  ]
}
GET/api/v1/ranges/nlmtt8/config

Keyless seats, stacks, blinds, ante, and first-in open sizes for one depth. openSizes is the pack listing. At 40bb the open label is 2.2x (listing sizeBb 2.2); the node decodes code 40034 to sizeBb 2.19. SB is 2.8x (code 40060, sizeBb 2.8). stackIncludesAnte is true. 10bb is all-in/fold versus 50bb stacks, so stacks is null there. evUnit is sb and evBaseline is fold. Convergence is not published. Unknowns are null and listed in unverified. Security is optional. Without a key, 200 calls a day per IP. A Bearer key uses that key's plan meter instead.

Query parameters
stackintegerrequired
Stack depth in bb.
Requestbash
curl "https://pokerdata.io/api/v1/ranges/nlmtt8/config" \
  -H "Authorization: Bearer pdk_YOUR_KEY"
Responsejson
{
  "schemaVersion": 1,
  "units": {
    "stack": "bb",
    "stacks": "bb",
    "blinds": "bb",
    "ante": "bb",
    "openSizes": "bb",
    "evs": "sb"
  },
  "game": "nlmtt8",
  "stack": 40,
  "seats": [
    "UTG",
    "UTG1",
    "LJ",
    "HJ",
    "CO",
    "BTN",
    "SB",
    "BB"
  ],
  "stacks": [
    40,
    40,
    40,
    40,
    40,
    40,
    40,
    40
  ],
  "blinds": {
    "sb": 0.5,
    "bb": 1
  },
  "ante": 1,
  "antePostedBy": "BB",
  "stackIncludesAnte": true,
  "openSizes": {
    "open": {
      "label": "2.2x",
      "sizeBb": 2.2
    },
    "sb": {
      "label": "2.8x",
      "sizeBb": 2.8
    }
  },
  "evUnit": "sb",
  "evBaseline": "fold"
}
GET/api/v1/ranges/nlmtt8/node

Every action at a decision. history ends in the seat to act. Each raise includes sizeBb (big blinds) and sizePctPot when the bundle stored them. At 40bb, BTN Open is code 40034, sizeBb 2.19 (pack label 2.2x). SB Open is code 40060, sizeBb 2.8. Fold EVs are 0 when evBaseline is fold. full=1 writes all 169 hands with explicit 0 and does not add evs the bundle did not score. An omitted weight is 0.

Query parameters
stackintegerrequired
Stack depth in bb.
historystringrequired
Action path ending in the position about to act.
handstringoptional
169-grid class.
minFreqnumberoptional
Drop hands at or below this weight.
fulloptional
Hold'em dense mode. Return all 169 hands with explicit 0 weights. Does not invent EVs.
Requestbash
curl "https://pokerdata.io/api/v1/ranges/nlmtt8/node" \
  -H "Authorization: Bearer pdk_YOUR_KEY"
Responsejson
{
  "schemaVersion": 1,
  "units": {
    "stack": "bb",
    "sizeBb": "bb",
    "sizePctPot": "percent_of_pot_after_call",
    "evs": "sb"
  },
  "game": "nlmtt8",
  "stack": 40,
  "history": "UTG_Fold_UTG1_Fold_LJ_Fold_HJ_Fold_CO_Fold_BTN",
  "actor": "BTN",
  "evUnit": "sb",
  "evBaseline": "fold",
  "actions": [
    {
      "action": "Fold",
      "kind": "fold",
      "weights": {
        "72o": 1
      },
      "evs": {
        "72o": 0
      }
    },
    {
      "action": "Open",
      "kind": "raise",
      "sizeBb": 2.19,
      "sizePctPot": 34,
      "weights": {
        "AA": 1
      },
      "evs": {
        "AA": 23.27
      }
    }
  ]
}
GET/api/v1/ranges/nlmtt8/range

One action's range. spot ends in an action such as UTG_Open. Omitted weight means 0. evs are small blinds relative to fold when the bundle scored the hand.

Query parameters
stackintegerrequired
Stack depth in bb.
spotstringrequired
Action path ending in an action.
handstringoptional
169-grid class.
minFreqnumberoptional
Drop hands at or below this weight.
Requestbash
curl "https://pokerdata.io/api/v1/ranges/nlmtt8/range" \
  -H "Authorization: Bearer pdk_YOUR_KEY"
Responsejson
{
  "schemaVersion": 1,
  "game": "nlmtt8",
  "stack": 40,
  "spot": "UTG_Open",
  "sizeBb": 2.19,
  "sizePctPot": 34,
  "evUnit": "sb",
  "evBaseline": "fold",
  "hand": "AA",
  "freq": 1,
  "ev": 23.27
}
GET/api/v1/ranges/nlmtt8/spots

Every valid decision node for a stack, tagged by depth.

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