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

Quickstart

Step 1 — Get an API key

Need an API key?

Invite-only
Request via Discord

Step 2 — The base URL

https://api.gtokiller.com

Step 3 — The endpoint

For everything that matters, you'll call this one endpoint:

GET/v1/strategyX-API-Key

Auth: X-API-Key header. No OAuth, no signed URLs.

Step 4 — Your first call

The spot: single-raised pot, BTN vs BB, flop 2c2d2h. BB checks, and you are the BTN holding AsKh. Replace $GTOKILLER_KEY with your key and send the request.

Hello, GTOKiller
# Replace $GTOKILLER_KEY with your real key first
export GTOKILLER_KEY='sk_live_…'

curl 'https://api.gtokiller.com/v1/strategy?platform=gg&stakes=10_50&playerType=regs&situation=srp&position=btn_bb&flop=2c2d2h&node=root-x&hand=AsKh' \
  -H "X-API-Key: $GTOKILLER_KEY"

Step 5 — The response

Brief mode (default) returns the action mix for the combo at the requested node. This is the live response for the request above:

Brief response
{
  "data": {
    "context": {
      "round_start_pot_bb": 5.5,
      "to_act": "ip"
    },
    "actions": [
      { "type": "check", "node_token": "x",     "frequency": 0 },
      { "type": "bet",   "node_token": "b1.82", "frequency": 0.01, "amount": 1.82, "pot_pct": 0.33 },
      { "type": "bet",   "node_token": "b2.75", "frequency": 0.99, "amount": 2.75, "pot_pct": 0.5 }
    ]
  },
  "node_id": "root-x",
  "source": "custom"
}

Reading the JSON

  • data.actions — the mix the solver wants for THIS combo at THIS node.
  • frequency — fraction in [0, 1]. Frequencies always sum to exactly 1.
  • node_token — the action's key in the tree (x, c, b1.82). Append it to node_id to reach the next node.
  • amount — bet/call/raise size in BB. For raise, this is the absolute raise-to (not incremental).
  • data.context — round_start_pot_bb and to_act, the two things to check before acting.
  • node_id — replayable as node on a follow-up request to keep walking the tree.
  • source — which strategy tree served the reply: custom (your account's folder) or v1 (shared tree).

Step 6 — Get the full picture

verbosity=full expands data.context: street, hand, board, round_start_pot_bb, stacks_bb, spr, positions, to_act. Same quota cost.

Verbosity=full
curl '…&verbosity=full' -H "X-API-Key: $GTOKILLER_KEY"
Full response
{
  "data": {
    "context": {
      "street": "flop",
      "hand": "AsKh",
      "board": ["2c", "2d", "2h"],
      "round_start_pot_bb": 5.5,
      "stacks_bb": { "ip": 97.5, "oop": 97.5 },
      "spr": 17.73,
      "positions": { "ip": "btn", "oop": "bb" },
      "to_act": "ip"
    },
    "actions": [
      { "type": "check", "node_token": "x",     "frequency": 0 },
      { "type": "bet",   "node_token": "b1.82", "frequency": 0.01, "amount": 1.82, "pot_pct": 0.33 },
      { "type": "bet",   "node_token": "b2.75", "frequency": 0.99, "amount": 2.75, "pot_pct": 0.5 }
    ]
  },
  "node_id": "root-x",
  "source": "custom"
}

What's next

To keep walking the tree:

  • Every request sends the full node string. Example:
    • node=root-x-b2.75
Next
Authentication