Portal
Sign In Console

Strategy Grid V1

πŸ›‘ Legacy API β€” new integrations should use Strategy Grid V2.

V2 routes through the universal-poker pipeline (set "protocol_ver": "v2" in the request) and uses a richer setup object with raise-TO action notation. V1 remains supported for existing integrations.

Endpoint:

<gto-glue-environment-URL>/strategy_grid

Requests:

Fields:

  • stack_sizes: Player stacks in BB. The number of stacks represent the number of players.

    • Restrictions:
      • Only supports up to 8 players for specific models and 9 for global/generic models (it won’t break with more players).
      • Does not support zero stack players, please ignore them on the request (it will break the request).
      • Depth limit of the model is 2000bb’s (it won’t break with higher values).
      • The order matters. The list starts with the stack of the player in the Small Blind position:
        • SB β†’ BB β†’ STR (if applicable) β†’ UTG β†’ …
  • request_id:

    • Field for client control. Currently also used for log control. Can be any string.
    • It is an optional field, but is strongly suggested to be used.
  • action_line:

    • Compressed action-history string. Tokens separated by -.
    • Action tokens (case-insensitive):
      • F β€” fold
      • C / X β€” call / check
      • A β€” all-in shorthand (raise-to-stack, or call if already matched)
      • R<bb> / B<bb> β€” raise / bet, with size in big blinds (e.g. R6.8, B10.5)
    • Community-card tokens are inline: 3 cards for the flop (e.g. 6h8d4c), then 1 card per street for turn and river (e.g. 2d, 8s).
    • Example:
      • F-F-R6.8-C-F-F-F-F-6h8d4c-B10.5-C-2d-B21-C-8s-X
  • game_format:

    • Essential for auto-model selection; it is ignored for most models when manual model selection is used.
    • Currently available:
      • Cash: "2b-0.0", "2b-0.5", "2b-1.0", "2b-2.0", "2b-2.5", "3b-0.0", "3b-0.5", "3b-1.0", "3b-2.0", "3b-2.5", "splash"
      • Tournament / special: "mtt", "bombpot", "shortdeck", "spin", "aof"

Example:

{
    "request_id": "request_example_01",
    "game_format": "3b-0.5",
    "action_line": "F-F-F-F-F-R7.5-F-C-7hQsKd-C",
    "stack_sizes": "200,200,200,200,200,200,200,200"
}

Response

  • model: Model used to generate the response.

  • strategy: Model response β€” array of combo-level entries.

    • combo: First level: pair, suited or offsuit (e.g. KK, KTo, KTs).
    • detail: First-level detail: list of all specific hands in this combo (e.g. KsTs for KTs, KsTh for KTo).
      • combo: Second level: the specific hand (e.g. AsAh).
      • detail: Second-level detail: list of actions; each is ["action name", "strategy probability", "ev"].
      • reach: Probability that this specific hand would reach the current decision point given the action history (product of action probabilities along the path; from replay or solver).
    • detail_agg: Aggregated result for the combo: list of ["action name", "strategy probability", "ev"].
    • ev: Expected value for the combo at this node.
    • reach: Average reach probability over all specific hands in this combo β€” (sum of each hand’s reach) / (number of hands in combo). Indicates how much of this combo is still in range at the current node.
    • strategy: Probability of every action for this combo. Always 11 entries (indices 0–10):
      • 0 β€” fold
      • 1 β€” call (or check)
      • 2 β€” all-in
      • 3–10 β€” bet / raise sizes. The chip amounts at these indices are produced dynamically by the model and are read alongside the probability in each detail_agg / detail row (action label, probability, EV). Most cash models follow the typical bucketing below, but the exact sizes vary per model β€” always rely on the action label in detail_agg rather than assuming a fixed mapping.
        • Typical mapping for cash models: 3 β‰ˆ 33% pot, 4 β‰ˆ 50% pot, 5 β‰ˆ 75% pot, 6 β‰ˆ 100% pot, 7 β‰ˆ 150% pot, 8 β‰ˆ 250% pot, 9 β‰ˆ 10% pot, 10 β‰ˆ 25% pot.
  • strategy_compute_time: Compute time in ms (if present).

  • success: Boolean.


Example:

{

    "model": "moe_ev_2b1_bsz1.onnx",
    "strategy": [
        {
            "combo": "AA",
            "detail": [
                {
                    "combo": "AsAh",
                    "detail": [
                        [
                            "call",
                            "100.0%",
                            "24.89"
                        ]
                    ],
                    "reach": 1.0
                },
                (...)
            ],
            "detail_agg": [
                [
                    "fold",
                    "0.0%",
                    "0.00"
                ],
                [
                    "call",
                    "100.0%",
                    "24.89"
                ],
                (...)
            ],
            "ev": 24.88633728027344,
            "reach": 1.0,
            "strategy": [
                0.000013484615010384005,
                0.9999337196350098,
                1.532069826906679e-14,
                8.220706892991814e-10,
                1.6047474460378908e-10,
                0.0,
                0.000012085341040801724,
                0.000040630678995512426,
                1.5992345936410857e-7,
                0.0,
                0.0
            ]
        },
        (...)
    ],
    "strategy_compute_time": 703,
    "success": true
}