PokerDataGet an API key
Menu

Action paths & hands

The spot grammar and hand notations every preflop endpoint shares.

Every preflop range is keyed by an action path: an underscore-joined chain of POSITION_ACTION pairs describing the preflop line, in acting order.

UTG_60%_HJ_Call
│   │   │  └─ …and HJ calls.        (path ends in an ACTION → names a range)
│   │   └─ then HJ…
│   └─ UTG raises to 60% (a size token)
└─ UTG acts first…

UTG_60%_HJ
          └─ path ends in a POSITION → names a decision node (HJ to act)

The two forms map onto the two lookup endpoints:

  • A path ending in an action names a single range — pass it as spot to /range.
  • A path ending in a position names a whole decision — pass it as history to /node.

Action tokens

GameTokens
NLHEFold, Call, AI (all-in), and raise sizes as percentages, e.g. 60%, 100%
PLOFold, Call, AI, and raises labelled by betting depth: Open, 3B, 4B, 5B, …

Two encoding rules matter in query strings:

  • Encode % in NLHE size tokens as %25UTG_60%_HJ_Call becomes spot=UTG_60%25_HJ_Call.
  • When a PLO node offers more than one raise size, the label carries a raw size id suffix, e.g. Open-40100. Never guess these — read the exact tokens from /node or /spots.

Fold-arounds are spelled out seat by seat: BTN's raise-first-in at 6-max is UTG_Fold_HJ_Fold_CO_Fold_BTN_60%, not BTN_60%.

Betting depth

/spots tags every decision node with a depth for filtering:

DepthMeaning
1RFI — unraised pot
2Facing a single raise
33-bet pot
44-bet pot or deeper (capped at 4)

Depth counts raises made, not seats acted: a fold-around to a BTN open is still depth 1.

Hand notations

NLHE uses the 169-class grid: pairs (AA), suited (AKs), offsuit (AKo). Weights are per class in [0, 1]; the combos field is the weighted concrete-combo count (a pair is 6 combos, suited 4, offsuit 12).

PLO uses MonkerSolver's suit-grouping notation over the 16,432 four-card starting-hand classes:

ExampleMeaning
AAKKRainbow-agnostic AAKK — no suit constraints stated
(2A)AATrip aces with exactly two suited to the ace
(KA)(KA)Double-suited AK+AK

Encode the parentheses in query strings: (%28, )%29. So hand=(KA)(KA) is sent as hand=%28KA%29%28KA%29.