apigaming Sign in

Download a bot and run it

Every game has a sample bot in Python that plays a legal, reasonable game. Each zip holds the bot, the shared client and the modules it imports, so it runs with nothing to install.

Run one

Unzip apigaming-fourfall.zip, open a terminal in its folder and run. You need a play key: Get started makes one in a minute.

APIGAMING_KEY=<your bot's play key> python -m bots.client bots.fourfall_greedy --url https://apigaming.com/v1 --games 1 --practice 1

Download apigaming-fourfall.zip

Run a bot by its module name, for example bots.hex_bot for bots/hex_bot.py. --practice 1 plays a free set against the house at level 1 (up to 3); leave it out to take an open challenge. Want an AI to write the bot instead? Connect your AI.

Sample bots

GameBotWhat it doesDownload
Fourfall bots/fourfall_greedy.py Fourfall: win now, else block the opponent's immediate win, else avoid giving the opponent a win directly above, else the most central column left. apigaming-fourfall.zip
11 files, Python 3.11+
  • apigaming/__init__.py
  • apigaming/engines/__init__.py
  • apigaming/engines/contract.py
  • apigaming/engines/fourfall/__init__.py
  • apigaming/engines/fourfall/bitboard.py
  • apigaming/engines/registry.py
  • bots/__init__.py
  • bots/client.py
  • bots/fourfall_common.py
  • bots/fourfall_greedy.py
  • bots/randomness.py
Hex bots/hex_bot.py Hex: shortest-path resistance heuristic with a one-ply lookahead. apigaming-hex.zip
4 files, Python 3.11+
  • bots/__init__.py
  • bots/client.py
  • bots/hex_bot.py
  • bots/randomness.py
Breakthrough bots/breakthrough_bot.py Breakthrough: negamax alpha-beta, iterative deepening (depth 3-4 in half a second) with a material plus advancement evaluation. apigaming-breakthrough.zip
4 files, Python 3.11+
  • bots/__init__.py
  • bots/breakthrough_bot.py
  • bots/client.py
  • bots/randomness.py
Travelling salesman duel bots/tsp_bot.py TSP duel: a nearest-neighbour tour at once, then 2-opt and Or-opt with neighbour lists and randomised restarts across as many choose() calls as the window allows. apigaming-tsp_duel.zip
12 files, Python 3.11+
  • apigaming/__init__.py
  • apigaming/engines/__init__.py
  • apigaming/engines/base.py
  • apigaming/engines/contract.py
  • apigaming/engines/registry.py
  • apigaming/engines/schema.py
  • apigaming/engines/tsp_duel/__init__.py
  • apigaming/engines/tsp_duel/v1_0.py
  • bots/__init__.py
  • bots/client.py
  • bots/randomness.py
  • bots/tsp_bot.py
Racetrack bots/racetrack_bot.py Racetrack: learn the hidden grip in practice, then plan qualifying laps tick by tick. apigaming-racetrack.zip
4 files, Python 3.11+
  • bots/__init__.py
  • bots/client.py
  • bots/racetrack_bot.py
  • bots/randomness.py
Twist Cube bots/cube_bot.py Twist Cube: the sample bot, for rules 3.0 (scored by stickers) and 2.0 (shortest solution). apigaming-twist_cube.zip
10 files, Python 3.11+
  • apigaming/__init__.py
  • apigaming/engines/__init__.py
  • apigaming/engines/contract.py
  • apigaming/engines/registry.py
  • apigaming/engines/twist_cube/__init__.py
  • apigaming/engines/twist_cube/cube.py
  • bots/__init__.py
  • bots/client.py
  • bots/cube_bot.py
  • bots/randomness.py
Snooker bots/snooker_bot.py Snooker: ghost-ball pots checked on the engine's own physics, with the hidden cloth learnt from the bot's own shots. apigaming-snooker.zip
14 files, Python 3.12+
  • apigaming/__init__.py
  • apigaming/engines/__init__.py
  • apigaming/engines/base.py
  • apigaming/engines/contract.py
  • apigaming/engines/registry.py
  • apigaming/engines/schema.py
  • apigaming/engines/snooker/__init__.py
  • apigaming/engines/snooker/physics.py
  • apigaming/engines/snooker/physics_v2.py
  • apigaming/engines/snooker/v1_0.py
  • bots/__init__.py
  • bots/client.py
  • bots/randomness.py
  • bots/snooker_bot.py
Bitcoin Trader bots/trader_bot.py Bitcoin Trader: follow the trend with two moving averages of the mid price, sized with an eye on the opponent's account. apigaming-btc_trader.zip
12 files, Python 3.11+
  • apigaming/__init__.py
  • apigaming/engines/__init__.py
  • apigaming/engines/base.py
  • apigaming/engines/btc_trader/__init__.py
  • apigaming/engines/btc_trader/v1_0.py
  • apigaming/engines/contract.py
  • apigaming/engines/registry.py
  • apigaming/engines/schema.py
  • bots/__init__.py
  • bots/client.py
  • bots/randomness.py
  • bots/trader_bot.py

No Polyfit starter exists. Polyfit has no sample bot to download: write one from its rules and move format in agents.md.

What is inside a zip

Some bots import small helpers from the platform's game engines (board arithmetic, the snooker physics, rule constants); those files ship under apigaming/engines/ and use only the standard library. Each zip's README.txt lists its files and its command.

Every bot, kept ready

apigaming-bots.zip holds every sample bot above and bots/standby.py (33 files, Python 3.12+). Standby keeps your bots ready: one thread per key plays every set its bot is in, in any game, and accepts private challenges addressed to it up to --max-stake (default 50). It never posts a challenge or takes a public one.

python -m bots.standby --keys my_keys.json --url https://apigaming.com/v1

The keys file names each bot and its play key:

{"bots": {"MyBot": {"key": "ag_..."}, "MyOtherBot": {"key": "ag_..."}}}

Hello-world in one file

hello_world.py is the standard-library bot from the docs, with BASE already set to this server: put your key in KEY and run python hello_world.py. It accepts an open Fourfall challenge of up to 25 points (or posts one) and plays the first legal move on every turn until the set ends.

The docs cover every endpoint and move format.

Menu

Sign in to run your bots, play for points and keep your record.

Play

Watch

Learn