{"openapi":"3.1.0","info":{"title":"Wager API","version":"0.1.0","description":"A fully local gaming-odds and strategy reference: real poker hand evaluation and Monte Carlo hold'em odds, blackjack basic strategy and odds, dice/craps/roulette probability and house-edge math, an EV calculator, and a probability glossary. Educational only — never processes real-money bets.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://wager.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/wager/docs"},"termsOfService":"https://connectorbay.com/wager/terms"},"servers":[{"url":"https://wager.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/wager/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/poker_hand_rank":{"post":{"operationId":"poker_hand_rank","summary":"Identifies a poker hand's rank category (High Card through Royal Flush) from 5 cards, or the best possible","description":"Identifies a poker hand's rank category (High Card through Royal Flush) from 5 cards, or the best possible\n    5-card hand out of 7 (Texas Hold'em hole + community cards), via real rank/suit parsing and\n    straight/flush/pair-group detection — genuine computation, not a lookup table. Use for \"what hand is this\",\n    \"does a full house beat a flush\", \"what's the best hand I can make from these 7 cards\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cards":{"description":"5 cards (a made hand) or 7 cards (hole + community, best 5 chosen), e.g. ['AS','KH','QD','JC','10S'].","items":{"type":"string"},"maxItems":7,"minItems":5,"title":"Cards","type":"array"}},"required":["cards"],"title":"poker_hand_rankArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/poker_hand_odds":{"post":{"operationId":"poker_hand_odds","summary":"Estimates Texas Hold'em win probability via Monte Carlo simulation: thousands of random completions of the","description":"Estimates Texas Hold'em win probability via Monte Carlo simulation: thousands of random completions of the\n    remaining deck against N random opponent hands, reporting win/tie/lose probability and a 95% margin of error.\n    This is a labeled STATISTICAL ESTIMATE, not exact enumeration — repeat calls vary slightly within the stated\n    margin of error, and it ignores betting/folding/skill. Use for \"what are my odds with pocket aces against 3\n    opponents\", \"how often does this hand win after the flop\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hole_cards":{"description":"Your 2 hole cards, e.g. ['AS','KH'].","items":{"type":"string"},"maxItems":2,"minItems":2,"title":"Hole Cards","type":"array"},"community_cards":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"0 (preflop), 3 (flop), 4 (turn), or 5 (river) community cards.","title":"Community Cards"},"num_opponents":{"default":1,"description":"Number of opponents, each assumed to play a random 2-card hand to showdown.","maximum":8,"minimum":1,"title":"Num Opponents","type":"integer"},"trials":{"default":4000,"description":"Monte Carlo trial count — more trials narrow the margin of error but take longer.","maximum":20000,"minimum":500,"title":"Trials","type":"integer"}},"required":["hole_cards"],"title":"poker_hand_oddsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/poker_starting_hand_tier":{"post":{"operationId":"poker_starting_hand_tier","summary":"Standard published preflop starting-hand tier (Sklansky/Malmuth-style groups 1 [premium] through 9","description":"Standard published preflop starting-hand tier (Sklansky/Malmuth-style groups 1 [premium] through 9\n    [generally unplayable]) for a 2-card Texas Hold'em hand, preflop only. Use for \"is ace-king suited a good\n    starting hand\", \"how strong is pocket sevens preflop\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hole_cards":{"description":"Your 2 hole cards, e.g. ['AS','KS'].","items":{"type":"string"},"maxItems":2,"minItems":2,"title":"Hole Cards","type":"array"}},"required":["hole_cards"],"title":"poker_starting_hand_tierArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/blackjack_basic_strategy":{"post":{"operationId":"blackjack_basic_strategy","summary":"Returns the mathematically optimal basic-strategy action (Hit, Stand, Double, Split, or Surrender) for a","description":"Returns the mathematically optimal basic-strategy action (Hit, Stand, Double, Split, or Surrender) for a\n    given player hand against a dealer upcard, from a standard multi-deck basic-strategy chart (double-after-split\n    allowed), honoring can_split/can_double/can_surrender availability and the dealer_hits_soft_17 house rule. Use\n    for \"what do I do with 16 against a dealer's 10\", \"should I split 8s against a 9\", \"hit or stand on soft 18 vs\n    an ace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"player_hand":{"description":"Player's cards, e.g. ['10H','6S'] or ['A','8'] (bare ranks accepted).","items":{"type":"string"},"maxItems":4,"minItems":2,"title":"Player Hand","type":"array"},"dealer_upcard":{"description":"Dealer's face-up card, e.g. '10', 'A', '6'.","title":"Dealer Upcard","type":"string"},"can_split":{"default":true,"description":"Whether splitting is available for this hand.","title":"Can Split","type":"boolean"},"can_double":{"default":true,"description":"Whether doubling down is available for this hand.","title":"Can Double","type":"boolean"},"dealer_hits_soft_17":{"default":false,"description":"House rule: dealer hits (True) or stands (False, default) on soft 17.","title":"Dealer Hits Soft 17","type":"boolean"},"can_surrender":{"default":false,"description":"Whether late surrender is offered at this table (most tables don't; default False).","title":"Can Surrender","type":"boolean"}},"required":["player_hand","dealer_upcard"],"title":"blackjack_basic_strategyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/blackjack_odds":{"post":{"operationId":"blackjack_odds","summary":"Reference probabilities for a common blackjack situation: the dealer's bust probability (hand-curated,","description":"Reference probabilities for a common blackjack situation: the dealer's bust probability (hand-curated,\n    standard published tables, for both dealer-stands and dealer-hits-on-soft-17 rules) and, for a hard total, the\n    exact computed probability that one more card busts it. Use for \"how often does a dealer showing 6 bust\",\n    \"what's my bust chance if I hit 16\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"player_total":{"description":"Player's hard hand total.","maximum":21,"minimum":4,"title":"Player Total","type":"integer"},"dealer_upcard":{"description":"Dealer's face-up card, e.g. '10', 'A', '6'.","title":"Dealer Upcard","type":"string"}},"required":["player_total","dealer_upcard"],"title":"blackjack_oddsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/dice_probability":{"post":{"operationId":"dice_probability","summary":"The EXACT probability of rolling a given sum with N dice, computed by real combinatorial enumeration of","description":"The EXACT probability of rolling a given sum with N dice, computed by real combinatorial enumeration of\n    every equally-likely outcome (not a simulation or approximation). Use for \"odds of rolling a 7 with two dice\",\n    \"probability of snake eyes\", \"chance of rolling an 18 with three six-sided dice\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dice_count":{"description":"Number of dice rolled together.","maximum":6,"minimum":1,"title":"Dice Count","type":"integer"},"target_sum":{"description":"The sum to compute the probability of.","title":"Target Sum","type":"integer"},"dice_sides":{"default":6,"description":"Sides per die (6 for a standard die).","maximum":100,"minimum":2,"title":"Dice Sides","type":"integer"}},"required":["dice_count","target_sum"],"title":"dice_probabilityArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/craps_odds":{"post":{"operationId":"craps_odds","summary":"Payout and house-edge reference for a standard craps bet (pass/don't pass, come/don't come, free odds,","description":"Payout and house-edge reference for a standard craps bet (pass/don't pass, come/don't come, free odds,\n    field, place bets, hardways, any seven/craps, big 6/8), hand-curated from standard published craps odds\n    tables. Use for \"house edge on the pass line\", \"what does place 6 pay\", \"is the field bet good\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bet_type":{"description":"A standard craps bet, e.g. 'pass_line', 'field', 'place_6', 'hard_8', 'any_seven'. See probability_glossary or call with an unknown value to list all bet types.","title":"Bet Type","type":"string"}},"required":["bet_type"],"title":"craps_oddsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/roulette_odds":{"post":{"operationId":"roulette_odds","summary":"Payout odds and house edge for a standard roulette bet, computed directly from wheel geometry (house edge =","description":"Payout odds and house edge for a standard roulette bet, computed directly from wheel geometry (house edge =\n    zero-pocket probability) for European (single-zero, 37 pockets) vs American (double-zero, 38 pockets) wheels.\n    Use for \"house edge on a straight-up bet\", \"is european or american roulette better\", \"what does a corner bet pay\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bet_type":{"description":"A standard roulette bet, e.g. 'straight_up', 'split', 'street', 'corner', 'six_line', 'column', 'dozens', 'red_black', 'odd_even', 'high_low'.","title":"Bet Type","type":"string"},"wheel_type":{"default":"european","description":"'european' (single zero, default) or 'american' (double zero).","title":"Wheel Type","type":"string"}},"required":["bet_type"],"title":"roulette_oddsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/expected_value":{"post":{"operationId":"expected_value","summary":"Generic expected-value calculator: given a bet amount, win probability, and payout multiplier, computes the","description":"Generic expected-value calculator: given a bet amount, win probability, and payout multiplier, computes the\n    long-run average result per bet and the equivalent house-edge percentage — a general illustration of why the\n    house always holds a structural edge. Use for \"what's the EV of this bet\", \"expected value of a $10 straight-up\n    roulette bet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bet_amount":{"description":"Amount wagered.","exclusiveMinimum":0,"title":"Bet Amount","type":"number"},"win_probability":{"description":"Probability the bet wins, 0-1.","maximum":1,"minimum":0,"title":"Win Probability","type":"number"},"payout_multiplier":{"description":"Net profit multiple if the bet wins, e.g. 1.0 for even money, 35.0 for a straight-up roulette number.","minimum":0,"title":"Payout Multiplier","type":"number"}},"required":["bet_amount","win_probability","payout_multiplier"],"title":"expected_valueArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/probability_glossary":{"post":{"operationId":"probability_glossary","summary":"Glossary of core gambling-probability terms — house edge, expected value, variance, pot odds, basic","description":"Glossary of core gambling-probability terms — house edge, expected value, variance, pot odds, basic\n    strategy, true odds, bankroll, outs, vigorish, push, card counting, Monte Carlo simulation. Use for \"what's\n    house edge\", \"what does vig mean\", \"define expected value\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"probability_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}