Baseline Earnings:
Num Hands:

Statistics calculated over all hands played by current user.

Earnings reported in units of BB/100 (big blinds per 100 hands).

Baseline numbers report player's relative performance to Slumbot playing in the same seat with the same cards.

Raw BB/100
Minimum 500 hands
Minimum 1000 hands
Minimum 5,000 hands
Minimum 10,000 hands
Minimum 20,000 hands
Minimum 100,000 hands
Baseline BB/100
Minimum 500 hands
Minimum 1,000 hands
Minimum 5,000 hands
Minimum 10,000 hands
Minimum 20,000 hands
Minimum 100,000 hands

December 7, 2022

I have cleared all the statistics and leaderboards along with an update to the code. There were some exploits previously so it seemed like a good idea to clear everything out and start afresh. Please post any issues you find on this github page:

May 6, 2022

Please check out my new project which is a word game similar to Scrabble at

May 23, 2021

We have reimplemented the backend servers powering Play of the bot is unchanged as well as the look and feel of the site. We have also cleared the leaderboards; just seemed like a good time! Check out the API tab if interested in an API to play against Slumbot.

August 15, 2017

Forgive me for promoting my new (non-poker related) project here. Find local events with Eventagogo. Here's the site map. (Addendum 2/1/2021: Eventagogo was acquired by Eventbrite and the website no longer exists.)

March 19, 2017

We have updated the Slumbot AI to make it less weak-tight on the river. The initial version launched in February had a defect which made it exploitable by hyper-aggressive play on the final street.

Feburary 3, 2017

We have just released the 2017 version of the Slumbot AI, which is greatly improved. There are a few improvements to the website as well:

  • We have instituted a timeout of five minutes per action. (This is necessary to prevent users from simply walking away when they get into a sticky spot.)
  • We have compressed the main page a bit so you should be able to play on many laptops without scrolling.
  • We track a couple of more statistics.
  • We have confidence intervals on the main statistics.

Because this is a new AI, everyone's statistics have been reset to zero, and the leaderboards have been cleared. The user account database was also not carried over, so you'll need to reestablish your username and password. Have at it!

Feburary 3, 2017

We have just retired the 2016 version of Slumbot. Thanks to everyone who played against it. During the year that the website has been running, we recorded over two million hands of poker! (Although some of our opponents were bots - you know who you are ;-)).

The old 2016 leaderboards can still be found in the 2016 Hall of Fame tab.

What are the rules of the game?

On this website, you can play heads-up (two person) no-limit Texas Holdem. The blinds are 50 and 100 chips and the stack sizes are 200 big blinds (i.e., 20,000 chips).

Unlike most poker games, your stack resets to its full size after each hand.

What is Slumbot?

Slumbot is one of the top no-limit poker bots in the world. The 2016 version of Slumbot placed second in the Annual Computer Poker Competition, the premier event for poker software.

What are the "baseline" statistics?

The baseline statistics compare how you did to how Slumbot would have done with your cards in your seat. A positive value for baseline earnings mean you did better than Slumbot would have done against itself given your cards and sitting in your seat.

Here's an example with a single hand. First Slumbot deals out cards for the board (let's say AhTd4c9s3h), the button (let's say AdKh) and the big blind (let's say TsTc). Then Slumbot plays itself on these cards. Let's say that the players get all-in (since they both have strong hands). So the result is -20,000 for the button.

Now you get to play Slumbot on these same cards. Let's suppose you're the button. Perhaps you put in 8,000 chips on the early streets but manage to fold to a large bet on the river. Your outcome is -8,000 for this hand.

Your baseline outcome is how much better (or worse) you did than Slumbot did against itself. Your baseline outcome here is +12,000 which is the difference between -8,000 and -20,000.

Your baseline statistics should better reflect the skill with which you play. They eliminate much of the luck due to getting good or bad cards by measuring your relative performance to another player playing with the same cards.

What is "BB/100"?

"BB/100" stands for big blinds per 100 hands. It measures how many big blinds you win per 100 hands played.


Slumbot now offers an API so that other researchers and hobbyists can test their bots against Slumbot.

The rules are the same as the rules for the website. Blinds of 50 and 100, stack sizes of 200 BB, stacks reset after each hand. When playing a session against Slumbot, you start in the less favorable position (the big blind), and ideally should play an even number of hands to ensure you get the button exactly half of the time.

Sample Code

Download this example Python program to see an example of how to use the API:


The API utilizes HTTP POST requests sent to Requests and responses have a JSON body. The "Content-Type" header must be set to "application/json". There are two endpoints:

  • /api/new_hand
  • /api/act
To initiate a new hand, send a request to /api/new_hand. To take an action, send a request to /api/act.

The body of a sample request to /api/new_hand:
{"token": "a2f42f44-7ff6-40dd-906b-4c2f03fcee57"}
The body of a sample request to /api/act:
{"token": "a2f42f44-7ff6-40dd-906b-4c2f03fcee57", "incr": "c"}
A sample response from /api/new_hand or /api/act:
{'old_action': '', 'action': 'b200', 'client_pos': 0, 'hole_cards': ['Ac', '9d'], 'board': [], 'token': 'a2f42f44-7ff6-40dd-906b-4c2f03fcee57'}
Note that if the bot is first to act, then the response to /api/new_hand will contain the bot's initial action.


A token should be passed into every request, with the exception that on the initial request to /api/new_hand, the token may be missing. But all subsequent requests should contain a token. The token can in theory change over the course of a session (usually only if there is a long pause) so always get the token out of the previous response and use it in the next request.


Sample action that you might get in a response looks like this:
An all-in can contain streets with no action. For example: