Mahjong AI,
as an API.
Send your seat's view of the board. MJOT replays it server-side, runs one neural-network forward, and returns the move — ranked candidates, probabilities and all — from a single stateless POST.
One position in, one decision out.
The API is stateless: every call carries the current hand's event stream from your seat's perspective. No sessions, no sockets, nothing to keep alive.
Upload your seat's events
Standard mjai events for the current hand, censored to what your seat can see. Opponents' hidden tiles are just "?".
The server rebuilds the position
Your stream is replayed into model input on our GPUs and batched with other requests for one forward pass.
Reaction + candidates back
The exact move as an mjai event, plus the policy's top-k candidate actions with probabilities.
One inference service. Any client.
MJOT speaks a generic interface. Use it from the browser, from your own code, or from compatible desktop clients.
Web Dojo
Review your games move by move and play live tables against the models, right on this site. The free demo model runs entirely in your browser; your API key unlocks the cloud models.
Enter the dojo →Custom integrations
Research tools, replay analyzers, training aids, bots for AI competitions — anything that can speak mjai over HTTPS.
Read the API docs →Akagi
An open-source mahjong client by the same developer. Akagi supports local inference and custom endpoints; MJOT can be used as an optional hosted inference backend.
Learn about the integration →Pay for compute. Nothing else.
Every plan is the same API and the same models — you're buying inference quota. Keys are yours: renewing extends the key you hold, it never rotates.
- 6,000 requests / day
- Full model access
- Top-3 candidates
- 6,000 requests / day
- Full model access
- Top-3 candidates
- 6,000 requests / day
- Full model access
- Key auto-renews
- 6,000 requests / day
- Full model access
- Key auto-renews