Poker hand probability calculator
A full house comes up in 3,744 of the 2,598,960 possible five-card hands, exactly 6/4165. Pick any category from high card to royal flush and get the exact count, the reduced fraction, the decimal and the percentage. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Hand
- full house
- Hand
- Full house
- Name
- Full house
- Favorable hands
- 3,744
- Total hands
- 2,598,960
The poker hand probability calculator returns the exact chance of receiving a named five-card hand from a standard 52-card deck. Choose a category such as one pair, straight, flush, full house, or royal flush, and the calculator reports the number of favorable hands, the complete sample space, a reduced probability fraction, its decimal value, and its percentage. The calculation covers unordered five-card deals without jokers or wild cards. It uses exact combinatorial counts rather than simulation, so rare outcomes remain precise and every repeated request produces the same result.
Choose the category you want to measure
Start by selecting one recognized five-card poker category. The available categories are royal flush, straight flush, four of a kind, full house, flush, straight, three of a kind, two pair, one pair, and high card. These categories are mutually exclusive in the calculator.
A royal flush is separated from other straight flushes; an ordinary flush excludes every straight flush; an ordinary straight excludes straight flushes; and high card excludes straights and flushes. This separation matters because adding the category counts should cover every possible five-card deal exactly once. Enter the canonical name shown by the form.
The calculation concerns the completed five-card hand itself, not the chance of improving a partial Texas Hold'em hand after future community cards. It also assumes a complete standard deck with no jokers, removed cards, exposed cards, or knowledge about another player's holdings.
Understand how the exact probability is built
Every unordered five-card selection from 52 distinct cards is equally likely, so the denominator is the binomial coefficient C(52,5), which equals 2,598,960. The numerator depends on the selected category and is derived with finite combinatorial rules. For example, a full house chooses one of 13 ranks for the triple, three of its four suits, one of the remaining 12 ranks for the pair, and two of that rank's four suits.
A flush chooses five ranks within one suit, then removes the ten rank sequences that would be straight flushes. One pair chooses the paired rank and its two suits, then three different side-card ranks and one suit for each. The solver performs these calculations with bounded integer arithmetic.
It then reduces the favorable count over the total count using the greatest common divisor. The response includes that exact fraction alongside a decimal probability and percentage, making it useful for both formal verification and quick practical comparison. No sampling or rounding is used to determine the underlying count.
Read the result and apply it correctly
Decimal displays may contain many digits because most poker probabilities do not terminate neatly in base ten; the fraction remains the authoritative exact value. These figures describe a fresh five-card deal from a thoroughly randomized full deck. They do not directly describe seven-card poker, Texas Hold'em starting hands, draw decisions, conditional odds after seeing cards, or the likelihood that a particular hand wins against opponents.
Those questions have different sample spaces. This calculator is best used when checking reference tables, teaching combinations, validating software, or comparing the inherent rarity of completed five-card categories. Because the method is deterministic and has no network dependency, the same category always returns the same mathematical result.
What you can do with it
Verify a poker probability table
Compare published five-card category counts and percentages with an independently calculated exact fraction.
Teach combinations with familiar examples
Show how choices of ranks and suits produce the numerator over all C(52,5) possible hands.
FAQ
Are these probabilities exact or simulated?
They are exact. The calculator uses finite combinatorial counts over all 2,598,960 unordered five-card deals and does not use random sampling.
Does straight flush include royal flush?
No. Royal flush is reported separately, so straight flush counts only the other nine sequences in each suit.
Does flush include straight flushes?
No. The flush category excludes all straight flushes, keeping the categories mutually exclusive.
Can I use this for Texas Hold'em odds?
Not directly. It measures completed five-card categories from a fresh 52-card deck, not conditional outcomes using hole cards and community cards.
Does it work with jokers or wild cards?
No. It assumes a complete standard deck of 52 cards with no jokers, wild cards, removed or exposed cards, where every five-card hand is equally likely to be dealt.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/stat/poker-hand-odds \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hand":"full_house"}'const res = await fetch("https://api.kit.forhosting.com/stat/poker-hand-odds", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hand": "full_house"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/poker-hand-odds",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hand": "full_house"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/poker-hand-odds", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hand":"full_house"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hand":"full_house"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/poker-hand-odds", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"hand": "full_house"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.poker_hand_odds",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Choose the category you want to measure
If the supplied name is not recognized, the request fails clearly instead of guessing at a similar category or returning a misleading number.
Read the result and apply it correctly
Use favorable_hands as the exact number of combinations belonging to the requested category and total_hands as the complete population of five-card deals. The exact_probability field is the reduced fraction, while probability is a number between zero and one and percentage is the same chance multiplied by one hundred. Browser use is free, while API automation begins at $0.002 per request.
Integration use cases
Test card-game software
Use deterministic category probabilities as fixtures for analytics, simulations, and hand-classification reports.
Technical questions
What happens if the hand name is unknown?
The request returns an invalid_input error describing the unrecognized poker hand name instead of selecting a category automatically.
What does the API cost?
API requests begin at $0.002 each. The browser calculator can run the same deterministic logic locally for free.