The full record for one of the 1,326 specific Texas Hold'em starting hands: equity against
The full record for one of the 1,326 specific Texas Hold'em starting hands: equity against modelled ranges, position-by-position opening guidance, exact head-to-head figures, and the exact card-removal effect of holding these specific two cards.
10000 (raw units)
price
2
calls / 30d
2
unique payers
2026-08-30
updated
Provider
poketpoker.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x59F45516ea4a2481ff45Cf431D753d24B0Ca6213",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 60
}
]Output schema
{
"bazaar": {
"info": {
"description": "The full record for one of the 1,326 specific Texas Hold'em starting hands: equity against modelled ranges, position-by-position opening guidance, exact head-to-head figures, and the exact card-removal effect of holding these specific two cards.",
"input": {
"method": "GET",
"queryParams": {
"id": "AhKh"
},
"type": "http"
},
"method": "GET",
"output": {
"example": {
"blockedFlushSuits": [
"hearts"
],
"blockers": [
{
"class": "AA",
"remaining": 3,
"total": 6
},
{
"class": "KK",
"remaining": 3,
"total": 6
},
{
"class": "QQ",
"remaining": 6,
"total": 6
},
{
"class": "JJ",
"remaining": 6,
"total": 6
},
{
"class": "TT",
"remaining": 6,
"total": 6
},
{
"class": "AKs",
"remaining": 3,
"total": 4
},
{
"class": "AKo",
"remaining": 6,
"total": 12
},
{
"class": "AQs",
"remaining": 3,
"total": 4
}
],
"canonical": "https://poketpoker.com/hands/AhKh.md",
"class": "AKs",
"classOf": 169,
"classRank": 8,
"engine": {
"name": "poker-engine",
"version": "1.9.0"
},
"headToHead": [
{
"boards": 1712304,
"combos": 3,
"equity": 12.14,
"split": 1.26,
"vs": "AA",
"win": 11.51
},
{
"boards": 1712304,
"combos": 3,
"equity": 34.11,
"split": 0.82,
"vs": "KK",
"win": 33.69
},
{
"boards": 1712304,
"combos": 6,
"equity": 46.05,
"split": 0.43,
"vs": "QQ",
"win": 45.83
},
{
"boards": 1712304,
"combos": 6,
"equity": 45.96,
"split": 0.42,
"vs": "JJ",
"win": 45.75
},
{
"boards": 1712304,
"combos": 6,
"equity": 45.94,
"split": 0.41,
"vs": "TT",
"win": 45.73
},
{
"boards": 1712304,
"combos": 6,
"equity": 47.69,
"split": 0.39,
"vs": "77",
"win": 47.5
},
{
"boards": 1712304,
"combos": 6,
"equity": 49.89,
"split": 0.65,
"vs": "22",
"win": 49.57
},
{
"boards": 1712304,
"combos": 3,
"equity": 50,
"split": 85.69,
"vs": "AKs",
"win": 7.16
},
{
"boards": 1712304,
"combos": 6,
"equity": 52.49,
"split": 90.67,
"vs": "AKo",
"win": 7.16
},
{
"boards": 1712304,
"combos": 3,
"equity": 71.28,
"split": 4.23,
"vs": "AQs",
"win": 69.16
},
{
"boards": 1712304,
"combos": 4,
"equity": 62.01,
"split": 0.51,
"vs": "JTs",
"win": 61.75
},
{
"boards": 1712304,
"combos": 4,
"equity": 61.06,
"split": 0.47,
"vs": "76s",
"win": 60.83
}
],
"id": "AhKh",
"license": "CC-BY-4.0",
"name": "ace-king of hearts",
"paired": false,
"percentile": 0.0317,
"positions": [
{
"label": "Early",
"open": true,
"position": "early"
},
{
"label": "Middle",
"open": true,
"position": "middle"
},
{
"label": "Hijack",
"open": true,
"position": "hijack"
},
{
"label": "Cut-off",
"open": true,
"position": "cutoff"
},
{
"label": "Button",
"open": true,
"position": "button"
},
{
"label": "Small blind",
"open": true,
"position": "small-blind"
}
],
"provenance": {
"blockers": "exact combinatorics",
"headToHead": "exact enumeration of every board, averaged over every unblocked opponent combination",
"positions": "a conventional opening chart, not solver output",
"vsRandom": "Monte Carlo, 400000 trials per row, seed 1"
},
"suited": true,
"vsRandom": [
{
"equity": 67.05,
"tie": 1.66,
"win": 66.21
},
{
"equity": 50.64,
"tie": 1.94,
"win": 49.75
},
{
"equity": 41.48,
"tie": 1.94,
"win": 40.61
},
{
"equity": 35.45,
"tie": 2.03,
"win": 34.54
},
{
"equity": 31.1,
"tie": 1.98,
"win": 30.21
},
{
"equity": 27.67,
"tie": 1.97,
"win": 26.79
},
{
"equity": 24.96,
"tie": 1.94,
"win": 24.09
}
],
"vsRange": {
"any2": 66.91,
"top10": 58.08,
"top20": 64.92,
"top40": 67.21,
"top5": 49.65
}
},
"type": "json"
},
"path": "/api/hands/{id}"
},
"params": {
"id": "canonical hand id, e.g. AhKh — higher rank first, suits ordered c,d,h,s"
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"id": {
"pattern": "^[2-9TJQKA][cdhs][2-9TJQKA][cdhs]$",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
},
"tags": [
"poker",
"texas holdem",
"starting hands",
"equity",
"poker odds"
]
}
}Use it
curl
curl "https://poketpoker.com/api/hands/QdQs" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://poketpoker.com/api/hands/QdQs");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://poketpoker.com/api/hands/QdQs")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/1526.json, and this resource appears in /discovery/resources and /discovery/search.