← Sims library

Ranges API

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.

Your API access

Loading…

Authentication

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.

No-limit hold'em (6-max)

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.

GET/api/v1/ranges/nl/v2free

Discovery — covered stack depths and positions plus manifest metadata. Free, no key. Call this first.

GET/api/v1/ranges/nl/v2/range

The 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.

  • stackrequiredStack depth in bb, e.g. 100
  • spotrequiredAction path ending in an action, e.g. UTG_60%_HJ_Call (encode % as %25)
  • handoptional169-grid class, e.g. AKs
GET/api/v1/ranges/nl/v2/node

The 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.

  • stackrequiredStack depth in bb
  • historyrequiredAction path ending in a position, e.g. UTG_60%_HJ
  • handoptional169-grid class — returns action → freq
GET/api/v1/ranges/nl/v2/spots

Every 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.

  • stackrequiredStack depth in bb

Pot-limit Omaha (6-max)

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.

GET/api/v1/ranges/plofree

Discovery — stacks and positions for 6-max PLO. Free, no key.

GET/api/v1/ranges/plo/range

The range for one spot. Add `hand` for its frequency, `minFreq` to trim low-weight hands (PLO ranges are large).

  • stackrequiredStack depth in bb
  • spotrequiredAction path ending in an action, e.g. UTG_Open_HJ_3B
  • handoptionalMonkerSolver hand string
  • minFreqoptionalDrop hands at or below this weight (default 0)

Pot-limit Omaha (9-max)

The full-ring sibling — identical grammar and hand notation, nine seats: UTG, UTG1, UTG2, LJ, HJ, CO, BTN, SB, BB.

GET/api/v1/ranges/plo9free

Discovery — stacks (60, 100bb) and positions. Free, no key.

Want the raw solver exports instead? The sims library sells full game bundles for offline study.