Is there an online chess evaluation engine with a REST API? I'd like to be able to send a game or position (with castling ability presumably) to a simple REST API and get back the positional evaluation from a reasonably strong engine.
4 Answers
The project https://github.com/noobpwnftw/chessdb provides an API for getting engine evaluations including also the PV, with the FEN of a position as input.
E.g., try an example from the readme:
The response I got is:
{
"status": "ok",
"score": 8,
"depth": 39,
"pv": [
"e2e4", "c7c5", "d2d4", "c5d4", "g1f3", "e7e5", "c2c3", "b8c6", "f1c4", "g8f6", "f3g5", "d7d5", "e4d5", "c6a5", "c4b5", "c8d7", "d1e2", "f8d6", "b2b4", "h7h6", "g5f3", "e8g8", "b4a5", "d4d3", "e2b2", "f6d5", "b1d2", "d7b5", "b2b5", "d5c3", "b5d3", "d6b4", "d3d8", "f8d8", "a5a6", "b7a6", "a2a3", "b4a5", "e1f1"
],
"pvSAN": [
"e4", "c5", "d4", "cxd4", "Nf3", "e5", "c3", "Nc6", "Bc4", "Nf6", "Ng5", "d5", "exd5", "Na5", "Bb5+", "Bd7", "Qe2", "Bd6", "b4", "h6", "Nf3", "O-O", "bxa5", "d3", "Qb2", "Nxd5", "Nbd2", "Bxb5", "Qxb5", "Nxc3", "Qxd3", "Bb4", "Qxd8", "Rfxd8", "a6", "bxa6", "a3", "Ba5", "Kf1"
]
}
-
1It is essentially functioning as an opening book api and not able to evaluate unknown positions on-the-fly. e.g. chessdb.cn/cdb.php?action=querypv&board=8/7K/P2P4/1b1k3p/…– prusswanCommented Jul 6, 2019 at 17:44
-
That's what I infer too. Funny comment at bottom "Expect no further documentation except this one but the code should be self-explanatory", even though there isn't a single line explaining what it is :) Commented Oct 22, 2021 at 2:32
-
Interesting find. I awarded the bounty although this question remains open. I'm rather surprised that in 2021 the world doesn't have a chess position evaluation API ! Commented Oct 25, 2021 at 13:06
-
It appears to be giving perfectly legitimate results. I ran queries from this FEN:
r1bqkb1r/ppp2ppp/5n2/n2Pp1N1/2B5/8/PPPP1PPP/RNBQK2R w KQkq - 1 6
and it gave the expected results. Commented Aug 27, 2022 at 5:38 -
@PeterCotton is the "Request for Analysis" here what you are looking for? chessdb.cn/cloudbookc_api_en.html Depending on the current load it can take a bit for the analysis to happen, but then you can probe it.– koedemCommented Oct 11, 2023 at 9:32
I'm a bit late, but https://stockfish.online is a REST GET API for Stockfish. Make requests with a FEN string, depth, and mode. For example, making a GET request to https://stockfish.online/api/stockfish.php?fen=r2q1rk1/ppp2ppp/3bbn2/3p4/8/1B1P4/PPP2PPP/RNB1QRK1 w - - 5 11&depth=13&mode=bestmove
would get the best move for the given FEN string at depth 13. Hope this helps!
https://chess-api.com/ - it's basically Stockfish online.
Quite rich response data and WebSocket support. You pass FEN or moves.
Here is another one: http://chess-api.online with the actual endpoint being http://ws.chess-api.online. It's an open source Stockfish based SpringBoot app on github, which can be run locally or on a cloud with minimal resource requirements (e.g. currently, it's running just on 1 GB RAM using AWS Free tier). In addition to serving REST requests, the app also allows to validate FENs and to build a FENs by positioning pieces on its virtual chess board.
It can be deployed on both Windows and Linux. I don't have a Mac, so couldn't test it there, but it might be just a matter of adding Stockfish executables for Mac.