GTOkiller
  • Home
  • Solver
  • MDA
  • Pricing
  • Invite a Friend
  • Blog
On this site
GTOKiller API
v1
Getting started
  • Quickstart
  • Authentication
Core concepts
  • Inputs
  • node id
  • Outputs
  • Discovery mode
  • Stateless mode
Reference
  • GET /v1/strategy
  • GET /v1/health
  • Errors
Need a key?

Request a trial key on Discord.

GTOKiller API
v1
Getting started
  • Quickstart
  • Authentication
Core concepts
  • Inputs
  • node id
  • Outputs
  • Discovery mode
  • Stateless mode
Reference
  • GET /v1/strategy
  • GET /v1/health
  • Errors
Need a key?

Request a trial key on Discord.

  1. Docs
  2. Inputs

Inputs

All query parameters and headers the client sends to /v1/strategy.

Maximum call (every field)
GET /v1/strategy
  ?platform=gg
  &stakes=10_50
  &playerType=regs
  &situation=srp
  &position=btn_bb
  &flop=2c2d2h
  &turn=9c
  &river=2s
  &hand=AsKh
  &node=root
  &verbosity=full

X-API-Key: sk_live_…
X-Request-ID: req_my_trace_id

Pool selectors

The values below are the LIVE coverage of the current pools — verified against the strategy trees we serve today. Your key's stake allowlist decides which stakes you can actually query; new pools and stakes are enabled per account as they are onboarded.

Coverage
ParameterValid values
platform
gg
stakes
10_50
playerType
regs
situation
srp3bet
position
when situation=srp
btn_bbsb_bbco_bbearly_bbbtn_sbco_sbearly_sbco_btnearly_btnearly_co
when situation=3bet
bb_sbbb_btnbb_cobb_earlysb_btnsb_cosb_earlybtn_cobtn_earlyco_early
handRanges are pool-specific: a hand outside the acting player's range at a node answers 422 combo_not_in_range. Request the range charts from support, or probe with discovery mode.
position is aggressor_caller, not ip_oop
The first seat is the preflop aggressor, the second the caller: in sb_bb the SB opens and is OOP postflop. Never derive who acts from the position string — gate on the to_act field of the response instead.

Other parameters

Hand context and betting-tree fields.

ParameterTypeDescription
flop
string3 cards as 6 chars, e.g. 2c2d2h. Any suit order; ranks and suits are case-insensitive (same for turn, river and hand).
turn
stringOptional turn card (2 chars). Empty string treated as absent.
river
stringOptional river card (2 chars). Requires turn: river without turn answers 422 validation_error. Empty string treated as absent.
node
stringRequired on every request. Max 200 chars.
verbosity
"brief" | "full"brief (default) or full. Brief carries the reduced context (round_start_pot_bb, to_act); full expands it (street, hand, board, stacks_bb, spr, positions) and adds raise_ratio on raises. pot_pct and node_token are in both. Ignored when discovery=true.
discovery
"true" | "false""true" switches the endpoint to discovery mode: structure only, hand ignored, free of charge. See Discovery mode.
Strict validation
The query schema rejects any parameter it does not know: an extra tracking param or a typo answers 422 validation_error with code unrecognized_keys, never a silent ignore.

Request headers

HeaderValueDescription
X-API-KeyRequired
sk_live_…Strict format: ^sk_live_[A-Za-z0-9]{32}$.
X-Request-ID
8–128 charsOptional ID for tracing. Echoed in response headers and logs.
Previous
Authentication
Next
node id